OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
2
3         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
4         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
5         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
6         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
7         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
8         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
9         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
10         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
11         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
12         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
13         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
14         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
15         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
16         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
17         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
18         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
19         Remove use_fixproto=yes.
20         (ia64*-*-hpux*): Remove comment about using fixproto.
21         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
22
23 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24
25         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
26         library rebuilds.
27         * configure: Regenerate.
28
29 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
30
31         PR middle-end/36520
32         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
33         before evaluating it.
34
35 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
36
37         PR c/36507
38         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
39         nested inline functions.
40         (start_decl, start_function): Don't invert DECL_EXTERNAL
41         for nested inline functions.
42
43 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
44
45         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
46         splits that must be made for correctness.
47
48 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
49
50         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
51         (AVAIL_NON_MIPS16): Likewise.
52         (mips_builtin_description): Replace target_flags with a predicate.
53         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
54         (dspr2_32): New availability predicates.
55         (MIPS_BUILTIN): New macro.
56         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
57         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
58         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
59         Replace the TARGET_FLAGS parameters with AVAIL parameters.
60         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
61         (mips_dsp_32only_bdesc): Merge into...
62         (mips_builtins): ...this new array.
63         (mips_bdesc_map, mips_bdesc_arrays): Delete.
64         (mips_init_builtins): Update after above changes.
65         (mips_expand_builtin_1): Merge into...
66         (mips_expand_builtin): ...here and update after above changes.
67
68 2008-06-12  Paul Brook  <paul@codesourcery.com>
69
70         * longlong.h (__arm__): Define count_leading_zeros.
71         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
72         (clzsi2, clzdi2): New functions.
73         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
74         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
75         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
76         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
77         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
78         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
79         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
80         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
81         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
82         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
83
84 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
85
86         * config/m68k/m68k.c (m68k_tune_flags): New.
87         (override_options): Compute m68k_tune_flags.
88         (MULL_COST, MULW_COST): Update for various variants of CFV2.
89         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
90
91 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
92
93         PR middle-end/36506
94         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
95         warning.
96
97 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
98
99         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
100         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
101
102 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
103
104         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
105         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
106
107 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
108
109         PR middle-end/36506
110         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
111         reductions.
112
113 2008-06-12  Richard Guenther  <rguenther@suse.de>
114
115         PR tree-optimization/36345
116         * tree-flow.h (struct ptr_info_def): Align escape_mask,
117         add memory_tag_needed flag.
118         (may_alias_p): Declare.
119         * tree-ssa-alias.c (may_alias_p): Export.
120         (set_initial_properties): Use memory_tag_needed flag.
121         (update_reference_counts): Likewise.
122         (reset_alias_info): Reset memory_tag_needed flag.
123         (create_name_tags): Check memory_tag_needed flag.
124         (dump_points_to_info_for): Dump it.
125         * tree-ssa-structalias.c (struct variable_info): Remove
126         directly_dereferenced flag.
127         (new_var_info): Do not initialize it.
128         (process_constraint_1): Do not set it.
129         (update_alias_info): Set is_dereferenced flag.
130         (set_uids_in_ptset): Use may_alias_p.
131         (set_used_smts): Check memory_tag_needed flag.
132         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
133         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
134         memory_tag_needed flag.
135         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
136         from broken design.
137
138 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
139
140         * config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
141         w64 abi.
142         (ix86_expand_prologue): Likewise.
143         (ix86_force_to_memory): Likewise.
144         (ix86_free_from_memory): Likewise.
145
146 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
147
148         PR target/36425
149         * config/rs6000/rs6000.c (rs6000_override_options): Set
150         rs6000_isel conditionally to the absence of comand line
151         override.
152         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
153         Remove duplicate rs6000_isel setting.
154         * config/rs6000/eabispe.h: Ditto.
155
156 2008-06-11  Richard Guenther  <rguenther@suse.de>
157
158         * alias.c (get_alias_set): Use the element alias-set for arrays.
159         (record_component_aliases): For arrays and vectors do nothing.
160         * c-common.c (strict_aliasing_warning): Handle the cases
161         of alias set zero explicitly.
162         * Makefile.in (dfp.o-warn): Add -Wno-error.
163
164 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
165
166         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
167         tune_32 tune_64.
168         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
169         tune_32 tune_64 to supported_defaults.  Allow values not
170         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
171         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
172         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
173         with_cpu_64 to generic for 64-bit-supporting configurations, not
174         with_cpu.  Remove FIXMEs.
175         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
176         --with-arch-64, --with-tune-32, --with-tune-64): Document.
177         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
178         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
179         arch_32 and arch_64.
180
181 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
182             Olivier Hainque  <hainque@adacore.com>
183
184         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
185         Use DECL_SIZE_UNIT to retrieve the size of the field.
186
187 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
188
189         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
190         with function calls after declarations.  Lay out
191         neon_float_type_node before further use.
192
193 2008-06-11  Richard Guenther  <rguenther@suse.de>
194
195         * tree-flow.h (may_point_to_global_var): Declare.
196         * tree-ssa-alias.c (may_point_to_global_var): New function.
197         * tree-ssa-sink.c (is_hidden_global_store): Use it.
198
199 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
200
201         * configure.ac: Teach that fido supports .debug_line.
202         * configure: Regenerate.
203
204 2008-06-10  Tom Tromey  <tromey@redhat.com>
205
206         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
207         debug hook.
208
209 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
210
211         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
212         (encode_decimal64, decode_decimal64, encode_decimal128,
213         decode_decimal128): Reverse order of 32-bit parts of value if host
214         and target endianness differ.
215
216 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
217         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
218         Avoid division by 0.
219         (tree_mod_pow2_value_transform): Likewise.
220         (tree_ic_transform): Likewise.
221         (tree_stringops_transform): Likewise.
222         (tree_mod_subtract_transform): Likewise.
223         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
224         (copy_edges_for_bb): Likewise.
225         (initialize_cfun): Likewise.
226
227 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
228
229         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
230         nonmemory_operand. Add "N" operand constraint.
231         (*btsi): Ditto.
232         (*jcc_btdi_mask_rex64): New instruction and split pattern.
233         (*jcc_btsi_mask): Ditto.
234         (*jcc_btsi_mask_1): Ditto.
235
236 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
237
238         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
239         TYPE_CANONICAL for copied element type.
240
241 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
242
243         PR target/36473
244         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
245         Add m_CORE2 and m_GENERIC.
246         * config/i386/predicates.md (bt_comparison_operator): New predicate.
247         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
248         (*btsi): Ditto.
249         (*jcc_btdi_rex64): New instruction and split pattern.
250         (*jcc_btsi): Ditto.
251         (*jcc_btsi_1): Ditto.
252         (*btsq): Fix Intel asm dialect operand order.
253         (*btrq): Ditto.
254         (*btcq): Ditto.
255
256 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
257
258         PR middle-end/36447
259         * simplify-rtx.c (simplify_subreg): Add check for shift count 
260         greater than size.
261
262 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
263
264         * doc/md.texi: Synchronize with later constraints.md change.
265         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
266         with a C implementation.
267         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
268         MFLO handling.
269         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
270         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
271         when moving to and from MD_REGNUM.
272         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
273         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
274         Handle byte and halfword moves.
275         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
276         separately.
277         * config/mips/constraints.md (h): Turn into NO_REGS.
278         (l, x): Update documentation.
279         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
280         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
281         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
282         (HILO): New mode iterator.
283         (MOVE128): Add TI.
284         (any_div): New code iterator.
285         (u): Extend code attribute to div and udiv.
286         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
287         d_operand in the splitters.  Remove redundant CONST_INT checks.
288         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
289         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
290         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
291         accordingly, using normal moves instead of unspecs to move LO into
292         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
293         (<u>mulsidi3): Handle expansion in C code.
294         (<u>mulsidi3_32bit_internal): Rename to...
295         (<u>mulsidi3_32bit): ...this.
296         (<u>mulsidi3_32bit_r4000): Fix insn separator.
297         (*<u>mulsidi3_64bit): Rename to...
298         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
299         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
300         to set LO and HI to the multiplication result.  Use a normal move
301         for MFLO and an unspec for MFHI.
302         (*<u>mulsidi3_64bit_parts): Replace with...
303         (<u>mulsidi3_64bit_hilo): ...this new instruction.
304         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
305         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
306         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
307         instead of HI.  Split the instruction into a separate multiplication
308         and MFHI if !TARGET_FIX_R4000.
309         (<su>muldi3_highpart): Likewise.
310         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
311         and the "=h" clobber.
312         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
313         (<u>mulditi3): New expander.
314         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
315         (madsi): Remove "=h" clobber.
316         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
317         Force the modulus result to be a GPR and split the instruction into
318         a division followed by an MFHI after reload.
319         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
320         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
321         the MIPS16 HIGH define_split.
322         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
323         of acc<->gpr moves to "multi".
324         (*movdi_64bit): Replace the single "x" alternative with
325         alternatives for moving into and out of "a".
326         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
327         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
328         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
329         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
330         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
331         (movti): New expander.
332         (*movti, *movti_mips16): New insns.
333         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
334         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
335         (mthi<GPR:mode>_<HILO:mode>): Likewise.
336         * config/mips/predicates.md (fpr_operand): Delete.
337         (d_operand): New predicate.
338
339 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
340
341         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
342         failure on some Bourne shells.
343         (x86_64-*-*): Ditto.
344
345 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
346
347         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
348
349 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
350
351         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
352         (sparc-sun-solaris2*): Likewise.
353
354 2008-06-09  Arnaud Charlet  <charlet@adacore.com
355
356         * doc/install.texi: Update requirements to build the Ada compiler.
357
358 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
359
360         * df-scan.c (struct df_scan_problem_data): Remove the
361         mw_link_pool alloc pool.
362         (df_scan_free_internal): Don't free it.
363         (df_scan_alloc): Don't allocate it.
364         * df.h (struct df_link): Update comment.
365
366 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
367
368         * except.h: Correct checks for when SJLJ exceptions must be used.
369
370 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
371
372         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
373         default.
374         
375 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
376
377         PR tree-optimization/36218
378         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
379         configure for the build system.
380         (BUILD_LDFLAGS): Define.
381         * configure: Regenerate.
382         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
383
384 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
385
386         PR target/36424
387         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
388         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
389         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
390
391 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
392
393         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
394
395 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
396
397         * config.gcc (Obsolete configurations): Remove list of
398         configurations.
399         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
400         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
401         targets matched by those patterns.
402         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
403         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
404         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
405         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
406         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
407         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
408         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
409         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
410         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
411         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
412         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
413         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
414         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
415         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
416         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
417         Make code for Solaris 7 and greater unconditional for Solaris.
418         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
419         Remove --with-* handling.
420         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
421         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
422         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
423         LINK_OS_WINDISS_SPEC): Remove.
424         * config/rs6000/sysv4.opt (mwindiss): Remove.
425         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
426         * configure: Regenerate.
427         * doc/cpp.texi: Don't mention BeOS.
428         * doc/extend.texi (interrupt): Don't mention MS1.
429         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
430         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
431         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
432         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
433         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
434         Remove.
435         * doc/invoke.texi (MT Options): Remove.
436         (-mwindiss): Remove.
437         (CRIS Options): Remove cris-axis-aout references.
438         (HPPA Options): Don't mention hppa1.1-*-pro.
439         * doc/md.texi: (MorphoTech family): Remove.
440         * libgcc2.c: Don't handle UWIN.
441         * config/alpha/t-unicosmk: Remove.
442         * config/alpha/unicosmk.h: Remove.
443         * config/arm/kaos-arm.h: Remove.
444         * config/arm/kaos-strongarm.h: Remove.
445         * config/arm/strongarm-coff.h: Remove.
446         * config/arm/strongarm-elf.h: Remove.
447         * config/arm/strongarm-pe.h: Remove.
448         * config/arm/t-strongarm-pe: Remove.
449         * config/arm/t-xscale-coff: Remove.
450         * config/arm/t-xscale-elf: Remove.
451         * config/arm/xscale-coff.h: Remove.
452         * config/arm/xscale-elf.h: Remove.
453         * config/chorus.h: Remove.
454         * config/cris/aout.h: Remove.
455         * config/cris/aout.opt: Remove.
456         * config/cris/t-aout: Remove.
457         * config/i386/beos-elf.h: Remove.
458         * config/i386/kaos-i386.h: Remove.
459         * config/i386/ptx4-i.h: Remove.
460         * config/i386/sco5.h: Remove.
461         * config/i386/sco5.opt: Remove.
462         * config/i386/sysv4-cpp.h: Remove.
463         * config/i386/sysv5.h: Remove.
464         * config/i386/t-beos: Remove.
465         * config/i386/t-sco5: Remove.
466         * config/i386/t-uwin: Remove.
467         * config/i386/uwin.asm: Remove.
468         * config/i386/uwin.h: Remove.
469         * config/kaos.h: Remove.
470         * config/mips/windiss.h: Remove.
471         * config/mt: Remove directory.
472         * config/pa/pa-osf.h: Remove.
473         * config/pa/pa-pro-end.h: Remove.
474         * config/pa/t-pro: Remove.
475         * config/ptx4.h: Remove.
476         * config/rs6000/beos.h: Remove.
477         * config/rs6000/kaos-ppc.h: Remove.
478         * config/rs6000/t-beos: Remove.
479         * config/rs6000/windiss.h: Remove.
480         * config/sh/kaos-sh.h: Remove.
481         * config/sol2-6.h: Remove.
482         * config/sparc/sol26-sld.h: Remove.
483         * config/sparc/sysv4-only.h: Remove.
484         * config/vax/bsd.h: Remove.
485         * config/vax/t-memfuncs: Remove.
486         * config/vax/ultrix.h: Remove.
487         * config/vax/vaxv.h: Remove.
488         * config/windiss.h: Remove.
489
490 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
491
492         PR rtl-optimization/36438
493         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
494         for vector shifts with constant scalar shift operands.
495
496 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
497
498         * doc/invoke.texi: Document -march=xlr.
499         * config/mips/xlr.md: New file.
500         * config/mips/mips.md: Include it.
501         (cpu): Add "xlr".
502         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
503         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
504         (mips_rtx_cost_data): Likewise.
505
506 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
507
508         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
509         PRE_INC and PRE_DEC cases.
510
511 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
512
513         PR rtl-optimization/36419
514         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
515         the emitting jump insn.
516
517         PR target/36362
518         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
519         is not bool, boolify the whole *expr_p and convert to the desired type.
520
521 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
522
523         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
524         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
525         Add omp_private_outer_ref hook, add another argument to
526         omp_clause_default_ctor hook.
527         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
528         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
529         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
530         hook_tree_tree_tree_tree_null.
531         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
532         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
533         * hooks.c (hook_tree_tree_tree_tree_null): New function.
534         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
535         * tree.def (OMP_TASK): New tree code.
536         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
537         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
538         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
539         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
540         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
541         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
542         OMP_CLAUSE_COLLAPSE_EXPR): Define.
543         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
544         (OMP_DIRECTIVE_P): Add OMP_TASK.
545         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
546         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
547         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
548         and OMP_CLAUSE_UNTIED entries.
549         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
550         num_ops to 2.
551         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
552         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
553         * tree-pretty-print.c (dump_omp_clause): Handle
554         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
555         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
556         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
557         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
558         warning about unsigned iterators.  Change decl/init/cond/incr
559         arguments to TREE_VECs, check arguments for all collapsed loops.
560         (c_finish_omp_taskwait): New function.
561         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
562         ws_clauses.
563         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
564         default_function_array_conversion on init.  Add par_clauses argument.
565         If decl is present in parallel's lastprivate clause, change it to
566         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
567         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
568         collapse count in clauses.
569         (c_parser_omp_for, c_parser_omp_parallel): Adjust
570         c_parser_omp_for_loop callers.
571         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
572         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
573         (c_parser_omp_clause_name): Handle collapse and untied clauses.
574         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
575         functions.
576         (c_parser_omp_clause_schedule): Handle schedule(auto).
577         Include correct location in the error message.
578         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
579         and PRAGMA_OMP_CLAUSE_UNTIED.
580         (OMP_TASK_CLAUSE_MASK): Define.
581         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
582         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
583         * tree-nested.c (convert_nonlocal_omp_clauses,
584         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
585         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
586         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
587         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
588         OMP_CLAUSE_DECL.
589         (conver_nonlocal_reference, convert_local_reference,
590         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
591         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
592         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
593         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
594         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
595         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
596         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
597         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
598         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
599         OMP_CLAUSE_UNTIED.
600         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
601         * c-common.h (c_finish_omp_taskwait): New prototype.
602         * gimple-low.c (lower_stmt): Handle OMP_TASK.
603         * tree-parloops.c (create_parallel_loop): Create 1 entry
604         vectors for OMP_FOR_{INIT,COND,INCR}.
605         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
606         (make_edges): Handle OMP_TASK.
607         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
608         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
609         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
610         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
611         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
612         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
613         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
614         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
615         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
616         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
617         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
618         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
619         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
620         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
621         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
622         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
623         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
624         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
625         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
626         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
627         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
628         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
629         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
630         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
631         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
632         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
633         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
634         original iterator is present in lastprivate clause or if
635         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
636         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
637         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
638         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
639         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
640         if it is set, lookup var in outer contexts too.  Handle
641         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
642         to be implicitly determined firstprivate for task regions.
643         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
644         if it is set, lookup var in outer contexts too.  Set
645         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
646         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
647         OMP_CLAUSE_UNTIED.  Take region_type as last argument
648         instead of in_parallel and in_combined_parallel.
649         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
650         Adjust callers.
651         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
652         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
653         (new_omp_context): Set default_kind to
654         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
655         (omp_region_type): New enum.
656         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
657         fields, add region_type.
658         (new_omp_context): Take region_type as argument instead of is_parallel
659         and is_combined_parallel.
660         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
661         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
662         ctx->is_combined_parallel checks.
663         (gimplify_omp_task): New function.
664         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
665         OMP_CLAUSE_UNTIED.
666         * omp-low.c (extract_omp_for_data): Use schedule(static)
667         for schedule(auto).  Handle pointer and unsigned iterators.
668         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
669         Add loops argument.  Extract data for collapsed OMP_FOR loops.
670         (expand_parallel_call): Assert sched_kind isn't auto,
671         map runtime schedule to index 3.
672         (struct omp_for_data_loop): New type.
673         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
674         Add loop, loops, collapse and iter_type fields.
675         (workshare_safe_to_combine_p): Disallow combined for if
676         iter_type is unsigned long long.  Don't combine collapse > 1 loops
677         unless all bounds and steps are constant.  Adjust extract_omp_for_data
678         caller.
679         (expand_omp_for_generic): Handle pointer, unsigned and long long
680         iterators.  Handle collapsed OMP_FOR loops.  Adjust
681         for struct omp_for_data changes.  If libgomp function doesn't return
682         boolean_type_node, add comparison of the return value with 0.
683         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
684         pointer, unsigned and long long iterators.  Adjust for struct
685         omp_for_data changes.
686         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
687         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
688         unsigned long long.  Allocate loops array, pass it to
689         extract_omp_for_data.  For collapse > 1 loops use always
690         expand_omp_for_generic.
691         (omp_context): Add sfield_map and srecord_type fields.
692         (is_task_ctx, lookup_sfield): New functions.
693         (use_pointer_for_field): Use is_task_ctx helper.  Change first
694         argument's type from const_tree to tree.  Clarify comment.
695         In OMP_TASK disallow copy-in/out sharing.
696         (build_sender_ref): Call lookup_sfield instead of lookup_field.
697         (install_var_field): Add mask argument.  Populate both record_type
698         and srecord_type if needed.
699         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
700         in srecord_type.
701         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
702         and DECL_FIELD_OFFSET.
703         (scan_sharing_clauses): Adjust install_var_field callers.  For
704         firstprivate clauses on explicit tasks allocate the var by value in
705         record_type unconditionally, rather than by reference.
706         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
707         Use is_taskreg_ctx instead of is_parallel_ctx.
708         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
709         (create_omp_child_function_name): Add task_copy argument, use
710         *_omp_cpyfn* names if it is true.
711         (create_omp_child_function): Add task_copy argument, if true create
712         *_omp_cpyfn* helper function.
713         (scan_omp_parallel): Adjust create_omp_child_function callers.
714         Rename parallel_nesting_level to taskreg_nesting_level.
715         (scan_omp_task): New function.
716         (lower_rec_input_clauses): Don't run constructors for firstprivate
717         explicit task vars which are initialized by *_omp_cpyfn*.  
718         Pass outer var ref to omp_clause_default_ctor hook if
719         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
720         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
721         OMP_CLAUSE_REDUCTION_INIT.
722         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
723         avoid duplicate setting of fields.  Handle
724         OMP_CLAUSE_PRIVATE_OUTER_REF.
725         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
726         copy-out if TREE_READONLY, only copy-in.
727         (expand_task_copyfn): New function.
728         (expand_task_call): New function.
729         (struct omp_taskcopy_context): New type.
730         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
731         New functions.
732         (lower_omp_parallel): Rename to...
733         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
734         Call create_task_copyfn if srecord_type is needed.  Adjust
735         sender_decl type.
736         (task_shared_vars): New variable.
737         (check_omp_nesting_restrictions): Warn if work-sharing,
738         barrier, master or ordered region is closely nested inside OMP_TASK.
739         Add warnings for barrier if closely nested inside of work-sharing,
740         ordered, or master region.
741         (scan_omp_1): Call check_omp_nesting_restrictions even for
742         GOMP_barrier calls.  Rename parallel_nesting_level to
743         taskreg_nesting_level.  Handle OMP_TASK.
744         (lower_lastprivate_clauses): Even if some lastprivate is found on a
745         work-sharing construct, continue looking for them on parent parallel
746         construct.
747         (lower_omp_for_lastprivate): Add lastprivate clauses
748         to the beginning of dlist rather than end.  Adjust for struct
749         omp_for_data changes.
750         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
751         not after it.  Handle collapsed OMP_FOR loops, adjust for
752         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
753         (get_ws_args_for): Adjust extract_omp_for_data caller.
754         (scan_omp_for): Handle collapsed OMP_FOR
755         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
756         (lower_omp_single_simple): If libgomp function doesn't return
757         boolean_type_node, add comparison of the return value with 0.
758         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
759         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
760         (parallel_nesting_level): Rename to...
761         (taskreg_nesting_level): ... this.
762         (is_taskreg_ctx): New function.
763         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
764         of is_parallel_ctx.
765         (execute_lower_omp): Rename parallel_nesting_level to
766         taskreg_nesting_level.
767         (expand_omp_parallel): Rename to...
768         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
769         Call omp_task_call for OMP_TASK regions.
770         (expand_omp): Adjust caller, handle OMP_TASK.
771         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
772
773         * bitmap.c (bitmap_default_obstack_depth): New variable.
774         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
775         if argument is NULL and bitmap_default_obstack is already initialized.
776         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
777         at the end.
778         * matrix-reorg.c (matrix_reorg): Likewise.
779
780 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
781
782         * config/i386/i386.md (*indirect_jump): Macroize using P
783         mode iterator.  Remove !TARGET_64BIT from insn constraints.
784         (*tablejump_1): Ditto.
785         (*indirect_jump_rex64): Remove insn pattern.
786         (*tablejump_1_rex64): Ditto.
787         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
788         and eh_return_si insn patterns.
789
790 2008-06-06  Richard Guenther  <rguenther@suse.de>
791
792         * tree-ssa-structalias.c (merge_smts_into): Remove.
793         (find_what_p_points_to): Do not bother to compute the
794         points-to set for pt_anything pointers.
795         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
796         for pt_anything pointers is ok.
797
798 2008-06-06  Jan Hubicka  <jh@suse.cz>
799
800         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
801
802 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
803
804         * cgraph.c: Fix typos in comments.
805         (cgraph_availability_names): Fix string typo.
806         * fold-const.c: Fix typos in comments.
807         (fold_binary): Fix typo in warning.
808         * genautomata.c: Fix typos in comments.
809         (check_presence_pattern_sets): Fix typo in local variable.
810         (output_description): Fix typo in output.
811         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
812         * hwint.h: Likewise.
813         * matrix-reorg.c (check_allocation_function): Likewise.
814         * omega.c (smooth_weird_equations): Likewise.
815         * auto-inc-dec.c: Fix typos in comments.
816         * bb-reorder.c: Likewise.
817         * builtins.c: Likewise.
818         * c-common.c: Likewise.
819         * c-cppbuiltin.c: Likewise.
820         * c-parser.c: Likewise.
821         * c-pretty-print.c: Likewise.
822         * cfgcleanup.c: Likewise.
823         * cfgexpand.c: Likewise.
824         * cfghooks.c: Likewise.
825         * cfglayout.c: Likewise.
826         * cfgloopmanip.c: Likewise.
827         * cgraphunit.c: Likewise.
828         * coverage.c: Likewise.
829         * dbxout.c: Likewise.
830         * df-byte-scan.c: Likewise.
831         * df-core.c: Likewise.
832         * df-problems.c: Likewise.
833         * df-scan.c: Likewise.
834         * dfp.c: Likewise.
835         * dominance.c: Likewise.
836         * domwalk.c: Likewise.
837         * dse.c: Likewise.
838         * dwarf2out.c: Likewise.
839         * emit-rtl.c: Likewise.
840         * et-forest.c: Likewise.
841         * function.c: Likewise.
842         * function.h: Likewise.
843         * gcc.c: Likewise.
844         * gcov-io.c: Likewise.
845         * gcov.c: Likewise.
846         * gcse.c: Likewise.
847         * genattrtab.c: Likewise.
848         * ggc-page.c: Likewise.
849         * gimplify.c: Likewise.
850         * gthr-lynx.h: Likewise.
851         * haifa-sched.c: Likewise.
852         * ipa-cp.c: Likewise.
853         * ipa-inline.c: Likewise.
854         * ipa-prop.h: Likewise.
855         * ipa-pure-const.c: Likewise.
856         * ipa-struct-reorg.c: Likewise.
857         * ipa-struct-reorg.h: Likewise.
858         * ipa-type-escape.c: Likewise.
859         * ipa.c: Likewise.
860         * loop-doloop.c: Likewise.
861         * mips-tfile.c: Likewise.
862         * mkmap-flat.awk: Likewise.
863         * mkmap-symver.awk: Likewise.
864         * modulo-sched.c: Likewise.
865         * omp-low.c: Likewise.
866         * optabs.c: Likewise.
867         * optabs.h: Likewise.
868         * opts.c: Likewise.
869         * passes.c: Likewise.
870         * postreload-gcse.c: Likewise.
871         * postreload.c: Likewise.
872         * predict.c: Likewise.
873         * pretty-print.h: Likewise.
874         * profile.c: Likewise.
875         * protoize.c: Likewise.
876         * ra-conflict.c: Likewise.
877         * real.c: Likewise.
878         * recog.c: Likewise.
879         * regclass.c: Likewise.
880         * regs.h: Likewise.
881         * reload.c: Likewise.
882         * rtl-error.c: Likewise.
883         * rtlanal.c: Likewise.
884         * scan.h: Likewise.
885         * sched-rgn.c: Likewise.
886         * see.c: Likewise.
887         * stmt.c: Likewise.
888         * target.h: Likewise.
889         * tree-dfa.c: Likewise.
890         * tree-eh.c: Likewise.
891         * tree-flow-inline.h: Likewise.
892         * tree-inline.c: Likewise.
893         * tree-into-ssa.c: Likewise.
894         * tree-loop-distribution.c: Likewise.
895         * tree-nested.c: Likewise.
896         * tree-parloops.c: Likewise.
897         * tree-pass.h: Likewise.
898         * tree-pretty-print.c: Likewise.
899         * tree-profile.c: Likewise.
900         * tree-scalar-evolution.c: Likewise.
901         * tree-sra.c: Likewise.
902         * tree-ssa-alias-warnings.c: Likewise.
903         * tree-ssa-ccp.c: Likewise.
904         * tree-ssa-coalesce.c: Likewise.
905         * tree-ssa-dom.c: Likewise.
906         * tree-ssa-dse.c: Likewise.
907         * tree-ssa-forwprop.c: Likewise.
908         * tree-ssa-live.c: Likewise.
909         * tree-ssa-live.h: Likewise.
910         * tree-ssa-loop-im.c: Likewise.
911         * tree-ssa-loop-ivopts.c: Likewise.
912         * tree-ssa-loop-niter.c: Likewise.
913         * tree-ssa-loop-prefetch.c: Likewise.
914         * tree-ssa-phiopt.c: Likewise.
915         * tree-ssa-phiprop.c: Likewise.
916         * tree-ssa-sccvn.c: Likewise.
917         * tree-ssa-ter.c: Likewise.
918         * tree-ssa-threadupdate.c: Likewise.
919         * tree-ssa.c: Likewise.
920         * tree-vect-analyze.c: Likewise.
921         * tree-vect-transform.c: Likewise.
922         * tree-vectorizer.c: Likewise.
923         * tree-vn.c: Likewise.
924         * tree-vrp.c: Likewise.
925         * tree.c: Likewise.
926         * tree.def: Likewise.
927         * tree.h: Likewise.
928         * unwind-dw2-fde.c: Likewise.
929         * unwind.inc: Likewise.
930         * value-prof.c: Likewise.
931         * vmsdbgout.c: Likewise.
932
933 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
934
935         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
936         always place FP constants in the TOC for TARGET_POWERPC64.
937         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
938
939 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
940
941         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
942         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
943         enable for TARGET_E500_DOUBLE.
944         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
945         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
946         floating-point modes like integer modes for E500 double.
947         (rs6000_legitimate_offset_address_p): Likewise.
948         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
949         addressing for DDmode for E500 double.
950         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
951         modes as using 64-bits of registers for E500 double.
952         (spe_build_register_parallel): Do not handle DDmode or TDmode.
953         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
954         specially for E500 double.
955         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
956         TDmode for E500 double.
957         (rs6000_gimplify_va_arg): Only handle SDmode in registers
958         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
959         (rs6000_split_multireg_move): Do not handle TDmode specially for
960         E500 double.
961         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
962         using 64-bit registers for E500 double.
963         (emit_frame_save): Do not handle DDmode specially for E500 double.
964         (gen_frame_mem_offset): Likewise.
965         (rs6000_function_value): Do not call spe_build_register_parallel
966         for DDmode or TDmode.
967         (rs6000_libcall_value): Likewise.
968         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
969         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
970         for E500 double.
971
972 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
973
974         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
975         in comments.
976
977 2008-06-04  Junjie Gu <jgu@tensilica.com>
978
979         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
980         comparison for frame pointers.
981
982 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
983
984         PR target/27386
985         * config/avr/avr.h (PUSH_ROUNDING): Remove.
986
987 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
988
989         PR target/30243
990         * builtins.c (expand_builtin_signbit): Don't take lowpart when
991         register is already smaller or equal to required mode. 
992
993 2008-06-04  Xinliang David Li  <davidxl@google.com>
994
995         * tree-call-cdce.c: New file. 
996         (cond_dead_built_in_calls): New static variable.
997         (input_domain): New struct.
998         (check_pow): New function.
999         (check_builtin_call): Ditto.
1000         (check_target_format): Ditto.
1001         (is_call_dce_candidate): Ditto.
1002         (gen_one_condition): Ditto.
1003         (gen_conditions_for_domain): Ditto.
1004         (get_domain): Ditto.
1005         (gen_conditions_for_pow_cst_base): Ditto.
1006         (gen_conditions_for_pow_int_base): Ditto.
1007         (gen_conditions_for_pow): Ditto.
1008         (get_no_error_domain): Ditto.
1009         (gen_shrink_wrap_conditions): Ditto.
1010         (shrink_wrap_one_built_in_call): Ditto.
1011         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1012         (tree_call_cdce): Ditto.
1013         (gate_call_cdce): Ditto.
1014         (pass_call_cdce): New gimple pass.
1015         * passes.c: (init_optimization_passes): New pass.
1016         * tree-pass.h: New pass declaration.
1017         * opts.c (decode_options): New flag setting.
1018         * common.opt: Add -ftree-builtin-call-dce flag.
1019         * Makefile.in: Add new source file.
1020         * tempvar.def: New tv_id.
1021         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1022
1023 2008-06-04  Richard Guenther  <rguenther@suse.de>
1024
1025         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1026         (is_call_clobbered): Always check var_ann->call_clobbered.
1027         (mark_call_clobbered): Always set var_ann->call_clobbered.
1028         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1029         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1030         (reset_alias_info): Clear call clobbering info on MTAGs and
1031         globals as well.
1032         (set_pt_anything): Set pt_global_mem.
1033         (create_tag_raw): Adjust comment.
1034         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1035
1036 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1037             Maxim Kuvyrkov  <maxim@codesourcery.com>
1038
1039         * config/m68k/m68k.opt (mxgot): New option.
1040         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1041         (m68k_output_addr_const_extra): New.
1042         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1043         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1044         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1045         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1046
1047 2008-06-04  Richard Guenther  <rguenther@suse.de>
1048
1049         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1050         negative or non-representable offsets.
1051
1052 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1053
1054         * config/i386/i386.c (ix86_gen_leave): New.
1055         (ix86_gen_pop1): Likewise.
1056         (ix86_gen_add3): Likewise.
1057         (ix86_gen_sub3): Likewise.
1058         (ix86_gen_sub3_carry): Likewise.
1059         (ix86_gen_one_cmpl2): Likewise.
1060         (ix86_gen_monitor): Likewise.
1061         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1062         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1063         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1064         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1065         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1066         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1067         (ix86_expand_epilogue): Updated.
1068         (print_operand): Handle integer register operand for 'z'.
1069         (ix86_expand_strlensi_unroll_1): Likewise.
1070         (ix86_expand_strlen): Likewise.
1071         (ix86_expand_builtin): Likewise.
1072         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1073         mov{q}/mov{l} and add{q}/add{l}.
1074
1075 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1076
1077         * config/i386/i386.md (P): New mode iterator.
1078         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1079         using P mode iterator.
1080         (DFmode push_operand splitter): Ditto.
1081         (XFmode push_operand splitter): Ditto.
1082         (DFmode float_extend SFmode push_operand splitter): Ditto.
1083         (XFmode float_extend SFmode push_operand splitter): Do not generate
1084         SImode pushes for 64bit target.  Macroize Dimode and SImode
1085         pushes using P mode iterator.
1086         (XFmode float_extend DFmode push_operand splitter): Ditto.
1087
1088 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1089
1090         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1091         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1092         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1093         return type to int.
1094         (ix86_call_abi_override): Remove check for call_used_regs.
1095
1096 2008-06-03  Richard Guenther  <rguenther@suse.de>
1097
1098         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1099         for the lhs of calls if the return type contains pointers.
1100
1101 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1102
1103         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1104         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1105         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1106         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1107         of cfun and DEFAULT_ABI to deceide abi mode.
1108         (DEFAULT_ABI): New.
1109         (REG_PARM_STACK_SPACE): Removed.
1110         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1111         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1112         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1113         (ix86_function_abi): Likewise.
1114         (ix86_function_type_abi): Likewise.
1115         (ix86_call_abi_override): Likewise.
1116         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1117         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1118         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1119         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1120         specific defines.
1121         (X86_64_REGPARM_MAX): New.
1122         (X86_64_SSE_REGPARM_MAX): New.
1123         (X64_REGPARM_MAX): New.
1124         (X64_SSE_REGPARM_MAX): New.
1125         (X86_32_REGPARM_MAX): New.
1126         (X86_32_SSE_REGPARM_MAX): New.
1127         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1128         (ix86_function_regparm): Handle user calling abi.
1129         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1130         by DEFAULT_ABI versus SYSV_ABI check.
1131         (ix86_reg_parm_stack_space): New.
1132         (ix86_function_type_abi): New.
1133         (ix86_call_abi_override): New.
1134         (ix86_function_abi): New.
1135         (ix86_cfun_abi): New.
1136         (init_cumulative_args): Call abi specific initialization.
1137         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1138         (function_arg_64): Extend SSE_REGPARM_MAX check.
1139         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1140         (ix86_pass_by_reference): Likewise.
1141         (ix86_function_value_regno_p): Likewise.
1142         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1143         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1144         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1145         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1146         (setup_incoming_varargs_64): Adjust regparm for call abi.
1147         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1148         (ix86_va_start): Likewise.
1149         (ix86_gimplify_va_arg): Likewise.
1150         (ix86_expand_prologue): Likewise.
1151         (output_pic_addr_const): Likewise.
1152         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1153         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1154         (x86_output_mi_thunk): Likewise.
1155         (x86_function_profiler): Likewise.
1156         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1157         (SYSV_ABI, MS_ABI): New constants.
1158         (DEFAULT_ABI): New.
1159         (init_regs): Add prototype of function in regclass.c file.
1160         (OVERRIDE_ABI_FORMAT): New.
1161         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1162         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1163         (OUTGOING_REG_PARM_STACK_SPACE): New.
1164         (ix86_reg_parm_stack_space): New prototype.
1165         (CUMULATIVE_ARGS): Add call_abi member.
1166         (machine_function): Add call_abi member.
1167         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1168         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1169
1170 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1171
1172         PR target/34879
1173         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1174         (avr_builtin_setjmp_frame_value): New function.
1175         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1176         (nonlocal_goto): Define.
1177
1178 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1179
1180         * config/mips/mips.c (mips_emit_loadgp): Return early if
1181         there is nothing do to, otherwise emit a blockage if
1182         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1183         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1184
1185 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1186
1187         * configure.ac: Drop unneeded backslash ending up in config.in.
1188         * acinclude.m4: Likewise.
1189         * config.in: Regenerate.
1190
1191 2008-05-26  Jan Hubicka  <jh@suse.cz>
1192
1193         * predict.c (maybe_hot_frequency_p): Break out of...
1194         (maybe_hot_bb_p): ... here.
1195         (maybe_hot_edge_p): New.
1196         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1197         * basic-block.h (maybe_hot_edge_p): Declare.
1198
1199 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1200
1201         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1202         (*cmpfp_<mode>_cc): Ditto.
1203         (*fp_jcc_8<mode>_387): Ditto.
1204         (*fop_<MODEF:mode>_2_i387): Ditto.
1205         (*fop_<MODEF:mode>_3_i387): Ditto.
1206         (*fop_xf_2_i387): Ditto.
1207         (*fop_xf_3_i387): Ditto.
1208
1209 2008-06-02  Tomas Bily  <tbily@suse.cz>
1210
1211         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1212
1213 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1214
1215         * config/mips/mips.c (mips_valid_offset_p): New function.
1216         (mips_valid_lo_sum_p): Likewise.
1217         (mips_classify_address): Use them.
1218         (mips_force_address): New function.
1219         (mips_legitimize_address): Use it.
1220         * config/mips/mips.md (MOVE128): New mode iterator.
1221         (movtf): Require TARGET_64BIT.  Remove empty strings.
1222         (*movtf_internal): Rename to...
1223         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1224         of "R" and use {,fp}{load,store} attributes instead of "multi".
1225         Use a separate define_split.
1226         (*movtf_mips16): New pattern.
1227
1228 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1229
1230         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1231         * config/mips/mips.c (mips_expand_before_return): New function.
1232         (mips_expand_epilogue): Call it.
1233         * config/mips/mips.md (return): Turn into a define_expand.
1234         (*return): New insn.
1235
1236 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1237
1238         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1239         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1240         functions.  Do not emit uses and clobbers of CONCATs; individually
1241         use and clobber their operands.
1242         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1243         gen_clobber, emit_use and gen_use.
1244         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1245         (expand_builtin_return): Likewise.
1246         * cfgbuild.c (count_basic_blocks): Likewise.
1247         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1248         * explow.c (emit_stack_restore): Likewise.
1249         * expmed.c (extract_bit_field_1): Likewise.
1250         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1251         (emit_move_multi_word, store_constructor): Likewise.
1252         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1253         (thread_prologue_and_epilogue_insns): Likewise.
1254         * lower-subreg.c (resolve_simple_move): Likewise.
1255         * optabs.c (widen_operand, expand_binop): Likewise.
1256         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1257         * reload.c (find_reloads): Likewise.
1258         * reload1.c (eliminate_regs_in_insn): Likewise.
1259         * stmt.c (expand_nl_goto_receiver): Likewise.
1260         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1261         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1262         * config/arm/arm.c (arm_load_pic_register): Likewise.
1263         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1264         * config/arm/arm.md (untyped_return): Likewise.
1265         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1266         * config/avr/avr.c (expand_prologue): Likewise.
1267         * config/bfin/bfin.c (do_unlink): Likewise.
1268         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1269         * config/cris/cris.c (cris_expand_prologue): Likewise.
1270         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1271         (machopic_legitimize_pic_address): Likewise.
1272         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1273         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1274         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1275         (ix86_expand_convert_uns_didf_sse): Likewise.
1276         (ix86_expand_vector_init_general): Likewise.
1277         * config/ia64/ia64.md (eh_epilogue): Likewise.
1278         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1279         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1280         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1281         (config/iq2000/iq2000.c): Likewise.
1282         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1283         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1284         (builtin_longjmp): Likewise.
1285         * config/mn10300/mn10300.md (call, call_value): Likewise.
1286         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1287         * config/pdp11/pdp11.md (abshi2): Likewise.
1288         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1289         * config/s390/s390.c (s390_emit_prologue): Likewise.
1290         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1291         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1292         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1293         * config/sh/sh.c (prepare_move_operands): Likewise.
1294         (output_stack_adjust, sh_expand_epilogue): Likewise.
1295         (sh_set_return_address, sh_expand_t_scc): Likewise.
1296         * config/sparc/sparc.c (load_pic_register): Likewise.
1297         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1298         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1299         * config/v850/v850.c (expand_epilogue): Likewise.
1300
1301 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1302
1303         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1304         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1305         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1306         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1307         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1308         stack pointer register.
1309         (output_movhi): Remove code for interrupt specific writing to the 
1310         stack pointer register.
1311
1312 2008-05-31  Richard Guenther  <rguenther@suse.de>
1313
1314         PR tree-optimization/34244
1315         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1316         (tree_expr_nonzero_warnv_p): Likewise.
1317         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1318         ssa_name_nonnegative_p.
1319         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1320         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1321         not tree_expr_nonzero_warnv_p.
1322
1323         PR tree-optimization/36262
1324         Revert
1325         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1326
1327         PR tree-optimization/34244
1328         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1329         (record_numbers_of_iterations): New function.
1330         (execute_vrp): Cache the numbers of iterations of loops.
1331         * tree-scalar-evolution.c (scev_reset_except_niters):
1332         New function.
1333         (scev_reset): Use scev_reset_except_niters.
1334         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1335
1336 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1337
1338         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1339         __WORKAROUND_RETS when appropriate.
1340
1341 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1342
1343         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1344         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1345         mode iterator.
1346         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1347         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1348         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1349         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1350         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1351         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1352         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1353         *fop_df_1_sse insn patterns using MODEF mode iterator.
1354         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1355         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1356         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1357         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1358         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1359         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1360         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1361         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1362         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1363         (*fop_xf_5_i387): Ditto.
1364         (*fop_xf_6_i387): Ditto.
1365
1366 2008-05-30  Richard Guenther  <rguenther@suse.de>
1367
1368         * builtins.c (build_string_literal): Avoid generating
1369         a non-gimple_val result.
1370
1371 2008-05-30  DJ Delorie  <dj@redhat.com>
1372
1373         * exec-tool.in: Use an environment variable (private) instead of a
1374         file (shared) as a semaphore, so as to not break parallel builds.
1375
1376 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1377
1378         * optabs.c (maybe_encapsulate_block): Remove.
1379         (emit_libcall_block): Adjust accordingly.
1380         * optabs.h (maybe_encapsulate_block): Remove prototype.
1381
1382         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1383         Don't use maybe_encapsulate_block.
1384
1385 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1386
1387         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1388         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1389         rtx is a SYMBOL_REF before calling get_pool_constant.
1390
1391 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1392
1393         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1394
1395 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1396
1397         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1398         rather than OS names to choose INO_T_EQ definition.
1399         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1400         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1401
1402 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1403
1404         PR target/36348
1405         * config/darwin-f.c: New.
1406         * config/t-darwin: Added rule to build darwin-f.o.
1407         * config.gcc: Defined new variable, fortran_target_objs.
1408         (*-*-darwin*): Set fortran_target_objs.
1409         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1410         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1411         * configure: Regenerated.
1412
1413 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1414
1415         PR target/35771
1416         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1417         canonical type if needed.
1418
1419 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1420
1421         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1422
1423 2008-05-29  Richard Guenther  <rguenther@suse.de>
1424
1425         PR tree-optimization/36343
1426         PR tree-optimization/36346
1427         PR tree-optimization/36347
1428         * tree-flow.h (clobber_what_p_points_to): Declare.
1429         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1430         pointed-to variable is dereferenced is irrelevant to whether
1431         the pointer can access the pointed-to variable.
1432         (clobber_what_p_points_to): New function.
1433         * tree-ssa-alias.c (set_initial_properties): Use it.
1434         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1435         call clobber check for NMTs.
1436
1437 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1438         
1439         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1440         for printing gcov_type.
1441
1442 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1443
1444         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1445         and the eh region information.
1446         * value-prof.c (gimple_move_stmt_histograms): New function.
1447         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1448
1449 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1450
1451         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1452
1453 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1454
1455         * value-prof.c (tree_ic_transform): Print counts.
1456         * tree-profile.c (tree_gen_ic_func_profiler):
1457         Clear __gcov_indreict_call_callee variable to avoid misattribution
1458         of the profile.
1459
1460 2008-05-28  Rafael Espindola  <espindola@google.com>
1461
1462         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1463         invalid sharing.
1464
1465 2008-05-28  Richard Guenther  <rguenther@suse.de>
1466
1467         PR tree-optimization/36339
1468         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1469         and clobbering code out of the loop.
1470
1471 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1472
1473         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1474         letters defined.
1475
1476         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1477         s390_contiguous_bitmask_p, s390_symref_operand_p,
1478         s390_check_symref_alignment, s390_reload_larl_operand,
1479         s390_reload_symref_address): New functions.
1480         (s390_branch_condition_mnemonic): Support compare and branch
1481         instructions.
1482         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1483         and 'W' constraints.
1484         (s390_secondary_reload): Add secondary reloads for unaligned
1485         symbol refs or symbol refs to floating point or QI/TI mode
1486         integer values.
1487         (legitimate_address_p): Accept symbol references as addresses.
1488         (s390_expand_insv): Use rotate and insert selected bits
1489         instruction for insv when building for z10.
1490         (print_operand_address): Handle symbol ref addresses.
1491         (print_operand): Output modifier 'c' added for signed byte values.
1492         (s390_encode_section_info): Mark symbol refs with
1493         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1494
1495         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1496         (length attribute): RRF, RRR have 4 byte length.
1497         (FPALL, INTALL): New mode iterators added.
1498         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1499         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1500         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1501         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1502         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1503         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1504         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1505         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1506         instructions.
1507         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1508         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1509         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1510         reload<INTALL:mode><P:mode>_toreg_z10,
1511         reload<FPALL:mode><P:mode>_tomem_z10,
1512         reload<FPALL:mode><P:mode>_toreg_z10,
1513         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1514         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1515         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1516         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1517         definition.
1518         (movmem, clrmem, cmpmem): New splitters added.
1519
1520         * config/s390/predicates.md (larl_operand): Use
1521         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1522         SYMBOL_REF_ALIGN1_P.
1523         (s390_signed_integer_comparison,
1524         s390_unsigned_integer_comparison): New predicates.
1525
1526         * config/s390/s390-protos.h (s390_check_symref_alignment,
1527         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1528         s390_reload_symref_address,
1529         s390_compare_and_branch_condition_mask): Prototypes added.
1530
1531         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1532         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1533         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1534
1535 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1536
1537         * config/s390/s390.c (z10_cost): New cost function for z10.
1538         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1539         (s390_issue_rate): Adjust issue rate for z10.
1540         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1541         (processor_flags): Add PF_Z10.
1542         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1543         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1544         * gcc/config.gcc: Add z10.
1545
1546 2008-05-28  Richard Guenther  <rguenther@suse.de>
1547
1548         PR tree-optimization/36291
1549         * tree-flow. h (struct gimple_df): Remove var_anns member.
1550         * tree-flow-inline.h (gimple_var_anns): Remove.
1551         (var_ann): Simplify.
1552         * tree-dfa.c (create_var_ann): Simplify.
1553         (remove_referenced_var): Clear alias info from var_anns of globals.
1554         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1555         (delete_tree_ssa): Clear alias info from var_anns of globals.
1556         Do not free var_anns.
1557         (var_ann_eq): Remove.
1558         (var_ann_hash): Likewise.
1559
1560 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1561
1562         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1563         and loongson2f entries.
1564         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1565         * config/mips/mips.h (processor_type): Add Loongson-2E
1566         and Loongson-2F entries.
1567         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1568         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1569         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1570         * doc/invoke.texi (MIPS Options): Document loongson2e
1571         and loongson2f processor names.
1572
1573 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1574
1575         PR target/35767
1576         PR target/35771
1577         * config/i386/i386.c (ix86_function_arg_boundary): Use
1578         alignment of canonical type.
1579         (ix86_expand_vector_move): Check unaligned memory access for
1580         all SSE modes.
1581
1582 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1583
1584         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1585         Moved to the front of file.
1586
1587 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1588             H.J. Lu  <hongjiu.lu@intel.com>
1589
1590         * dwarf2out.c (current_fde): New.
1591         (add_cfi): Use it.
1592         (lookup_cfa:): Likewise.
1593         (dwarf2out_end_epilogue): Likewise.
1594         (dwarf2out_note_section_used): Likewise.
1595
1596 2008-05-27  Michael Matz  <matz@suse.de>
1597
1598         PR c++/27975
1599         * c.opt (Wenum-compare): New warning option.
1600         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1601
1602 2008-05-27  Michael Matz  <matz@suse.de>
1603
1604         PR middle-end/36326
1605         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1606         non-BLKmode types.
1607         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1608         into memory as tail calls.
1609
1610 2008-05-27  Richard Guenther  <rguenther@suse.de>
1611
1612         PR tree-optimization/36339
1613         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1614         pointers cause all addressable variables to be call clobbered.
1615
1616 2008-05-27  Richard Guenther  <rguenther@suse.de>
1617
1618         PR tree-optimization/36245
1619         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1620
1621 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1622
1623         * config/s390/s390.md: Replace all occurences of the 'm'
1624         constraint with 'RT'.
1625
1626 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1627
1628         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1629         definitions added.
1630         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1631         "*movdi_64".
1632         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1633         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1634         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1635
1636 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1637
1638         * reload.c: (find_reloads): Skip alternatives according to the
1639         "enabled" attribute. Constify the constraint variable.
1640         * recog.c (get_attr_enabled): Add default implementation.
1641         (extract_insn): Set the alternative_enabled_p array
1642         in the recog_data struct.
1643         (preprocess_constraints, constrain_operands): Skip
1644         alternatives according to the "enabled" attribute
1645         * recog.h (struct recog_data): New field alternative_enabled_p.
1646         (skip_alternative): New inline function.
1647         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1648         (record_reg_classes): Skip alternative according to the
1649         "enabled" attribute.
1650
1651         * doc/md.texi: Add documention for the "enabled" attribute.
1652
1653 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1654
1655         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1656         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1657         constraint with TARGET_MEM_CONSTRAINT.
1658         * recog.c (asm_operand_ok, preprocess_constraints,
1659         constrain_operands): Likewise.
1660         * regclass.c (record_reg_classes): Likewise.
1661         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1662         * reload1.c (maybe_fix_stack_asms): Likewise.
1663         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1664         * recog.h: Adjust comment.
1665         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1666         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1667         * doc/md.texi: Add a note to description of 'm' constraint.
1668         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1669
1670 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1671
1672         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1673         that the bitfield is of integral type before testing its precision.
1674
1675 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1676             Sa Liu  <saliu@de.ibm.com> 
1677
1678         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1679         __modti3, __udivti3, __umodti3 and __udivmodti4.
1680         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1681         that implement TImode mul and div functions.
1682         * config/spu/multi3.c: New. Implement __multi3.
1683         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1684         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1685         functions on SPU.
1686
1687 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1688
1689         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1690         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1691         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1692         tls_sysv_suffix): New mode and mode attribute iterators.
1693         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1694         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1695         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1696         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1697         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1698         iterators.
1699
1700 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1701
1702         PR tree-optimization/36329
1703         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1704         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1705         * cgraphbuild.c (initialize_inline_failed): Use the latter
1706         macro in lieu of the former.
1707         * ipa-inline.c (cgraph_mark_inline): Likewise.
1708         (cgraph_decide_inlining_of_small_function): Likewise.
1709         (cgraph_decide_inlining): Likewise.
1710         (cgraph_decide_inlining_incrementally): Likewise.
1711
1712 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1713             Anatoly Sokolov  <aesok@post.ru>
1714
1715         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1716         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1717         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1718         optimization for 'avr6' architecture.
1719
1720 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1721
1722         PR target/34932
1723         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1724
1725 2008-05-26  Richard Guenther  <rguenther@suse.de>
1726
1727         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1728         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1729
1730 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1731
1732         PR middle-end/36253
1733         * caller-save.c (insert_restore): Verify alignment of spill space.
1734         (insert_save): Likewise.
1735         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1736         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1737         (STACK_SLOT_ALIGNMENT): Likewise.
1738         * function.c (LOCAL_ALIGNMENT): Removed.
1739         (get_stack_local_alignment): New.
1740         (assign_stack_local): Use it.  Set alignment on stack slot.
1741         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1742         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1743         (STACK_SLOT_ALIGNMENT): New.
1744         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1745         stack slot in XFmode.
1746
1747         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1748
1749 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1750
1751         PR/36321
1752         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1753         argument operand in rax isn't removed.
1754
1755 2008-05-26  Richard Guenther  <rguenther@suse.de>
1756
1757         PR middle-end/36300
1758         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1759         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1760
1761 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1762
1763         PR bootstrap/36331
1764         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1765
1766 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1767
1768         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1769         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1770
1771 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1772
1773         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1774         build a trampoline if we don't want one.
1775         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1776         return zero for nested functions if we don't want a trampoline.
1777
1778 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1779
1780         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1781
1782 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1783
1784         PR fortran/18428
1785         * c.opt: Removed undocumented option '-lang-fortran'.
1786         * c-common.h: Removed global variable 'lang_fortran'.
1787         * c-opts.c (c_common_handle_option): Removed code to handle
1788         option '-lang-fortran'. Updated includes.
1789         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1790         definition of '__GFORTRAN__'.
1791         (define__GNUC__): Reimplemented to use BASEVER and
1792         cpp_define_formatted.
1793         (builtin_define_with_value_n): Removed.
1794         * c-incpath.h: Renamed to ...
1795         * incpath.h: ... this.
1796         * c-incpath.c: Renamed to ...
1797         * incpath.c: ... this. Updated includes.
1798         * fix-header.c: Updated includes.
1799         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1800         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1801         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1802
1803 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1804
1805         * tree.h: Update the table of flags used on tree nodes.
1806         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1807         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1808         (FORCED_LABEL): Add access check.
1809         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1810         (ASM_INPUT_P): Likewise.
1811         (ASM_VOLATILE_P): Likewise.
1812         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1813         (OMP_SECTION_LAST): Access private_flag directly.
1814         (OMP_RETURN_NOWAIT): Likewise.
1815         (OMP_PARALLEL_COMBINED): Likewise.
1816         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1817         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1818         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1819         deprecated_flag directly.
1820
1821 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1822
1823         * final.c (frame_pointer_needed): Removed.
1824         * flags.h (frame_pointer_needed): Likewise.
1825
1826         * function.h (rtl_data): Add frame_pointer_needed.
1827         (frame_pointer_needed): New.
1828
1829 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1830
1831         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1832
1833 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1834
1835         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1836         SRC is a REG.
1837
1838 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1839
1840         * c-common.c (strip_array_types): Move function to..
1841         * tree.c: ..here.
1842         (get_inner_array_type): Delete.
1843         * c-common.h (strip_array_types): Move declaration to..
1844         * tree.h: ..here.
1845         (get_inner_array_type): Delete.
1846         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1847         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1848         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1849         * config/pa/pa.c (emit_move_sequence): Likewise.
1850
1851 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1852
1853         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1854         attribute to 34.
1855
1856 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1857
1858         * function.c: Include target hook for nonlocal_goto frame value.
1859
1860 2008-05-24  Richard Guenther  <rguenther@suse.de>
1861
1862         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1863         variable can be only accessed through a pointer or a union.
1864
1865 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1866
1867         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1868         * doc/extend.texi: Likewise.
1869
1870 2008-05-23  DJ Delorie  <dj@redhat.com>
1871
1872         * config/m32c/jump.md (untyped_call): Add.
1873
1874         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1875         for A24 to PSImode.
1876         (m32c_address_cost): Detail costs for indirect offsets.
1877
1878 2008-05-23  Rafael Espindola  <espindola@google.com>
1879
1880         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1881         if a node is a SUBREG.
1882         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1883         is a SUBREG.
1884
1885 2008-05-23  Paul Brook  <paul@codesourcery.com>
1886             Carlos O'Donell  <carlos@codesourcery.com>
1887
1888         * doc/extend.texi: Clarify use of __attribute__((naked)).
1889         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1890         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1891         * function.c (use_register_for_decl): Use
1892         targetm.calls.allocate_stack_slots_for_args.
1893         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1894         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1895         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1896
1897 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1898
1899         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1900
1901 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1902
1903         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1904         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1905         is only rounded once.
1906
1907 2008-05-23  Richard Guenther  <rguenther@suse.de>
1908
1909         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1910
1911 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1912             Jakub Jelinek  <jakub@redhat.com>
1913
1914         PR target/36079
1915         * configure.ac: Handle --enable-cld.
1916         * configure: Regenerated.
1917         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1918         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1919         (ix86_current_function_needs_cld): New define.
1920         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1921         (cld): New isns pattern.
1922         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1923         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1924         * config/i386/i386.opt (mcld): New option.
1925         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1926         TARGET_CLD and ix86_current_function_needs_cld.
1927         (override_options): Use -mcld by default for 32-bit code if
1928         USE_IX86_CLD.
1929
1930         * doc/install.texi (Options specification): Document --enable-cld.
1931         * doc/invoke.texi (Machine Dependent Options)
1932         [i386 and x86-64 Options]: Add -mcld option.
1933         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1934
1935 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1936         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1937         (return_in_memory_64): Likewise.
1938         (return_in_memory_ms_64): Likewise.
1939
1940 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1941
1942         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1943         * builtins.c (fold_builtin_fpclassify): New.
1944         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1945         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1946         * c-common.c (handle_type_generic_attribute): Adjust to accept
1947         fixed arguments before an elipsis.
1948         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1949         * doc/extend.texi: Document __builtin_fpclassify.
1950
1951 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1952
1953         * omp-low.c (gate_expand_omp_ssa): Remove.
1954         (pass_expand_omp_ssa): Remove.
1955         (gate_expand_omp): Do not check for flag_openmp_ssa.
1956         * common.opt (-fopenmp-ssa): Remove.
1957         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1958
1959 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1960
1961         * config/sh/sh.opt (mfixed-range): New option.
1962         * config/sh/sh-protos.h (sh_fix_range): Declare.
1963         * config/sh/sh.c (sh_fix_range): New function.
1964         * config/sh/sh.h (sh_fixed_range_str): Declare.
1965         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1966         is not empty.
1967         * doc/invoke.texi (SH Options): Document -mfixed-range.
1968
1969 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1970
1971         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1972         it before the redeclaration.
1973
1974 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1975
1976         * config/avr/avr.c (get_sequence_length): Add new function.
1977         (expand_prologue, expand_epilogue): Remove duplicate code.
1978
1979 2008-05-22  Rafael Espindola  <espindola@google.com>
1980
1981         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1982         sharing.
1983
1984 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1985
1986         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1987         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1988
1989         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1990         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1991         (vect_update_misalignment_for_peel): Likewise.
1992         (vector_alignment_reachable_p): Likewise.
1993         * tree-vect-transform.c (vectorizable_load): Likewise.
1994         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1995         (get_vectype_for_scalar_type): Pass mode of scalar_type
1996         to UNITS_PER_SIMD_WORD.
1997
1998         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1999         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2000         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2001         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2002         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2003
2004 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2005
2006         PR tree-optimization/36293
2007         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2008         if the first load must be skipped because of a gap.
2009
2010 2008-05-22  Richard Guenther  <rguenther@suse.de>
2011
2012         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2013         more cases of offset disambiguation that is possible if
2014         strict-aliasing rules apply.
2015         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2016         for basic offset and type-based disambiguation.
2017
2018 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2019
2020         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2021         ix86_expand_vector_set on V16QImode for SSE4.1.
2022
2023 2008-05-21  Tom Tromey  <tromey@redhat.com>
2024
2025         * c.opt (Wimport): Mark as undocumented.
2026         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2027         -Wno-import.
2028         (Warning Options): Likewise.
2029         * doc/cppopts.texi: Don't mention -Wimport.
2030
2031 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2032
2033         PR tree-optimization/36287
2034         PR tree-optimization/36286
2035         * lambda-code.c (build_access_matrix): Do not use the loop->num
2036         for computing the number of induction variables: use the loop depth
2037         instead.
2038
2039 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2040
2041         PR/36280
2042         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2043         option -f(no-)leading-underscore.
2044
2045 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2046
2047         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2048         GET_MODE_NUNITS (mode).
2049
2050 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2051
2052         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2053         (-mmulhw): Add 464 to description.
2054         (-mdlmzb): Likewise.
2055         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2056         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2057         464fp entries.
2058         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2059         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2060         * config/rs6000/rs6000.md: Update comments for 464.
2061
2062 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2063
2064         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2065
2066 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2067
2068         * config/i386/sse.md (vec_extractv4sf): Removed.
2069         (vec_extractv2df): Likewise.
2070         (vec_extractv2di): Likewise.
2071         (vec_extractv4si): Likewise.
2072         (vec_extractv8hi): Likewise.
2073         (vec_extractv16qi): Likewise.
2074         (vec_extract<mode>): New.
2075
2076 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2077
2078         * config/i386/sse.md (vec_setv4sf): Removed.
2079         (vec_setv2df): Likewise.
2080         (vec_setv2di): Likewise.
2081         (vec_setv4si): Likewise.
2082         (vec_setv8hi): Likewise.
2083         (vec_setv16qi): Likewise.
2084         (vec_set<mode>): New.
2085
2086 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2087
2088         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2089         goto for vec_concat and vec_interleave.
2090
2091 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2092
2093         * config/i386/sse.md (vec_initv4sf): Removed.
2094         (vec_initv2df): Likewise.
2095         (vec_initv2di): Likewise.
2096         (vec_initv4si): Likewise.
2097         (vec_initv8hi): Likewise.
2098         (vec_initv16qi): Likewise.
2099         (vec_init<mode>): New.
2100
2101 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2102
2103         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2104
2105 2008-05-21  Tom Tromey  <tromey@redhat.com>
2106
2107         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2108         (zone_find_object_offset): Likewise.
2109         (gt_ggc_m_S): Likewise.
2110         (highest_bit): Likewise.
2111         * ggc-page.c (gt_ggc_m_S): New function.
2112         * stringpool.c (string_stack): Remove.
2113         (init_stringpool): Update.
2114         (ggc_alloc_string): Use ggc_alloc.
2115         (maybe_delete_ident): New function.
2116         (ggc_purge_stringpool): Likewise.
2117         (gt_ggc_m_S): Remove.
2118         * ggc-common.c (ggc_protect_identifiers): New global.
2119         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2120         ggc_protect_identifiers.
2121         * ggc.h (ggc_protect_identifiers): Declare.
2122         (gt_ggc_m_S): Update.
2123         (ggc_purge_stringpool): Declare.
2124         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2125         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2126         special case.
2127         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2128
2129 2008-05-21  David S. Miller  <davem@davemloft.net>
2130
2131         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2132         tmake_file.
2133
2134 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2135
2136         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2137         once finished.
2138
2139 2008-05-20  David Daney  <ddaney@avtrex.com>
2140
2141         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2142         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2143         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2144         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2145         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2146         (atomic_hiqi_op): New define_code_iterator.
2147         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2148         mips_expand_compare_and_swap_12.
2149         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2150         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2151         (sync_<optab><mode>, sync_old_<optab><mode>,
2152         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2153         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2154         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2155         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2156         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2157         (test_and_set_12): New insn.
2158         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2159         sync_new_<optab><mode>, sync_old_nand<mode>,
2160         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2161         clobber to operand 0 for SI and DI mode insns.
2162         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2163         mips_gen_fn_4): New typedefs.
2164         (mips_gen_fn_ptrs): Define new union type.
2165         (mips_expand_compare_and_swap_12): Remove declaration.
2166         (mips_expand_atomic_qihi): Declare function.
2167         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2168         (mips_expand_atomic_qihi): ... this.  Use new generator function
2169         parameter.
2170         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2171         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2172         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2173         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2174         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2175         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2176         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2177         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2178         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2179         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2180         New macros.
2181
2182 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2183
2184         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2185         the missing break.
2186
2187 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2188
2189         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2190         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2191         (avr_attribute_table): Add 'OS_main' function attribute.
2192         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2193         functions with 'OS_main' attribute.
2194
2195 2008-05-20  Richard Guenther  <rguenther@suse.de>
2196
2197         PR tree-optimization/35204
2198         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2199         helper, split out from ...
2200         (DFS): ... here.  Make the DFS walk non-recursive.
2201
2202 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2203             Jan Sjodin  <jan.sjodin@amd.com>
2204
2205         PR tree-optimization/36181
2206         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2207         (parallelize_loops): Don't parallelize when the loop has vector
2208         phi nodes.
2209
2210 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2211             Sebastian Pop  <sebastian.pop@amd.com>
2212
2213         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2214         matrix, and never look at the tree representation of the memory
2215         accesses.
2216         (linear_transform_loops): Computes parameters and access matrices.
2217         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2218         when fails.
2219         (access_matrix_get_index_for_parameter): New.
2220         * tree-data-ref.h (struct access_matrix): New.
2221         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2222         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2223         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2224         am_vector_index_for_loop): New.
2225         (struct data_reference): Add field access_matrix.
2226         (DR_ACCESS_MATRIX): New.
2227         (compute_data_dependences_for_loop): Update declaration.
2228         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2229         * lambda.h (lambda_vector_vec_p): Declared.
2230         * lambda-code.c: Depend on pointer-set.h.
2231         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2232         av_for_af_base, av_for_af, build_access_matrix,
2233         lambda_compute_access_matrices): New.
2234         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2235
2236 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2237
2238         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2239         $SOURCEDIR/include.
2240
2241 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2242             Sebastian Pop  <sebastian.pop@amd.com>
2243
2244         PR tree-optimization/36206
2245         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2246         FOLD_CONVERSIONS.
2247         (instantiate_scev_1): Rename flags to fold_conversions.
2248         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2249         outeside instantiation_loop.
2250         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2251         (evolution_function_is_affine_or_constant_p): Removed.
2252         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2253         instantiate_scev.
2254         (analyze_siv_subscript): Pass in the loop nest number.
2255         Call evolution_function_is_affine_in_loop instead of 
2256         evolution_function_is_affine_p.
2257         (analyze_overlapping_iterations): Pass in the loop nest number.
2258
2259 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2260             Sebastian Pop  <sebastian.pop@amd.com>
2261
2262         PR tree-optimization/36206
2263         * tree-chrec.h (chrec_fold_op): New.
2264         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2265         and other trees.
2266
2267 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2268
2269         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2270         (DIRS_EQ): New.
2271         (remove_duplicates): Do not set inode on non-inode systems.
2272         Use DIRS_EQ.
2273
2274 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2275
2276         * config.gcc (tm_file): Update comments about relative pathnames.
2277
2278 2008-05-20  Richard Guenther  <rguenther@suse.de>
2279
2280         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2281         * tree-ssa-sccvn.c (process_scc): Likewise.
2282         * tree-ssa-sink.c (execute_sink_code): Likewise.
2283         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2284         * tree-vrp.c (process_assert_insertions): Likewise.
2285         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2286         (perform_tree_ssa_dce): Likewise.
2287         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2288         (dump_dominator_optimization_stats): Likewise.
2289         * tree-vectorizer.c (vectorize_loops): Likewise.
2290
2291 2008-05-20  Richard Guenther  <rguenther@suse.de>
2292
2293         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2294
2295 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2296
2297         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2298         (ix86_i386elf_return_in_memory): Likewise.
2299         (ix86_i386interix_return_in_memory): Likewise.
2300         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2301         (SUBTARGET_RETURN_IN_MEMORY): New.
2302         * config/i386/i386elf.h: Likewise.
2303         * config/i386/ptx4-i.h: Likewise.
2304         * config/i386/sol2-10.h: Likewise.
2305         * config/i386/sysv4.h: Likewise.
2306         * config/i386/vx-common.h: Likewise.
2307         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2308         * config/i386/i386.c (ix86_return_in_memory): Made static and
2309         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2310         (ix86_i386elf_return_in_memory): Removed.
2311         (ix86_i386interix_return_in_memory): Removed.
2312         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2313         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2314
2315 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2316
2317         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2318
2319 2008-05-19  Xinliang David Li  <davidxl@google.com>
2320
2321         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2322         * opts.c: Ditto.
2323         * common.opt: Ditto.
2324         * doc/invoke.texi: Ditto.
2325
2326 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2327
2328         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2329         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2330
2331 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2332
2333         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2334         sizes of operand array from 8/4 to 4/2.
2335         (ix86_expand_vector_init_general): Change size of operand array
2336         from 32 to 16.  Remove op0, op1 and half_mode.
2337
2338 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2339
2340         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2341         (ix86_expand_vector_init_interleave): Likewise.
2342         (ix86_expand_vector_init_general): Use them.  Assert
2343         word_mode == SImode when n_words == 4.
2344
2345 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2346
2347         * config/i386/i386.c (ix86_secondary_reload): New static function.
2348         (TARGET_SECONDARY_RELOAD): New define.
2349         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2350         * config/i386/i386.md (reload_outqi): Remove.
2351
2352 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2353
2354         PR middle-end/35509
2355         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2356         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2357         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2358         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2359         (fold_builtin_1): Likewise.
2360         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2361         c-common.c (check_builtin_function_arguments): Handle
2362         BUILT_IN_ISINF_SIGN.
2363         * doc/extend.texi: Document __builtin_isinf_sign.
2364         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2365
2366 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2367
2368         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2369         EH cleanup at the end of the pass, search for those that have been
2370         turned into forwarder blocks and do the cleanup on their successor.
2371
2372 2008-05-18  Richard Guenther  <rguenther@suse.de>
2373
2374         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2375         pointers to sizetype and vice versa.
2376
2377 2008-05-18 Xinliang David Li   <davidxl@google.com>
2378
2379         * gcc/tree-ssa-dce.c: Coding style fix.
2380         (check_pow): Documentation comment. 
2381         (check_log): Documenation comment. Coding style fix.
2382         (is_unnecessary_except_errno_call): Ditto.
2383         (gen_conditions_for_pow): Ditto.
2384         (gen_conditions_for_log): Ditto.
2385         (gen_shrink_wrap_conditions): Ditto.
2386         (shrink_wrap_one_built_in_calls): Ditto.
2387         * gcc/doc/invoke.texi: Better documentation string.
2388         * ChangeLog: Fix wrong change log entries from 
2389         May 17 checkin on function call DCE.
2390
2391 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2392
2393         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2394
2395 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2396
2397         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2398         * df-problems.c (simulation routines): Fixed block comment to
2399         properly say how to add forwards scanning functions.
2400         
2401 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2402
2403         * tree-inline.c (setup_one_parameter): Remove dead code.
2404
2405 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2406
2407         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2408         a BIT_AND_EXPR only for an INTEGER_TYPE.
2409
2410 2008-05-17 Xinliang David Li   <davidxl@google.com>
2411
2412         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2413         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2414         functions to check for eliminating math functions that are pure 
2415         except for setting errno.
2416         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2417         general condition expressions for shrink-wrapping pow/log calls.
2418         (gen_shrink_wrap_conditions): Ditto.
2419         (shrink_wrap_one_built_in_call): Ditto.
2420         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2421         (mark_operand_necessary): If debugging, output if OP is necessary.
2422         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2423         unnecessary.
2424         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2425         opt level >= 2.
2426         * gcc/common.opt: New user flag -ftree-builtin-dce.
2427         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2428
2429 2008-05-16  David S. Miller  <davem@davemloft.net>
2430
2431         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2432         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2433
2434 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2435
2436         PR target/36246
2437         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2438
2439 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2440
2441         * ifcvt.c (dead_or_predicable): Rename
2442         df_simulate_one_insn_backwards to df_simulate_one_insn.
2443         * recog.c (peephole2_optimize): Ditto.
2444         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2445         Ditto.
2446         * df.h: Rename df_simulate_one_insn_backwards to
2447         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2448         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2449         scanning of defs and uses.
2450         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2451         (df_simulate_one_insn_forwards): Removed.
2452
2453 2008-05-16  Doug Kwan  <dougkwan@google.com>
2454
2455         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2456         QNaN & SNaN.
2457         (real_from_string): Handle NaNs and Inf as approriate.
2458
2459 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2460
2461         * doc/gty.texi (Source Files Containing Type Information): Note
2462         that headers should appear first in the gtfiles list.
2463
2464 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2465
2466         * tree.def (COND_EXEC): Properly documented this code.
2467
2468 2008-05-16  Diego Novillo  <dnovillo@google.com>
2469
2470         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2471         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2472         the new field.
2473
2474 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2475
2476         * tree-ssa-dse (max_stmt_uid): Removed.
2477         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2478         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2479         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2480         * function.h (cfun.last_stmt_uid): New field.
2481         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2482         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2483         New functions.
2484         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2485         (create_stmt_ann): Initialize the ann->uid field.
2486         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2487         with new calls.
2488         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2489
2490 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2491
2492         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2493         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2494         (init_empty_tree_cfg): Call it.
2495
2496 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2497
2498         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2499         Update all users.
2500
2501 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2502
2503         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2504         * tree-dump.c (dump_options): New verbose option.
2505         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2506         Add verbose dump.
2507         * tree-pass.h (TDF_VERBOSE): New dump flag.
2508         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2509         (tree-flow.h): Added include.
2510         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2511
2512 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2513
2514         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2515
2516         From Jie Zhang  <jie.zhang@analog.com>
2517         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2518         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2519         mcpu=bf561-none and mcpu=bf561-0.2.
2520         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2521         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2522         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2523         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2524         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2525         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2526         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2527         option.
2528         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2529         (cputype_selected): Remove.
2530         (bfin_handle_option): Don't use cputype_selected.
2531         (override_options): When no mcpu option, enable all workarounds.
2532         Don't use bfin_workarounds.
2533         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2534         processor type.
2535         (DEFAULT_CPU_TYPE): Don't define.
2536
2537 2008-05-16  Richard Guenther  <rguenther@suse.de>
2538
2539         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2540         on deletion of the last stmt.
2541
2542 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2543
2544         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2545         V8HImode for SSE2 and V16QImode for SSE4.1.
2546
2547 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2548
2549         * cgraph.h (compute_inline_parameters): Made public.
2550         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2551         variable_generate_summary, function_write_summary,
2552         variable_write_summary, variable_read_summary.  Added generate_summary,
2553         write_summary, read_summary.
2554         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2555         pass_ipa_inline.function_generate_summary, to
2556         compute_inline_parameters. 
2557         * ipa-inline.c (compute_inline_parameters): Made public and added
2558         node parameter.
2559         (compute_inline_parameters_for_current): New function.
2560         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2561         (inline_generate_summary): Removed parameter and made to loop over
2562         all cgraph nodes.
2563         (pass_ipa_inline): Updated for new IPA_PASS structure.
2564         * passes.c (execute_ipa_summary_passes): Now is called once per
2565         pass rather than once per node*pass.
2566         
2567 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2568
2569         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2570         avr_have_mul_p, avr_asm_only_p): Remove variables.
2571         (avr_override_options): Remove initialization of removed variables.
2572         (avr_file_start):  Convert removed variables to fields of 
2573         'struct base_arch_s *avr_current_arch'. 
2574         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2575         (AVR_HAVE_MUL): (Ditto.).
2576         (AVR_HAVE_MOVW): (Ditto.).
2577         (AVR_HAVE_LPMX): (Ditto.). 
2578         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2579         avr_asm_only_p): Remove declaration.
2580
2581 2008-05-15  Diego Novillo  <dnovillo@google.com>
2582
2583         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2584         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2585
2586 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2587
2588         PR middle-end/36194
2589         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2590         Don't call record_truncated_value from here.
2591         (record_truncated_value): Turn it into a for_each_rtx callback.
2592         (record_truncated_values): New function.
2593         (combine_instructions): Call note_uses with record_truncated_values.
2594         Change name of check_conversion to check_promoted_subreg. 
2595
2596 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2597
2598         * doc/sourcebuild.texi: Document support for torture tests.
2599
2600 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2601
2602         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2603         to alternative 4 of operand 2.
2604
2605 2008-05-15  Richard Guenther  <rguenther@suse.de>
2606
2607         * tree-pass.h (current_pass): Declare.
2608         (get_pass_for_id): Likewise.
2609         * passes.c (passes_by_id, passes_by_id_size): New globals.
2610         (set_pass_for_id): New function.
2611         (get_pass_for_id): Likewise.
2612         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2613         (execute_function_todo): Flush per function statistics.
2614         * toplev.c (compile_file): Init statistics.
2615         (general_init): Do early statistics initialization.
2616         (finalize): Finish statistics.
2617         * statistics.h (statistics_early_init): Declare.
2618         (statistics_init): Likewise.
2619         (statistics_fini): Likewise.
2620         (statistics_fini_pass): Likewise.
2621         (statistics_counter_event): Likewise.
2622         (statistics_histogram_event): Likewise.
2623         * statistics.c: New file.
2624         * Makefile.in (OBJS-common): Add statistics.o.
2625         (statistics.o): Add dependencies.
2626         * doc/invoke.texi (-fdump-statistics): Document.
2627
2628         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2629         (insert): Likewise.
2630         (execute_pre): Use statistics_counter_event.
2631         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2632         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2633
2634 2008-05-15  Diego Novillo  <dnovillo@google.com>
2635
2636         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2637
2638         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2639         * tree-ssa-alias.c (new_type_alias): Remove references to
2640         sub-variables from comment.
2641         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2642
2643 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2644
2645         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2646         attribute to 1 only for insertps alternative.
2647
2648 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2649
2650         * config/bfin/bfin.md (loadbytes): New pattern.
2651         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2652         (bfin_init_builtins): Initialize it.
2653         (bdesc_1arg): Add it.
2654
2655 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2656
2657         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2658         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2659         * testsuite/lib/target-supports.exp: Add
2660         check_effective_target_fortran_integer_16.
2661
2662 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2663
2664         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2665         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2666         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2667         (TARGET_RETURN_IN_MEMORY): Define.
2668
2669 2008-05-15  Richard Guenther  <rguenther@suse.de>
2670
2671         PR middle-end/36244
2672         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2673         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2674         represent unmodifiable vars.
2675
2676 2008-05-15  Richard Guenther  <rguenther@suse.de>
2677
2678         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2679         INDIRECT_REF and TARGET_MEM_REF.
2680         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2681         TARGET_MEM_REF.
2682
2683 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2684             H.J. Lu  <hongjiu.lu@intel.com>
2685
2686         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2687         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2688         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2689         insn alternatives.  Add missing alternatives.
2690         (*vec_concatv2di_rex64_sse4_1): Likewise.
2691         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2692         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2693         Require TARGET_SSE.
2694
2695 2008-05-15  Richard Guenther  <rguenther@suse.de>
2696
2697         PR tree-optimization/36009
2698         PR tree-optimization/36204
2699         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2700         (determine_invariantness_stmt): Record the loop a store is
2701         always executed in.
2702         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2703         dependency.
2704
2705 2008-05-15  Richard Guenther  <rguenther@suse.de>
2706
2707         PR tree-optimization/34330
2708         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2709         through the pointer will alias the SMT.
2710
2711 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2712
2713         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2714
2715 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2716
2717         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2718
2719 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2720             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2721
2722         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2723         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2724         (vashl_optab): New optab for vector/vector shifts.
2725         (vashr_optab): Ditto.
2726         (vlshr_optab): Ditto.
2727         (vrotl_optab): Ditto.
2728         (vrotr_optab): Ditto.
2729         (optab_subtype): New enum for optab_for_tree_code call.
2730         (optab_for_tree_code): Add enum optab_subtype argument.
2731
2732         * optabs.c (optab_for_tree_code): Take an additional argument to
2733         distinguish between a vector shift by a scalar and vector shift by
2734         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2735         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2736         vector shift by a vector.
2737         (expand_widen_pattern_expr): Pass additional argument to
2738         optab_for_tree_code.
2739
2740         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2741         vrotl_optab, vrotr_optab.
2742
2743         * expr.c (expand_expr_real_1): Update calls to
2744         optab_for_tree_code to distinguish between vector shifted by a
2745         scalar and vector shifted by a vector.
2746         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2747         (supportable_narrowing_operation): Ditto.
2748         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2749         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2750         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2751         (vect_create_epilog_for_reduction): Ditto.
2752         (vectorizable_reduction): Ditto.
2753         (vectorizable_operation): Ditto.
2754         (vect_strided_store_supported): Ditto.
2755         (vect_strided_load_supported): Ditto.
2756         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2757         * expmed.c (expand_shift): Ditto.
2758
2759         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2760         scalar type.
2761         (ashr@var{m}3): Ditto.
2762         (vashl@var{m}3): Document new vector/vector shift standard name.
2763         (vashr@var{m}3): Ditto.
2764         (vlshr@var{m}3): Ditto.
2765         (vrotl@var{m}3): Ditto.
2766         (vrotr@var{m}3): Ditto.
2767
2768         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2769         (PPERM_INVERT): Ditto.
2770         (PPERM_REVERSE): Ditto.
2771         (PPERM_REV_INV): Ditto.
2772         (PPERM_ZERO): Ditto.
2773         (PPERM_ONES): Ditto.
2774         (PPERM_SIGN): Ditto.
2775         (PPERM_INV_SIGN): Ditto.
2776         (PPERM_SRC1): Ditto.
2777         (PPERM_SRC2): Ditto.
2778
2779         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2780         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2781         allows a memory operand to be the value being added, and split it
2782         to improve vectorization.
2783         (sse5_pmacsdqh_mem): Ditto.
2784         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2785         (sse5_mulv2div2di3_high): Ditto.
2786         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2787         (vec_pack_trunc_v4si): Ditto.
2788         (vec_pack_trunc_v2di): Ditto.
2789         (sse5_pcmov_<mode>): Remove code that tried to use use
2790         andps/andnps instead of pcmov.
2791         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2792         pmacsdqh instructions.
2793         (vec_widen_smult_lo_v4si): Ditto.
2794
2795         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2796         (PPERM_INVERT): Ditto.
2797         (PPERM_REVERSE): Ditto.
2798         (PPERM_REV_INV): Ditto.
2799         (PPERM_ZERO): Ditto.
2800         (PPERM_ONES): Ditto.
2801         (PPERM_SIGN): Ditto.
2802         (PPERM_INV_SIGN): Ditto.
2803         (PPERM_SRC1): Ditto.
2804         (PPERM_SRC2): Ditto.
2805         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2806         true/false tests.
2807         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2808         comparisons.
2809         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2810         says ignore whether the last reference is a memory operand.
2811
2812 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2813             Paolo Bonzini <bonzini at gnu dot org>
2814
2815         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2816         shift patterns.
2817
2818         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2819         (vlshr<mode>3): Rename from vlshr<mode>3.
2820         (vashr<mode>3): Rename from vashr<mode>3.
2821         (mulv4sf3): Change the names of vector shift patterns.
2822         (mulv4si3): Ditto.
2823         (negv4sf2): Ditt.
2824
2825         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2826         shift insns.
2827
2828         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2829         (SI_SHLHI): Ditto.
2830         (SI_SHL): Ditto.
2831         (SI_SHLI): Ditto.
2832         (SI_ROTH): Ditto.
2833         (SI_ROTHI): Ditto.
2834         (SI_ROT): Ditto.
2835         (SI_ROTI): Ditto.
2836         (SPU_RL_0): Ditto.
2837         (SPU_RL_1): Ditto.
2838         (SPU_RL_2): Ditto.
2839         (SPU_RL_3): Ditto.
2840         (SPU_RL_4): Ditto.
2841         (SPU_RL_5): Ditto.
2842         (SPU_RL_6): Ditto.
2843         (SPU_RL_7): Ditto.
2844         (SPU_SL_0): Ditto.
2845         (SPU_SL_1): Ditto.
2846         (SPU_SL_2): Ditto.
2847         (SPU_SL_3): Ditto.
2848         (SPU_SL_4): Ditto.
2849         (SPU_SL_5): Ditto.
2850         (SPU_SL_6): Ditto.
2851         (SPU_SL_7): Ditto.
2852
2853         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2854         (floatunssidf2_internal): Change vector/vector shift names.
2855         (floatunsdidf2_internal): Ditto.
2856         (mulv8hi3): Ditto.
2857         (ashrdi3): Ditto.
2858         (ashrti3): Ditto.
2859         (cgt_df): Ditto.
2860         (cgt_v2df): Ditto.
2861         (dftsv): Ditto.
2862         (vashl<mode>3): Rename from ashl<mode>3.
2863         (vashr<mode>3): Rename from ashr<mode>3.
2864         (vlshr<mode>3): Rename from lshr<mode>3.
2865         (vrotl<mode>3): Rename from rotl<mode>3.
2866
2867 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2868
2869         PR target/36224
2870         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2871         multiply gives the wrong value when doing widening multiplies.
2872         (vec_widen_smult_lo_v4si): Ditto.
2873
2874 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2875
2876         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2877         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2878         emit_library_call_value. 
2879         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2880         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2881         * calls.c (initialize_argument_information, precompute_arguments, 
2882         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2883         (precompute_arguments): Removed flags parameter.
2884         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2885         
2886 2008-05-14  Richard Guenther  <rguenther@suse.de>
2887
2888         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2889         Make sure to register the store if the use is a PHI_NODE.
2890
2891 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2892
2893         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2894         memory if the component is to be referenced in BLKmode according
2895         to get_inner_reference.
2896
2897 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2898
2899         * calls.c (emit_library_call_value_1): Restore code clearing
2900         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2901
2902 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2903             Nicolas Roche  <roche@adacore.com>
2904
2905         * configure.ac: Add support for a "gcc_subdir" variable in
2906         config-lang.in, to denote a subdirectory where the language/GCC
2907         integration files are to be found.
2908         * configure: Regenerate.
2909
2910 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2911
2912         PR tree-optimization/36098
2913         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2914         value for the first load in the group in case of a gap.
2915         (vect_build_slp_tree): Check that there are no gaps in loads.
2916
2917 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2918
2919         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2920         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2921         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2922         emit_insn and remove unneeded code to construct extra args.
2923         (emit_no_conflict_block): Removed.
2924         * optabls.h: (emit_no_conflict_block): Removed.
2925         * cse.c (cse_extended_basic_block): Remove search for
2926         REG_NO_CONFLICT note.
2927         * global.c: Removed incorrect comment added in revision 117.
2928         * expr.c (convert_move): Change call to emit_no_conflict_block to
2929         emit_insn.
2930         * recog.c: Change comments so that they do not mention
2931         REG_NO_CONFLICT.
2932         * local_alloc.c (combine_regs): Removed last parameter.
2933         (no_conflict_p): Removed.
2934         (block_alloc): Removed note, no_conflict_combined_regno and set
2935         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2936         (combine_regs): Removed already_dead and code to look for
2937         REG_NO_CONFLICT notes.
2938         * lower_subreg (remove_retval_note): Removed code to look for
2939         REG_NO_CONFLICT block.
2940         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2941         (resolve_clobber): Remove code to process libcalls that have
2942         REG_NO_CONFLICT notes.
2943         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2944         case.
2945         * combine.c (can_combine_p, distribute_notes):  Removed
2946         REG_NO_CONFLICT case.
2947         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2948         to emit_insns.
2949         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2950         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2951         Ditto.
2952         * reg-notes.def (NO_CONFLICT): Removed.
2953
2954 2008-05-14  David S. Miller  <davem@davemloft.net>
2955
2956         * config/sparc/sparc.c (sparc_profile_hook): If
2957         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2958         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2959         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2960
2961 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2962
2963         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2964
2965 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2966
2967         PR target/36222
2968         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2969         and op1 expansion before vector concat to have less live pseudos.
2970
2971 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2972
2973         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2974         ix86_expand_vector_set if supported.
2975
2976 2008-05-13  Diego Novillo  <dnovillo@google.com>
2977             Kenneth Zadeck  <zadeck@naturalbridge.com>
2978
2979         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2980
2981         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2982         phinodes_print_statistics, init_ssanames, fini_ssanames,
2983         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2984         release_ssa_name, release_defs, replace_ssa_name_symbol,
2985         ssanames_print_statistics): Move ...
2986         * tree-flow.h: ... here.
2987         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2988         Use FN instead of cfun.
2989         (make_ssa_name_fn): Rename from make_ssa_name.
2990         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2991         * tree-flow-inline.h (make_ssa_name): Move from
2992         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2993         * omp-low.c (expand_omp_parallel):
2994         * tree-flow-inline.h (redirect_edge_var_map_result):
2995         * tree-ssa.c (init_tree_ssa): Add argument FN.
2996         Use it instead of cfun.  Update all users.
2997
2998 2008-05-13  Tom Tromey  <tromey@redhat.com>
2999
3000         PR preprocessor/22168:
3001         * doc/cpp.texi (Top): Update menu.
3002         (Alternatives to Wrapper #ifndef): New node.
3003         (Other Directives): Document deprecation.
3004         (Obsolete Features): Remove menu.
3005         (Assertions): Merge node into Obsolete Features.
3006         (Obsolete once-only headers): Move earlier; rename to Alternatives
3007         to Wrapper #ifndef.
3008         * doc/cppopts.texi: Update.
3009         * c.opt (Wdeprecated): Enable for C and ObjC.
3010         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3011         (C++ Dialect Options): Move -Wno-deprecated from here to...
3012         (Warning Options): ... here.
3013
3014 2008-05-13  Richard Guenther  <rguenther@suse.de>
3015
3016         PR middle-end/36227
3017         * fold-const.c (fold_sign_changed_comparison): Do not allow
3018         changes in pointer-ness.
3019
3020 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3021
3022         PR target/24713
3023         * config/sh/sh.c (sh_expand_prologue): Don't clear
3024         RTX_FRAME_RELATED_P for push insns.
3025
3026 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3027
3028         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3029
3030 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3031
3032         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3033         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3034         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3035
3036 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3037
3038         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3039         (*vec_concatv4sf_sse): This.
3040         (*sse2_concatv2si): Renamed to ...
3041         (*vec_concatv2si_sse2): This.
3042         (*sse1_concatv2si): Renamed to ...
3043         (*vec_concatv2si_sse): This.
3044         (*vec_concatv2di_rex): Renamed to ...
3045         (*vec_concatv2di_rex64): This.
3046         (*vec_concatv2si_sse4_1): New.
3047         (*vec_concatv2di_rex64_sse4_1): Likewise.
3048
3049 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3050
3051         PR rtl-optimization/36111
3052         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3053         that was created for swappable operands.
3054
3055 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3056
3057         PR ada/36001
3058         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3059         * configure.ac: Add call to ACX_PROG_GNAT.
3060
3061 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3062
3063         * optc-gen.awk: Fix comment typo.
3064
3065 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3066
3067         * pretty-print.c (pp_integer_with_precision): Use
3068         HOST_LONG_LONG_FORMAT.
3069
3070 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3071
3072         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3073                 
3074 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3075
3076         * config/i386/i386.c (bdesc_ptest): Removed.
3077         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3078         (bdesc_args): Add __builtin_ia32_ptestz128,
3079         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3080         (ix86_init_mmx_sse_builtins): Updated.
3081         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3082         (ix86_expand_builtin): Updated.
3083
3084 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3085
3086         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3087         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3088
3089 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3090
3091         * value-prof.c (interesting_stringop_to_profile): Do not
3092         return early for BUILT_IN_MEMPCPY.
3093
3094 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3095
3096         * calls.c (expand_call): Don't use callgraph to increase
3097         preferred_stack_boundary.
3098
3099         * cgraph.h (cgraph_rtl_info): Use unsigned on
3100         preferred_incoming_stack_boundary.
3101
3102         * final.c (rest_of_clean_state): Use unsigned on
3103         preferred_stack_boundary.
3104
3105 2008-05-09  Tom Tromey  <tromey@redhat.com>
3106
3107         PR preprocessor/22231:
3108         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3109         proceeding.
3110
3111 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
3112
3113         PR tree-optimization/36129
3114         * tree-ssa-ccp.c: Include value-prof.h.
3115         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3116         built-in function was folded to a constant.
3117         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
3118
3119 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
3120             Sebastian Pop  <sebastian.pop@amd.com>
3121
3122         * tree-scalar-evolution.c: Document instantiate_scev.
3123         (instantiate_parameters_1): Renamed instantiate_scev_1.
3124         Don't use the same loop for instantiation_loop and evolution_loop.
3125         (instantiate_scev): New.
3126         (instantiate_parameters): Moved...
3127         (resolve_mixers): Update call to instantiate_scev_1 to pass the
3128         same loop twice.  Maintains the semantics for this function.
3129         * tree-scalar-evolution.h (instantiate_scev): Declare.
3130         (instantiate_parameters): ...here.  Now static inline.
3131         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3132         instead of resolve_mixers.
3133
3134 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3135
3136         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3137
3138 2008-05-09  Tomas Bily  <tbily@suse.cz>
3139
3140         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3141         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3142         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3143         * c-common.c (c_common_truthvalue_conversion): Likewise.
3144         * tree-object-size.c (compute_object_offset): Likewise.
3145         * tree-inline.c (estimate_num_insns_1): Likewise.
3146         * varasm.c (const_hash_1, compare_constant, copy_constant)
3147         (compute_reloc_for_constant, output_addressed_constants)
3148         (initializer_constant_valid_p): Likewise.
3149         * c-omp.c (check_omp_for_incr_expr): Likewise.
3150         * gimplify.c (gimplify_expr): Likewise.
3151         * c-typeck.c (c_finish_return): Likewise.
3152         * tree-vectorizer.c (supportable_widening_operation)
3153         (supportable_narrowing_operation): Likewise.
3154         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3155         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3156         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3157         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3158         (descr_info_loc): Likewise.
3159         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3160         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3161         (fold_unary): Likewise.
3162         * builtins.c (get_pointer_alignment): Likewise.
3163         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3164         (instantiate_parameters_1): Likewise.
3165         * tree.c (expr_align, stabilize_reference): Likewise.
3166         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3167         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3168         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3169         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3170         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3171         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3172         Likewise.
3173         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3174         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3175         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3176         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3177         (forward_propagate_comparison)
3178         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3179         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3180         * emit-rtl.c (component_ref_for_mem_expr)
3181         (set_mem_attributes_minus_bitpos): Likewise.
3182         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3183         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3184         Likewise.
3185         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3186         (build_function_call, pointer_diff, build_compound_expr)
3187         (c_finish_return): Likewise.
3188         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
3189         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3190         Likewise.
3191         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3192         * expr.c (is_aligning_offset): Likewise.
3193         * tree-ssa-alias.c (is_escape_site): Likewise.
3194         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3195         (check_all_va_list_escapes): Likewise.
3196         * tree-ssa-loop-ivopts.c (determine_base_object)
3197         (determine_common_wider_type): Likewise.
3198         * dojump.c (do_jump): Likewise.
3199         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3200         * tree-gimple.c (is_gimple_cast): Likewise.
3201         * fold-const.c (decode_field_reference, )
3202         (fold_sign_changed_comparison, fold_unary, fold_comparison)
3203         (fold_binary): Likewise.
3204         * tree-ssa-alias-warnings.c (find_alias_site_helper)
3205         (already_warned_in_frontend_p): Likewise.
3206         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3207         * tree.c (really_constant_p, get_unwidened): Likewise.
3208         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3209         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
3210         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3211         Likewise.
3212         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3213         CONVERT_EXPR_P.
3214         (CONVERT_EXPR_P): Define.
3215         (CASE_CONVERT): Define.
3216         
3217 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3218
3219         PR middle-end/36117
3220         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3221         (delete_unmarked_insns): When deleting a call, call
3222         delete_unreachable_blocks.
3223         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3224         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3225
3226 2008-05-08  Richard Guenther  <rguenther@suse.de>
3227
3228         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3229         (-ftree-salias): Likewise.
3230         (salias-max-implicit-fields): Remove param documentation.
3231         (salias-max-array-elements): Likewise.
3232         * tree-pass.h (pass_create_structure_vars): Remove.
3233         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3234         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3235         * tree-ssa-alias.c (create_structure_vars): Remove.
3236         (gate_structure_vars): Likewise.
3237         (pass_create_structure_vars): Likewise.
3238         (gate_build_alias): Likewise.
3239         (pass_build_alias): Adjust to run always and dump the function.
3240         * common.opt (ftree-salias): Hide.
3241         * passes.c (init_optimization_passes): Remove
3242         pass_create_structure_vars, adjust comment.
3243         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3244         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3245         * opts.c (decode_options): Do not set flag_tree_salias.
3246         (common_handle_option): Add OPT_ftree_salias to the backward
3247         compatibility section.
3248
3249 2008-05-08  Richard Guenther  <rguenther@suse.de>
3250
3251         * tree-flow-inline.h (var_can_have_subvars): Move ...
3252         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3253         * tree-flow.h (var_can_have_subvars): Remove.
3254         (push_fields_onto_fieldstack): Remove.
3255         (sort_fieldstack): Likewise.
3256         (struct fieldoff): Move ...
3257         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
3258         alias_set and base_for_components fields.
3259         (sort_fieldstack): Make static.
3260         (push_fields_onto_fieldstack): Likewise.  Remove code that
3261         handles anything but RECORD_TYPEs.  Remove alias_set and
3262         base_for_components handling.
3263         (create_variable_info_for): Adjust.
3264
3265 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
3266
3267         * common.opt (Wframe-larger-than=): Shorten the help message
3268         to one line.
3269         * doc/invoke.texi (Wframe-larger-than=): Add more description.
3270
3271 2008-05-08  Rafael Espindola  <espindola@google.com>
3272
3273         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3274         trap.
3275         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3276         trap and that both operands are gimple values.
3277         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3278         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3279         is a fp operation.
3280
3281 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3282
3283         * read-rtl.c (join_c_conditions): Return the first string if the
3284         two strings are equal.
3285
3286 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3287
3288         * gensupport.h (pred_data): Add a "num_codes" field.
3289         (add_predicate_code): Declare.
3290         * gensupport.c (add_predicate_code): New function.
3291         (std_pred_table): Add an "allows_const_p" field.
3292         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3293         Remove the (incomplete) list of such codes from the codes field.
3294         (init_predicate_table): Use add_predicate_code.  Add all
3295         RTX_CONST_OBJs if allows_const_p is true.
3296         * genrecog.c (process_define_predicate): Use add_predicate_code.
3297
3298 2008-05-08  David Daney  <ddaney@avtrex.com>
3299             Richard Sandiford  <rsandifo@nildram.co.uk>
3300         
3301         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3302         special case of constant zero operands.
3303         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3304         old and new values.  Special case constant zero values.
3305         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3306         fails.
3307         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3308         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3309
3310 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
3311
3312         PR target/36090
3313         * simplify-rtx.c (simplify_plus_minus): Create CONST of
3314         similar RTX_CONST_OBJ before CONST_INT.
3315
3316 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
3317
3318         * stmt.c (expand_stack_restore): Change sa mode if needed.
3319
3320 2008-05-08  Richard Guenther  <rguenther@suse.de>
3321
3322         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3323         return type to bool.
3324         (ix86_sol10_return_in_memory): Likewise.
3325         (ix86_i386elf_return_in_memory): Likewise.
3326         (ix86_i386interix_return_in_memory): Likewise.
3327         * config/i386/i386.c (ix86_return_in_memory): Likewise.
3328         (ix86_sol10_return_in_memory): Likewise.
3329         (ix86_i386elf_return_in_memory): Likewise.
3330         (ix86_i386interix_return_in_memory): Likewise.
3331
3332 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3333
3334         PR bootstrap/36180
3335         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3336         fndecl argument.
3337         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3338         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3339         declared in front.
3340
3341 2008-05-08  Richard Guenther  <rguenther@suse.de>
3342
3343         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3344         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3345         (DR_SUBVARS): Remove.
3346         * tree-dfa.c (dump_subvars_for): Remove.
3347         (debug_subvars_for): Likewise.
3348         (dump_variable): Do not dump subvars.
3349         (remove_referenced_var): Do not remove subvars.
3350         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3351         (lookup_subvars_for_var): Remove.
3352         (get_subvars_for_var): Likewise.
3353         (get_subvars_at): Likewise.
3354         (get_first_overlapping_subvar): Likewise.
3355         (overlap_subvar): Likewise.
3356         * tree-flow.h (subvar_t): Remove.
3357         (struct var_ann_d): Remove subvars field.
3358         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3359         argument.  Remove special handling of SFTs.
3360         (compute_tag_properties): Likewise.
3361         (set_initial_properties): Likewise.
3362         (compute_call_clobbered): Likewise.
3363         (count_mem_refs): Likewise.
3364         (compute_memory_partitions): Likewise.
3365         (compute_flow_insensitive_aliasing): Likewise.
3366         (setup_pointers_and_addressables): Likewise.
3367         (new_type_alias): Likewise.
3368         (struct used_part): Remove.
3369         (used_portions): Likewise.
3370         (struct used_part_map): Likewise.
3371         (used_part_map_eq): Likewise.
3372         (used_part_map_hash): Likewise.
3373         (free_used_part_map): Likewise.
3374         (up_lookup): Likewise.
3375         (up_insert): Likewise.
3376         (get_or_create_used_part_for): Likewise.
3377         (create_sft): Likewise.
3378         (create_overlap_variables_for): Likewise.
3379         (find_used_portions): Likewise.
3380         (create_structure_vars): Likewise.
3381         * tree.def (STRUCT_FIELD_TAG): Remove.
3382         * tree.h (MTAG_P): Adjust.
3383         (struct tree_memory_tag): Remove base_for_components and
3384         unpartitionable flags.
3385         (struct tree_struct_field_tag): Remove.
3386         (SFT_PARENT_VAR): Likewise.
3387         (SFT_OFFSET): Likewise.
3388         (SFT_SIZE): Likewise.
3389         (SFT_NONADDRESSABLE_P): Likewise.
3390         (SFT_ALIAS_SET): Likewise.
3391         (SFT_UNPARTITIONABLE_P): Likewise.
3392         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3393         (union tree_node): Remove sft field.
3394         * alias.c (get_alias_set): Remove special handling of SFTs.
3395         * print-tree.c (print_node): Remove handling of SFTs.
3396         * tree-dump.c (dequeue_and_dump): Likewise.
3397         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3398         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3399         * tree-predcom.c (set_alias_info): Do not set subvars.
3400         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3401         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3402         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3403         (add_vars_for_offset): Remove.
3404         (add_virtual_operand): Remove special handling of SFTs.
3405         (add_call_clobber_ops): Likewise.
3406         (add_call_read_ops): Likewise.
3407         (get_asm_expr_operands): Likewise.
3408         (get_modify_stmt_operands): Likewise.
3409         (get_expr_operands): Likewise.
3410         (add_to_addressable_set): Likewise.
3411         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3412         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3413         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3414         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3415         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3416         (tree_node_structure): Likewise.
3417         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3418         handling of SFTs.
3419         (find_what_p_points_to): Likewise.
3420
3421 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3422
3423         * config/spu/spu.md: Fixed subti3 pattern.
3424
3425 2008-05-08  Richard Guenther  <rguenther@suse.de>
3426
3427         PR middle-end/36154
3428         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3429         sure to create a representative for trailing arrays for PTA.
3430
3431 2008-05-08  Richard Guenther  <rguenther@suse.de>
3432
3433         PR middle-end/36172
3434         * fold-const.c (operand_equal_p): Two objects which types
3435         differ in pointerness are not equal.
3436
3437 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3438
3439         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3440         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3441         (emit_library_call_value_1): Add new variable fndecl initialized by
3442         NULL_TREE. It should be the decl type of orgfun, but this information
3443         seems not to be available here, so it uses the default calling abi.
3444         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3445         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3446         by TARGET_RETURN_IN_MEMORY.
3447         * config/i386/i386-interix.h: Likewise.
3448         * config/i386/i386.h: Likewise.
3449         * config/i386/i386elf.h: Likewise.
3450         * config/i386/ptx4-i.h: Likewise.
3451         * config/i386/sol2-10.h: Likewise.
3452         * config/i386/sysv4.h: Likewise.
3453         * config/i386/vx-common.h: Likewise.
3454         * config/cris/cris.h: Removed #if 0 clause.
3455         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3456         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3457         argument.
3458         (ix86_sol10_return_in_memory): Likewise.
3459         (ix86_i386elf_return_in_memory): New.
3460         (ix86_i386interix_return_in_memory): New.
3461         * config/mt/mt-protos.h (mt_return_in_memory): New.
3462         * config/mt/mt.c: Likewise.
3463         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3464         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3465         * config/bfin/bfin.h: Likewise.
3466         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3467         argument.
3468         * config/bfin/bfin.c: Likewise.
3469         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3470         * config/alpha/unicosmk.h: Likewise.
3471         * config/i386/cygming.h: Likewise.
3472         * config/iq2000/iq2000.h: Likewise.
3473         * config/mips/mips.h: Likewise.
3474         * config/mn10300/mn10300.h: Likewise.
3475         * config/rs6000/rs6000.h: Likewise.
3476         * config/score/score.h: Likewise.
3477         * config/spu/spu.h: Likewise.
3478         * config/v850/v850.h: Likewise.
3479         * defaults.h: Likewise.
3480         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3481         * expr.c (emit_block_move): Adjust use of
3482         OUTGOING_REG_PARM_STACK_SPACE.
3483         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3484         OUTGOING_REG_PARM_STACK_SPACE.
3485         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3486
3487 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3488
3489         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3490         on OMP_RETURN for OMP_FOR.
3491
3492         PR debug/35896
3493         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3494         (fortran_common): New function.
3495         (gen_variable_die): Call fortran_common instead of common_check,
3496         adjust for it returning tree instead of rtx.  Formatting.
3497
3498 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3499
3500         PR rtl/7335
3501         PR rtl/33826
3502         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3503         * c-decl.c (merge_decls): Ditto.
3504         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3505         to RTL_CONST_OR_PURE_CALL_P.
3506         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3507         Initialized DECL_LOOPING_CONST_PURE.
3508         (process_call_operands): Set tree_side_effects properly.
3509         * tree.h (TREE_READONLY_DECL_P): Removed.
3510         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3511         (DECL_LOOPING_OR_CONST_P): New macro.
3512         (struct tree_function_decl): Added looping_const_or_pure_p.
3513         (ECF_*) Renumbered.
3514         (ECF_LOOPING_OR_CONST_P): New macro.
3515         * rtlanal.c (pure_const_p): Removed.
3516         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3517         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3518         to RTL_CONST_CALL_P.
3519         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3520         (check_decl, check_tree, check_call, scan_function): Initialize
3521         looping.
3522         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3523         (static_execute): Set looping true for recursive functions.
3524         Undo setting state to IPA_NEITHER for recursive functions.
3525         * cse.c (cse_insn): 
3526         * ifcvt.c (noce_can_store_speculate_p): Changed
3527         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3528         RTL_CONST_OR_PURE_CALL_P.
3529         * dse.c (scan_insn): Ditto.
3530         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3531         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3532         RTL_CONST_OR_PURE_CALL_P.
3533         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3534         pure_call_p to RTL_CONST_CALL_P.
3535         * gimplify.c (gimplify_call_expr): Clear side effects for
3536         non-looping pure and constant calls.
3537         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3538         (flags_from_decl_or_type): Set ecf flags from decl flags.
3539         (initialize_argument_information): Turn off
3540         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3541         Change const to pure if callee_copies is true rather than just
3542         turning off const.
3543         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3544         way of marking pure calls.
3545         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3546         Remove hack that was supposed to fix pr7335 and remove old
3547         way of marking pure calls.
3548         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3549         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3550         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3551         RTL_CONST_OR_PURE_CALL_P.
3552         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3553         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3554         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3555         * sched-deps.c (schedule_analyze): Ditto.
3556         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3557         return_val field of calls to represent pure and const function info.
3558         (CONST_OR_PURE_CALL_P): Deleted macro.
3559         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3560         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3561         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3562         TREE_READONLY.
3563         * tree-optimize.c (execute_fixup_cfg): Added test for
3564         ECF_LOOPING_CONST_OR_PURE.
3565         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3566         DECL_PURE_P.
3567         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3568         effects for looping pure or const calls.
3569         (verify_gimple_expr): Added verification code. 
3570         * config/alpha/alpha.c (alpha_legitimize_address,
3571         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3572         RTL_CONST_CALL_P.
3573         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3574         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3575         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3576         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3577         RTL_CONST_OR_PURE_CALL_P.
3578         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3579         and const calls to be deleted.
3580
3581 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3582
3583         PR target/35714
3584         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3585         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3586         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3587         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3588         to handle nonimmediate operands.
3589         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3590         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3591         to handle nonimmediate operands.
3592         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3593         (mmx_pmulhrwv4hi3): New expander.  Use
3594         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3595         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3596         (sse2_umulv1siv1di3): New expander.  Use
3597         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3598         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3599         (mmx_eq<mode>3): New expander.  Use
3600         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3601         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3602         (mmx_uavgv8qi3): New expander.  Use
3603         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3604         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3605         (mmx_uavgv4hi3): New expander.  Use
3606         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3607
3608         * config/i386/sse.md
3609         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3610         to handle nonimmediate operands.
3611         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3612         to handle nonimmediate operands.
3613         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3614         to handle nonimmediate operands.
3615         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3616         to handle nonimmediate operands.
3617         (sse2_unpckhpd_exp): New expander.  Use
3618         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3619         (sse2_unpcklpd_exp): New expander.  Use
3620         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3621         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3622         to handle nonimmediate operands.
3623         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3624         to handle nonimmediate operands.
3625         (*sse2_<plusminus_insn><mode>3): Rename from
3626         sse2_<plusminus_insn><mode>3 insn pattern.
3627         (sse2_<plusminus_insn><mode>3): New expander.  Use
3628         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3629         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3630         (sse2_umulv2siv2di3): New expander.  Use
3631         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3632         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3633         (sse4_1_mulv2siv2di3): New expander.  Use
3634         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3635         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3636         (sse2_pmaddwd): New expander.  Use
3637         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3638         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3639         (sse2_eq<mode>3): New expander.  Use
3640         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3641         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3642         (sse4_1_eqv2di3): New expander.  Use
3643         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3644         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3645         (sse2_uavgv16qi3): New expander.  Use
3646         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3647         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3648         (sse2_uavgv16qi3): New expander.  Use
3649         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3650         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3651         (sse2_uavgv8hi3): New expander.  Use
3652         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3653         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3654         (ssse3_pmulhrswv8hi3): New expander.  Use
3655         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3656         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3657         (ssse3_pmulhrswv4hi3): New expander.  Use
3658         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3659
3660         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3661         (<sse>_vmmul<mode>3): Ditto.
3662         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3663         (divv2df3): Ditto.
3664         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3665         (ssse3_pmaddubsw): Ditto.
3666
3667         * config/i386/i386.c (struct_builtin_description)
3668         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3669         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3670         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3671         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3672         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3673         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3674         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3675         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3676         (ix86_fixup_binary_operands): Assert that src1
3677         and src2 must have the same mode when swapped.
3678         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3679         and ix86_binary_operator_ok.  Do not force operands in registers
3680         when optimizing.
3681
3682 2008-05-07  Jan Hubicka  <jh@suse.cz>
3683
3684         * cgraph.c (dump_cgraph_node): Update.
3685         * cgraph.h (cgraph_local_info): Break out inline summary.
3686         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3687         hook.
3688         * ipa-inline (inline_summary): New accestor function.
3689         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3690         cgraph_decide_inlining, compute_inline_parameters): Update.
3691         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3692
3693 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3694
3695         Cleanup ColdFire scheduling support and add V4 pipeline model.
3696
3697         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3698         (define_attr cpu): Add cfv4 value.
3699         (define_attr type, define_attr type1): Merge into a single 'type'
3700         attribute.  Update all uses.
3701         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3702         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3703         Update all uses.
3704         (define_attr opx_mem, define_attr opy_mem): Remove.
3705         (define_attr op_mem): Clean up, update comment.
3706         (define_attr size): Use specific values instead of general int.
3707         (define_attr guess, define_attr split): Remove.  Update all uses.
3708         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3709         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3710         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3711         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3712         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3713         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3714         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3715         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3716         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3717         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3718         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3719         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3720         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3721         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3722         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3723         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3724         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3725         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3726         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3727         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3728         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3729         Update or set attributes.
3730         (stack_tie): New fake instruction.
3731
3732         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3733         (m68k_sched_attr_size): Update declaration.
3734         (m68k_sched_attr_type2): Remove.
3735         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3736         Declare new bypass predicates.
3737
3738         * config/m68k/m68k.c (m68k_sched_issue_rate,
3739         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3740         implementations.
3741         (TARGET_SCHED_ISSUE_RATE,
3742         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3743         (override_options): Handle scheduling for ColdFire V4 core.
3744         (m68k_expand_prologue): Emit stack_tie.
3745         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3746         'OP_TYPE_FPN'.  Update all uses.
3747         (sched_guess_p): Remove.
3748         (sched_address_type): Handle symbolic addresses.
3749         (sched_get_operand): New static function.
3750         (sched_operand_type): Merge into sched_attr_op_type.
3751         (sched_attr_op_type): Handle FP registers, handle quick constants,
3752         update.
3753         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3754         (m68k_sched_attr_size): Update.  Move logic to ...
3755         (sched_get_attr_size_int): New static function.
3756         (sched_get_opxy_mem_type): New static function.
3757         (m68k_sched_attr_op_mem): Update.
3758         (m68k_sched_attr_type2): Remove.
3759         (sched_cfv4_bypass_data): New static variable.
3760         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3761         (m68k_sched_issue_rate): Implement scheduler hook.
3762         (struct _sched_ib: enabled_p): New field.
3763         (m68k_sched_variable_issue): Update.  Handle V4.
3764         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3765         sched_dump_class_func_t, sched_dump_split_class,
3766         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3767         sched_dump_dfa_class, m68k_sched_dump): Remove.
3768         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3769         hook.
3770         (m68k_sched_init_global): Remove statisctics dumping, introduce
3771         sanity check that all instructions have pipeline reservations.  Handle
3772         ColdFire V4 core.
3773         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3774         Handle ColdFire V4 core.
3775         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3776         New static functions.
3777         (m68k_sched_address_bypass_p): New bypass predicate.
3778         (sched_get_indexed_address_scale): New static function.
3779         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3780
3781         * cf.md: Update comments.
3782         (define_attr type2): Remove.  Use 'type' attribute instead.
3783         Update all uses.
3784         (cf_ib): Rename to cfv123_ib.  Update all uses.
3785         (cf_oep): Rename to cfv123_oep.  Update all uses.
3786         (cf_chr): Rename to cfv123_chr.  Update all uses.
3787         (cf_mem): Rename to cfv123_mem.  Update all uses.
3788         (cf_mac): Move to more appropriate place.
3789         (cfv123_guess): New automaton and cpu_unit.
3790         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3791         Update uses of 'size' attribute.  Handle before reload scheduling.
3792         (cfv123_guess): New dummy reservation for unhandled instructions.
3793         (cfv4_*): Pipeline description of ColdFire V4 core.
3794         (ignore): New reservation to handle 'ignore' type.
3795
3796 2008-05-07  Ian Lance Taylor  <iant@google.com>
3797
3798         PR middle-end/36013
3799         * gimplify.c (find_single_pointer_decl_1): Don't look through
3800         indirections.
3801         (find_single_pointer_decl): Adjust comments.
3802
3803 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3804
3805         PR middle-end/36137
3806         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3807         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3808
3809         PR middle-end/36106
3810         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3811         integral type rather than floating point, then VIEW_CONVERT_EXPR
3812         to the floating point type.
3813
3814 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3815
3816         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3817         TFmode op0 to register.
3818
3819 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3820
3821         * c-decl.c (grokdeclarator): Comment typo.
3822
3823 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3824
3825         * tree-flow.h: Remove prototype for computed_goto_p.
3826         * tree-cfg.c (computed_goto_p): Make static.
3827
3828 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3829
3830         PR target/35657
3831         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3832         (contains_aligned_value_p): This.  Handle _Decimal128.
3833         (ix86_function_arg_boundary): Only align _Decimal128 to its
3834         natural boundary and handle it properly.
3835
3836 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3837
3838         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3839         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3840         (ipcp_method_set_orig_node): Removed.
3841         (ipcp_cval_get_cvalue_type): Removed.
3842         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3843         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3844         (ipcp_cval_set_cvalue_type): Removed.
3845         (ipcp_cval_get_cvalue): Removed.
3846         (ipcp_cval_set_cvalue): Removed.
3847         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3848         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3849         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3850         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3851         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3852         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3853         (ipcp_get_ith_lattice): Changed parameters.
3854         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3855         (ipcp_lattice_from_jfunc): Changed parameters.
3856         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3857         (ipcp_method_cval_print): Added temporary variable info.
3858         (ipcp_redirect): Removed already unused local variable caller.
3859         (ipcp_redirect): New temporary variable orig_callee_info
3860         (ipcp_redirect): Removed newly unused local variable callee.
3861         (ipcp_redirect): Removed (a bit confusing) local variable type.
3862         (ipcp_insert_stage): Added local variable info.
3863         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3864         renamed too
3865         (ipcp_formal_create): Removed.
3866         (ipcp_method_cval_set): Removed.
3867         (ipcp_propagate_stage): Renamed lattice variables.
3868         (ipcp_method_cval_set_cvalue_type): Removed.
3869         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3870         (ipcp_print_all_lattices): Changed printed strings to refer to 
3871         lattices rather than cvals.
3872         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3873         (ipcp_propagate_const): Changed formal parameters.
3874         (build_const_val): Changed formal parameters.
3875         (ipcp_insert_stage): Removed useless variable cvalue
3876         (build_const_val): Changed formal parameters.
3877         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3878         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3879         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3880         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3881         (ipcp_print_func_profile_counts): Changed string from "method" to 
3882         "function"
3883         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3884         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3885         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3886         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3887         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3888         (ipcp_lat_is_const): Changed parameters and made inline.
3889         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3890         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3891         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3892         the predicate condition directly
3893         (ipcp_propagate_stage): Added local variable args. Removed local
3894         variable callee.  (Both are mere code simplifications.)
3895         (ipcp_method_dont_insert_const): Renamed to
3896         ipcp_node_not_modifiable_p.
3897         (ipcp_node_not_modifiable_p): Made inline.
3898         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3899         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3900         (ipcp_print_all_lattices): Removed variable cvalue
3901         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3902         Updated comments.
3903
3904 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3905
3906         * tree-sra.c (try_instantiate_multiple_fields): Early return
3907         if field has POINTER_TYPE.
3908
3909 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3910
3911         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3912         by using 'q' specifier for instruction.
3913         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3914
3915 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3916
3917         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3918         Change mode of zero_extract from QImode to HImode.
3919         (sign bit tests peepholes): (Ditto.).
3920
3921 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3922
3923         * config/i386/mmx.md: Remove double backslashes from asm templates.
3924         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3925         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3926         to handle nonimmediate operands.
3927         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3928         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3929         to handle nonimmediate operands.
3930         (*mmx_<code>v2sf3_finite): New insn pattern.
3931         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3932         (mmx_<code>v2sf3): New expander.  Use
3933         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3934         (mmx_<plusminus_insn><mode>3): New expander.  Use
3935         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3936         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3937         (mmx_add<mode>3): Removed.
3938         (mmx_ssadd<mode>3): Ditto.
3939         (mmx_usadd<mode>3): Ditto.
3940         (mmx_sub<mode>3): Ditto.
3941         (mmx_sssub<mode>3): Ditto.
3942         (mmx_ussub<mode>3): Ditto.
3943         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3944         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3945         to handle nonimmediate operands.
3946         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3947         insn pattern.
3948         (mmx_smulv4hi3_highpart): New expander.  Use
3949         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3950         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3951         insn pattern.
3952         (mmx_umulv4hi3_highpart): New expander.  Use
3953         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3954         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3955         (mmx_<code>v4hi3): New expander.  Use
3956         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3957         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3958         (mmx_<code>v8qi3): New expander.  Use
3959         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3960         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3961         (mmx_<code><mode>3): New expander.  Use
3962         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3963
3964 2008-05-05  Jan Hubicka  <jh@suse.cz>
3965
3966         PR tree-optimization/36118
3967         * passes.c (pass_init_dump_file): Fix dump header.
3968
3969 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3970
3971         PR middle-end/36141
3972         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3973         VCE for function decls.
3974
3975 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3976
3977         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3978
3979 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3980
3981         * config/i386/i386.md (sat_plusminus): New.
3982         (plusminus_insn): Likewise.
3983         (plusminus_mnemonic): Likewise.
3984         (addsub): Removed.
3985         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3986         (*<addsub><mode>3_cc_overflow): Renamed to ...
3987         (*<plusminus_insn><mode>3_cc_overflow): This.
3988         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3989         (*<plusminus_insn>si3_zext_cc_overflow): This.
3990
3991         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3992         (<plusminus_insn><mode>3): This.
3993         (*<addsub><mode>3): Renamed to ...
3994         (*<plusminus_insn><mode>3): This.
3995         (<sse>_vm<addsub><mode>3): Renamed to ...
3996         (<sse>_vm<plusminus_insn><mode>3): This.
3997         (sse3_h<addsub>v4sf3): Renamed to ...
3998         (sse3_h<plusminus_insn>v4sf3): This.
3999         (sse3_h<addsub>v2df3): Renamed to ...
4000         (sse3_h<plusminus_insn>v2df3): This.
4001         (<plusminus_insn><mode>3): New.
4002         (*<plusminus_insn><mode>3): Likewise.
4003         (sse2_<plusminus_insn><mode>3): Likewise.
4004         (add<mode>): Removed.
4005         (*add<mode>3): Likewise.
4006         (sse2_ssadd<mode>3): Likewise.
4007         (sse2_usadd<mode>3): Likewise.
4008         (sub<mode>3): Likewise.
4009         (*sub<mode>3): Likewise.
4010         (sse2_sssub<mode>3): Likewise.
4011         (sse2_ussub<mode>3): Likewise.
4012
4013 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
4014
4015         * gthr-single.h: Add in required interface elements as per gthr.h.
4016         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
4017         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
4018         Generalize UNUSED macro. 
4019         (__gthread_once): Add.
4020         (__gthread_key_create): Add.
4021         (__gthread_key_delete): Add.
4022         (__gthread_getspecific): Add.
4023         (__gthread_setspecific): Add.
4024         
4025 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
4026
4027         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
4028         the same size types for the indirect reference on the rhs, then
4029         create a VCE.
4030
4031 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
4032
4033         * config/i386/i386.md
4034         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
4035         one insn template instead of template series.
4036         (*xordi_1_rex64): Ditto.
4037         (*xordi_2_rex64): Ditto.
4038
4039 2008-05-05  Ira Rosen  <irar@il.ibm.com>
4040
4041         PR tree-optimization/36119
4042         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
4043         in case of SLP.
4044
4045 2008-06-04  Jan Hubicka  <jh@suse.cz>
4046
4047         tree-optimization/36100
4048         * tree-pass.h (pass_O0_always_inline): Declare.
4049         * ipa-inline.c (inline_transform): Remove dead code.
4050         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4051         pass_O0_always_inline): New.
4052         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
4053
4054 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
4055
4056         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
4057         mnemonic in this_param move for TARGET_64BIT.
4058
4059 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
4060
4061         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
4062         (*strmovsi_rex_1): Ditto.
4063         (*strsetsi_1): Ditto.
4064         (*strsetsi_rex_1): Ditto.
4065
4066         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
4067         adddicc expanders using SWI mode iterator.
4068
4069 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4070
4071         PR target/36121
4072         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
4073         argument handling.
4074
4075 2008-05-04  David S. Miller  <davem@davemloft.net>
4076
4077         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
4078         (sparc*-*-linux*): Use linux.h in tm_file.
4079         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
4080         compiler defaulting to 32-bit.
4081         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
4082         no longer needed.
4083         * config/sparc/linux.h: Remove definitions now obtained
4084         properly from linux.h
4085         * config/sparc/linux64.h: Likewise.
4086         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
4087         don't want this setting for 32-bit builds in a biarch compiler.
4088         * doc/install.texi: Add sparc-linux to list of targets
4089         supporting --enable-targets=all.
4090
4091 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
4092
4093         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
4094
4095 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
4096
4097         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
4098         after V4SI_FTYPE_V8HI.
4099         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
4100         case V4SI_FTYPE_V2DF.
4101
4102 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
4103
4104         * doc/invoke.texi (max-flow-memory-locations): Removed.
4105         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
4106         
4107 2008-05-03  Richard Guenther  <rguenther@suse.de>
4108
4109         PR middle-end/34973
4110         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
4111
4112 2008-05-02  David S. Miller  <davem@davemloft.net>
4113
4114         * config.gcc (need_64bit_hwint): Document libcpp dependency.
4115
4116 2008-05-02  Simon Baldwin <simonb@google.com>
4117
4118         PR bootstrap/36108
4119         * c-common.h (warn_array_subscript_range): Removed.
4120         * c-common.c (warn_array_subscript_range): Ditto.
4121         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
4122         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
4123
4124 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4125
4126         * config/i386/i386.c (ix86_special_builtin_type): New.
4127         (bdesc_special_args): Likewise.
4128         (ix86_expand_special_args_builtin): Likewise.
4129         (ix86_init_mmx_sse_builtins): Updated.
4130         (ix86_expand_builtin): Updated.
4131         (ix86_expand_store_builtin): Removed.
4132         (ix86_expand_unop_builtin): Likewise.
4133
4134         * config/i386/mm3dnow.h (__v2sf): Moved to ...
4135         * config/i386/mmintrin.h (__v2sf): Here.
4136
4137         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
4138         const __v2sf.
4139         (_mm_loadl_pi): Likewise.
4140         (_mm_storeh_pi): Replace __v2si with __v2sf.
4141         (_mm_storel_pi): Likewise.
4142
4143         * doc/extend.texi: Correct __builtin_ia32_loadhps,
4144         __builtin_ia32_loadlps, __builtin_ia32_storehps,
4145         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
4146         __builtin_ia32_loadlpd.
4147
4148 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4149
4150         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
4151         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
4152         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
4153         (ix86_init_mmx_sse_builtins): Updated.
4154         (ix86_expand_args_builtin): Likewise.
4155         (ix86_expand_builtin): Likewise.
4156         (ix86_expand_unop1_builtin): Renamed to ...
4157         (ix86_expand_unop_vec_merge_builtin): This.
4158
4159 2008-05-01  Jan Hubicka  <jh@suse.cz>
4160
4161         PR bootstrap/36100
4162         * ipa-inline.c (inline_generate_summary): Make static.
4163         (inline_transform): Do not call inlining at -O0; make static.
4164         * passes.c (execute_todo): Add sanity check.
4165         (execute_one_ipa_transform_pass): Execute proper flags.
4166
4167 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4168
4169         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
4170         (DECL_NONADDRESSABLE_P): Likewise.
4171         * alias.c (record_component_aliases): Fix comment.
4172
4173 2008-05-01  Simon Baldwin <simonb@google.com>
4174
4175         * c-common.h (warn_array_subscript_range): New function.
4176         * c-common.c (warn_array_subscript_range): Ditto.
4177         * tree-vrp.c (check_array_ref): Corrected code to agree with
4178         comment, ignoring only arrays of size 0 or size 1.
4179         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
4180
4181 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4182
4183         * config/i386/i386.c (ix86_builtin_type): Replace
4184         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
4185         (bdesc_args): Updated.
4186         (ix86_init_mmx_sse_builtins): Likewise.
4187         (ix86_expand_args_builtin): Likewise.
4188
4189         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
4190         with __v1di.
4191
4192         * doc/extend.texi: Correct __builtin_ia32_palignr.
4193
4194 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4195
4196         PR target/36095
4197         * config/i386/i386.c (bdesc_crc32): Removed.
4198         (ix86_expand_crc32): Likewise.
4199         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
4200         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
4201         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
4202         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
4203         UINT_FTYPE_UINT_UCHAR.
4204         (bdesc_args): Updated. Add crc32 builtins.
4205         (ix86_init_mmx_sse_builtins): Updated.
4206         (ix86_expand_args_builtin): Updated to support subreg.
4207
4208         * doc/extend.texi: Correct __builtin_ia32_crc32di.
4209
4210 2008-05-01  Jan Hubicka  <jh@suse.cz>
4211
4212         * tree-pass.h (opt_pass): Add IPA_PASS.
4213         (varpool_node, cgraph_node): Forward declare.
4214         (ipa_opt_pass): Define.
4215         (pass_ipa_inline): Turn into ipa_opt_pass.
4216         (pass_apply_inline): Remove.
4217         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
4218         (apply_inline): Turn into ....
4219         (inline_transform): ... this one.
4220         (inline_generate_summary): New function.
4221         (pass_apply_inline): Remove.
4222         * function.h (ipa_opt_pass): Forward declare structure; typedef;
4223         vector.
4224         (struct function): Add ipa_transforms_to_apply.
4225         * passes.c (register_one_dump_file): Work on IPA_PASS.
4226         (init_optimization_passes): Remove pass_inline_parameters and
4227         pass_apply_inline.
4228         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
4229         (execute_one_pass) ... here; apply transforms when possible.
4230         (add_ipa_transform_pass, execute_ipa_summary_asses,
4231         execute_one_ipa_transform_pass): New.
4232         (execute_ipa_pass_list): Update for IPA_PASS type.
4233
4234 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4235
4236         * config/i386/i386.c (ix86_builtin_type): Add
4237         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
4238         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
4239         (bdesc_args): Add SSE4a builtins.
4240         (ix86_init_mmx_sse_builtins): Updated.
4241         (ix86_expand_args_builtin): Likewise.
4242         (ix86_expand_builtin): Likewise.
4243
4244 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4245
4246         * config/i386/i386.c (ix86_builtin_type): Add
4247         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
4248         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
4249         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
4250         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
4251         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
4252         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
4253         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
4254         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
4255         and DI_FTYPE_DI_DI_INT.
4256         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
4257         (ix86_init_mmx_sse_builtins): Updated.
4258         (ix86_expand_args_builtin): Likewise.
4259         (ix86_expand_builtin): Likewise.
4260         (ix86_expand_binop_imm_builtin): Removed.
4261
4262         * doc/extend.texi: Correct __builtin_ia32_palignr128.
4263
4264 2008-04-30  Richard Guenther  <rguenther@suse.de>
4265
4266         PR tree-optimization/32921
4267         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
4268
4269 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
4270
4271         * config/arm/arm.c (arm_unwind_emit): Use
4272         crtl->all_throwers_are_sibcalls instead of
4273         cfun->all_throwers_are_sibcalls.
4274         (arm_output_fn_unwind): Likewise.
4275         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
4276         instead of cfun->uses_pic_offset_table.
4277         (frv_expand_prologue): Likewise.
4278         (frv_frame_pointer_required): Likewise.
4279         (frv_expand_fdpic_call): Likewise.
4280         (frv_emit_movsi): Likewise.
4281         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
4282         cfun->returns_pcc_struct instead of
4283         current_function_returns_pcc_struct.
4284         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
4285         instead of cfun->calls_eh_return.
4286         (m32c_pushm_popm): Likewise.
4287         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
4288         "extern" declaration.
4289
4290 2008-04-30  Richard Guenther  <rguenther@suse.de>
4291
4292         PR tree-optimization/21636
4293         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
4294         constant address.
4295         (evaluate_stmt): Print the likely value.
4296         (ccp_visit_stmt): Avoid excessive vertical spacing.
4297
4298 2008-04-30  Rafael Espindola  <espindola@google.com>
4299
4300         * builtins.c (fold_call_expr): Return realret.
4301         * tree-ssa-threadedge.c
4302         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
4303         __builtin_object_size.
4304
4305 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
4306
4307         * gcc.c (wrapper_string): New variable.
4308         (insert_wrapper): New function.
4309         (execute): New option -wrapper.
4310         * doc/invoke.texi (Overall Options): New driver option -wrapper.
4311
4312 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
4313
4314         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
4315         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
4316         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
4317         from...
4318         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
4319         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
4320         config/rs6000/e500crtres64gprctr.asm,
4321         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
4322         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
4323         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
4324         config/rs6000/e500crtsav64gprctr.asm,
4325         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
4326         config/rs6000/e500crtsavg64gprctr.asm: New files.
4327         * config/rs6000/t-ppccomm: Add build rules for new files.
4328         (LIB2FUNCS_STATIC_EXTRA): Add new files.
4329         * config/rs6000/t-netbsd: Add build rules for new files.
4330         (LIB2FUNCS_STATIC_EXTRA): New variable.
4331         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
4332         (CRTSAVRES_DEFAULT_SPEC): Likewise.
4333         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
4334
4335 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
4336
4337         * config/i386/i386.c (ix86_builtin_type): Add
4338         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
4339         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
4340         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
4341         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
4342         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
4343         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4344         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4345         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4346         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4347         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4348         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4349         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4350         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4351         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4352         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4353         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4354         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4355         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4356         V1DI_FTYPE_V2SI_V2SI.
4357         (bdesc_2arg): Moved to ...
4358         (bdesc_args): Here.
4359         (ix86_init_mmx_sse_builtins): Updated.
4360         (ix86_expand_args_builtin): Updated.  Take a pointer
4361         to const struct builtin_description.  Handle comparison
4362         builtin functions.
4363         (ix86_expand_sse_compare): Take a new argument for swapping operands.
4364         (ix86_expand_builtin): Updated.
4365
4366         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4367         (ssse3_pmaddubsw128): This.
4368         (ssse3_pmaddubswv4hi3): Renamed to ...
4369         (ssse3_pmaddubsw): This.
4370
4371         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
4372         (__builtin_ia32_packssdw128): Likewise.
4373         (__builtin_ia32_packuswb128): Likewise.
4374         (__builtin_ia32_pmaddubsw): Likewise.
4375         (__builtin_ia32_pmaddubsw128): Likewise.
4376
4377 2008-04-30  Richard Guenther  <rguenther@suse.de>
4378
4379         PR tree-optimization/14847
4380         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4381         (recognize_bits_test): Use it.
4382         (recognize_single_bit_test): Likewise.
4383
4384 2008-04-30  Martin Jambor  <mjambor@suse.cz>
4385
4386         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4387         instead of setting number of formal parameters to zero.
4388         (ipcp_init_stage): Do not set the number of actual parameters to zero 
4389         either.
4390         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4391         which are called with variable number of arguments.
4392         (ipcp_insert_stage): Explicitely skipping all nodes which are
4393         called with variable number of arguments.
4394         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4395         number of parameters.
4396
4397         * ipa-prop.h (struct ipa_node_params): Added flag
4398         called_with_var_arguments
4399         (ipa_set_param_count): Added.  Changed sole setter to use it.
4400         (ipa_get_param_count): Added.  All readers of param_count
4401         converted to use it instead.
4402         (ipa_set_called_with_variable_arg): Added.
4403         (ipa_is_called_with_var_arguments): Added.
4404         (ipa_get_ith_param): Added.  All readers of param_decls converted
4405         to use it instead.
4406         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4407         changed to use it. 
4408         (ipa_get_cs_argument_count): Added, all readers of argument_count
4409         changed to cal it.
4410         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4411         to use it.
4412         
4413         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4414         (struct ipcp_lattice): Renamed cval_type to type
4415         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4416
4417         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4418         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4419         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4420         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4421         (build_const_val): Changed the type of parameter cvalue to tree
4422         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4423         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4424         
4425         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4426         constant 
4427
4428         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4429         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4430         (ipa_add_method): Renamed to ipa_push_func_to_list
4431         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4432         (ipa_callsite_param_count): Removed.
4433         (ipa_callsite_param_count_set): Removed.
4434         (ipa_callsite_param): Removed.
4435         (ipa_callsite_callee): Removed.
4436         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4437         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4438         (ipa_method_formal_count): Removed.
4439         (ipa_method_formal_count_set): Removed.
4440         (ipa_method_get_tree): Removed.
4441         (ipa_method_tree_map_create): Removed.
4442         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4443         (ipa_create_param_decls_array): Creates the array itself
4444         (ipa_create_param_decls_array): Temporary variable info instead of 
4445         a few dereferences.
4446         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4447         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4448         (get_type): Removed.
4449         (ipa_jf_get_info_type): Removed.
4450         (ipa_node_create): Renamed to ipa_create_node_params
4451         (ipa_free): Renamed to ipa_free_all_node_params
4452         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4453         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4454         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4455         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4456         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4457         ipa_free_all_edge_args
4458         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4459         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4460         (ipa_create_methodlist_node): Removed.
4461         (ipa_methodlist_method): Removed.
4462         (ipa_methodlist_method_set): Removed.
4463         (ipa_methodlist_next_method): Removed.
4464         (ipa_methodlist_next_method_set): Removed.
4465         (ipa_method_is_modified): Removed.
4466         (ipa_method_modify_create): Removed.
4467         (ipa_method_modify_init): Temporary variable info instead of a few 
4468         dereferences.
4469         (ipa_detect_param_modifications): Temporary variable info instead of 
4470         a few dereferences.
4471         (ipa_compute_jump_functions): Temporary variable info instead of 
4472         a few dereferences.
4473         (ipa_method_modify_set): Removed.
4474         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4475         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4476         than craph_node as the first parameter.
4477         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4478         (ipa_method_modify_init): Removed.
4479         (ipa_compute_jump_functions): Added a temp variable instead of 
4480         repeatadly dereferencing the cgraph_edge.aux pointer
4481         (ipa_callsite_param_set_type): Removed.
4482         (ipa_compute_jump_functions): i renamed to index and moved to 
4483         an inner block
4484         (ipa_callsite_param_set_info_type_formal): Removed.
4485         (ipa_callsite_param_set_info_type): Removed.
4486         (ipa_callsite_param_map_create): Removed.
4487         (ipa_callsite_tree): Removed.
4488         (ipa_callsite_caller): Removed.
4489         (ipa_pop_func_from_list): return_method removed to return_func
4490
4491         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4492         prefixed all values with IPA_. Changed all users.
4493         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4494         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4495         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4496         (union parameter_info): Renamed to jump_func_value.
4497         (union jump_func_value): Renamed value to constant
4498         (struct ipa_jump_func): Renamed info_type to value
4499         (struct ipa_node): Renamed to ipa_node_params
4500         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4501         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4502         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4503         (struct ipa_edge): Renamed to ipa_edge_args
4504         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4505         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4506         (struct ipa_methodlist): Renamed to ipa_func_list
4507         (struct ipa_func_list): method_p renamed to node, next_method
4508         renamed to next
4509         (ipa_methodlist_p): Removed, switched all users to struct pointer
4510         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4511
4512 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4513
4514         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4515         (rs6000_emit_epilogue): Use backchain to restore only when we
4516         have a large frame.  Make use of frame pointer to restore if we
4517         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4518
4519 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4520
4521         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4522         Add mode to zero_extract.
4523         (sign bit tests peepholes): (Ditto.).
4524
4525 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4526
4527         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4528         Instructions in comments with SSE3.
4529         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4530         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4531         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4532         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4533         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4534         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4535         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4536         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4537         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4538         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4539         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4540         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4541         (bdesc_sse_args): Renamed to ...
4542         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4543         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4544         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4545         IX86_BUILTIN_FABSQ.
4546         (bdesc_1arg): Moved to ...
4547         (bdesc_args): Here.
4548         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4549         Instructions in comments with SSE3.
4550         (ix86_expand_sse_operands_builtin): Renamed to ...
4551         (ix86_expand_args_builtin): This.  Updated.
4552         (ix86_expand_unop1_builtin): Update comments.
4553         (ix86_expand_builtin): Updated.
4554
4555 2008-04-29  Richard Guenther  <rguenther@suse.de>
4556
4557         PR tree-optimization/36078
4558         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4559         Update virtual SSA form after cleaning up the CFG.
4560
4561 2008-04-29  Richard Guenther  <rguenther@suse.de>
4562
4563         PR middle-end/15255
4564         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4565
4566 2008-04-29  Richard Guenther  <rguenther@suse.de>
4567
4568         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4569         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4570         (compute_flow_insensitive_aliasing): Do not treat
4571         PTR_IS_REF_ALL pointers special.
4572         (get_smt_for): Likewise.
4573         (may_alias_p): Re-structure.
4574         (is_escape_site): A ref-all pointer conversion is not an escape site.
4575         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4576         PTR_IS_REF_ALL pointers special.
4577         * tree-ssa-structalias.h (struct alias_info): Remove
4578         ref_all_symbol_mem_tag field.
4579         (PTR_IS_REF_ALL): Remove.
4580
4581 2008-04-29  Richard Guenther  <rguenther@suse.de>
4582
4583         PR middle-end/36077
4584         * fold-const.c (extract_muldiv_1): In combining division constants
4585         make sure to never overflow.
4586
4587 2008-04-29  Nick Clifton  <nickc@redhat.com>
4588
4589         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4590
4591 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4592
4593         PR bootstrap/35169
4594         * optc-gen.awk: Work around HP-UX/IA awk bug.
4595
4596 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4597
4598         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4599         2008-04-25 commit.
4600
4601 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4602
4603         PR target/36073
4604         * config/i386/i386.md
4605         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4606         Change operand 1 predicate to nonimmediate_operand.
4607
4608 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4609
4610         PR debug/36060
4611         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4612         die_sub field.
4613         * gengtype.c (walk_type, write_func_for_structure): Handle
4614         chain_circular.
4615         * doc/gty.texi: Document chain_circular.
4616
4617 2008-04-28  Richard Guenther  <rguenther@suse.de>
4618
4619         PR tree-optimization/36066
4620         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4621         SCEV and loop.
4622
4623 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4624
4625         PR target/36064
4626         * config/i386/i386.md
4627         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4628         Use match_scratch instead of match_operand for operands 3 and 4.
4629
4630 2008-04-27  Richard Guenther  <rguenther@suse.de>
4631
4632         PR tree-optimization/18754
4633         PR tree-optimization/34223
4634         * tree-pass.h (pass_complete_unrolli): Declare.
4635         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4636         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4637         Rewrite loop into loop closed SSA form if it is not already.
4638         (tree_unroll_loops_completely): Re-structure to iterate over
4639         innermost loops with intermediate CFG cleanups.
4640         Unroll outermost loops only if requested or the code does not grow
4641         doing so.
4642         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4643         loops are available.
4644         (tree_vectorize): Instead do so here.
4645         (tree_complete_unroll): Also unroll outermost loops.
4646         (tree_complete_unroll_inner): New function.
4647         (gate_tree_complete_unroll_inner): Likewise.
4648         (pass_complete_unrolli): New pass.
4649         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4650         uses outside of the loop.
4651         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4652         form if it is available.  
4653         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4654         * passes.c (init_optimization_passes): Schedule complete inner
4655         loop unrolling pass before the first CCP pass after final inlining.
4656
4657 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4658
4659         * targhooks.h (default_emutls_var_fields,
4660         default_emutls_var_init): Declare.
4661         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4662         * target.h (struct gcc_target): Add struct emutls member.
4663         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4664         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4665         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4666         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4667         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4668         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4669         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4670         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4671         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4672         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4673         emit debug information.
4674         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4675         * varasm.c: Include targhooks.h.
4676         (emutls_object_section, emutls_tmpl_section): New.
4677         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4678         (EMUTLS_SEPARATOR): New.
4679         (prefix_name): New.
4680         (get_emutls_object_name): New.
4681         (default_emutls_var_fields): New, broken out of ...
4682         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4683         (get_emutls_init_templ_addr): Adjust to use target hooks.
4684         (emutls_decl): Adjust to use target hooks.
4685         (emutls_finish): Likewise.
4686         (default_emutls_var_init): New, broken out of ...
4687         (assemble_variable): ... here.  Adjust to use target hooks.
4688         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4689         SECCAT_EMUTLS_TMPL.
4690         * c-common.c (handle_section_attribute): Prevent overriding
4691         sections for emulated tls with special sections.
4692         * config/i386/i386.c (x86_64_elf_select_section): Add
4693         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4694         (x86_64_elf_unique_section): Likewise.
4695         * config/vxworks.c: Include tree.h.
4696         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4697         (vxworks_override_options): Set TLS scheme.
4698         * doc/tm.texi (Emulated TLS): New node.
4699
4700 2008-04-26  Simon Baldwin <simonb@google.com>
4701
4702         PR c/35652
4703         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4704         with propagated string constants.
4705
4706 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4707
4708         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4709         constraint for operand 2 when operand 0 is memory operand.
4710         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4711         operand 0 is memory operand.
4712         (fix_trunc<mode>_i387_with_temp): Ditto.
4713         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4714         operand 2 when operand 1 is memory operand.
4715         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4716         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4717         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4718         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4719         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4720         operands 2,3 and 4 when operand 1 is memory operand.
4721         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4722         is memory operand.
4723         (fistdi2_floor_with_temp): Ditto.
4724         (fist<mode>2_floor_with_temp): Ditto.
4725         (fistdi2_ceil_with_temp): Ditto.
4726         (fist<mode>2_ceil_with_temp): Ditto.
4727         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4728
4729 2008-04-26  David Daney  <ddaney@avtrex.com>
4730
4731         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4732         unspec_volitile.
4733         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4734         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4735         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4736         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4737         (compare_and_swap_12): New insn.
4738         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4739         * config/mips/mips.c (mips_force_binary): New function.
4740         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4741         (mips_expand_compare_and_swap_12): New function.
4742         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4743
4744 2008-04-25  Jan Hubicka  <jh@suse.cz>
4745
4746         PR testsuite/35843
4747         * cfgexpand.c (pass_expand): Turn into RTL pass.
4748         * passes.c (execute_one_pass): Do pass typechecking after execution.
4749         * tree-pass.h (pass_expand): Turn into RTL pass.
4750
4751         * function.h (struct rtl_data): Move here fields
4752         accesses_prior_frames, calls_eh_return, saves_all_registers,
4753         has_nonlocal_goto, has_asm_statement, is_thunk,
4754         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4755         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4756         arg_pointer_save_area_init from struct function; turn into bool.
4757         (struct function): Move
4758         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4759         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4760         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4761         tail_call_emit, arg_pointer_save_area_init
4762         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4763         (current_function_returns_struct, current_function_returns_pcc_struct,
4764         current_function_calls_setjmp, current_function_calls_alloca,
4765         current_function_accesses_prior_frames,
4766         current_function_calls_eh_return, current_function_is_thunk,
4767         current_function_stdarg, current_function_profile,
4768         current_function_limit_stack, current_function_uses_pic_offset_table,
4769         current_function_uses_const_pool, current_function_has_nonlocal_label,
4770         current_function_saves_all_registers,
4771         current_function_has_nonlocal_goto,
4772         current_function_has_asm_statement): Remove accesor macros.
4773         * ra-conflict.c (global_conflicts): Update.
4774         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4775         (suitable_for_tail_call_opt_p): Update.
4776         * builtins.c (expand_builtin_return_addr): Update.
4777         (expand_builtin_setjmp_setup): Update.
4778         (expand_builtin_nonlocal_goto): Update.
4779         * final.c (final_start_function): Update.
4780         (profile_function): Update.
4781         (leaf_function_p): Update.
4782         (only_leaf_regs_used): Update.
4783         * df-scan.c (df_get_exit_block_use_set): Update.
4784         * dojump.c (clear_pending_stack_adjust): Update.
4785         * tree-stdarg.c (gate_optimize_stdarg): Update.
4786         * gimple-low.c (lower_function_body): Update.
4787         * global.c (compute_regsets): Update.
4788         (global_alloc): Update.
4789         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4790         * expr.c (expand_assignment): Update.
4791         * dse.c (dse_step0): Update.
4792         (dse_step1): Update.
4793         * c-decl.c (store_parm_decls): Update.
4794         * local-alloc.c (combine_regs): Update.
4795         (find_free_reg): Update.
4796         * function.c (assign_parms_augmented_arg_list): Update.
4797         (assign_parm_find_data_types): Update.
4798         (assign_parms): Update.
4799         (allocate_struct_function): Update.
4800         (expand_function_start): Update.
4801         (expand_function_end): Update.
4802         (get_arg_pointer_save_area): Update.
4803         (thread_prologue_and_epilogue_insns): Update.
4804         (rest_of_match_asm_constraints): Update.
4805         * stor-layout.c (variable_size): Update.
4806         * gcse.c (gcse_main): Update.
4807         (bypass_jumps): Update.
4808         * gimplify.c (gimplify_function_tree): Update.
4809         * calls.c (emit_call_1): Update.
4810         (expand_call): Update.
4811         * bt-load.c (compute_defs_uses_and_gen): Update.
4812         * except.c (sjlj_assign_call_site_values): Update.
4813         (sjlj_emit_function_enter): Update.
4814         (can_throw_external): Update.
4815         (set_nothrow_function_flags): Update.
4816         (expand_builtin_unwind_init): Update.
4817         (expand_eh_return): Update.
4818         (convert_to_eh_region_ranges): Update.
4819         (output_function_exception_table): Update.
4820         * emit-rtl.c (gen_tmp_stack_mem): Update.
4821         * cfgexpand.c (expand_used_vars): Update.
4822         (tree_expand_cfg): Update.
4823         * cfgcleanup.c (rest_of_handle_jump): Update.
4824         * explow.c (allocate_dynamic_stack_space): Update.
4825         * varasm.c (assemble_start_function): Update.
4826         (force_const_mem): Update.
4827         (mark_constant_pool): Update.
4828         * tree-optimize.c (tree_rest_of_compilation): Update.
4829         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4830         * tree-cfg.c (notice_special_calls): Update.
4831         (is_ctrl_altering_stmt): Update.
4832         (tree_can_make_abnormal_goto): Update.
4833         (tree_purge_dead_abnormal_call_edges): Update.
4834         * config/alpha/predicates.md: Update.
4835         * config/alpha/alpha.c (alpha_sa_mask): Update.
4836         (alpha_sa_size): Update.
4837         (alpha_does_function_need_gp): Update.
4838         (alpha_expand_prologue): Update.
4839         (alpha_start_function): Update.
4840         (alpha_output_function_end_prologue): Update.
4841         (alpha_expand_epilogue): Update.
4842         * config/frv/frv.c (frv_stack_info): Update.
4843         (frv_expand_epilogue): Update.
4844         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4845         (s390_register_info): Update.
4846         (s390_frame_info): Update.
4847         (s390_init_frame_layout): Update.
4848         (s390_can_eliminate): Update.
4849         (save_gprs): Update.
4850         * config/spu/spu.c (spu_split_immediate): Update.
4851         (need_to_save_reg): Update.
4852         (spu_expand_prologue): Update.
4853         (spu_expand_epilogue): Update.
4854         * config/sparc/sparc.md: Update.
4855         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4856         (sparc_tls_got): Update.
4857         (legitimize_pic_address): Update.
4858         (sparc_emit_call_insn): Update.
4859         (sparc_expand_prologue): Update.
4860         (output_return): Update.
4861         (print_operand): Update.
4862         (sparc_function_ok_for_sibcall): Update.
4863         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4864         * config/m32r/m32r.md: Update.
4865         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4866         (m32r_compute_frame_size): Update.
4867         (m32r_expand_prologue): Update.
4868         (m32r_expand_epilogue): Update.
4869         (m32r_legitimize_pic_address): Update.
4870         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4871         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4872         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4873         (gen_push): Update.
4874         (ix86_save_reg): Update.
4875         (ix86_compute_frame_layout): Update.
4876         (ix86_expand_prologue): Update.
4877         (ix86_expand_epilogue): Update.
4878         * config/sh/sh.c (output_stack_adjust): Update.
4879         (calc_live_regs): Update.
4880         (sh5_schedule_saves): Update.
4881         (sh_expand_prologue): Update.
4882         (sh_expand_epilogue): Update.
4883         (sh_setup_incoming_varargs): Update.
4884         (sh_allocate_initial_value): Update.
4885         (sh_get_pr_initial_val): Update.
4886         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4887         * config/sh/sh.md (label:): Update.
4888         * config/avr/avr.c (out_movhi_mr_r): Update.
4889         * config/crx/crx.h (enum): Update.
4890         * config/xtensa/xtensa.h (along): Update.
4891         * config/stormy16/stormy16.c Update.
4892         (xstormy16_compute_stack_layout): Update.
4893         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4894         (fr30_expand_prologue): Update.
4895         * config/cris/cris.c (cris_conditional_register_usage): Update.
4896         (cris_reg_saved_in_regsave_area): Update.
4897         (cris_initial_frame_pointer_offset): Update.
4898         (cris_simple_epilogue): Update.
4899         (cris_expand_prologue): Update.
4900         (cris_expand_epilogue): Update.
4901         (cris_expand_pic_call_address): Update.
4902         (cris_asm_output_symbol_ref): Update.
4903         (cris_asm_output_label_ref): Update.
4904         * config/cris/cris.md Update.
4905         * config/iq2000/iq2000.c (compute_frame_size): Update.
4906         (iq2000_expand_epilogue): Update.
4907         * config/mt/mt.h (save_direction): Update.
4908         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4909         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4910         (ia64_secondary_reload_class): Update.
4911         * config/m68k/m68k.c (m68k_save_reg): Update.
4912         (m68k_expand_prologue): Update.
4913         (m68k_expand_epilogue): Update.
4914         (legitimize_pic_address): Update.
4915         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4916         (first_reg_to_save): Update.
4917         (first_altivec_reg_to_save): Update.
4918         (compute_vrsave_mask): Update.
4919         (compute_save_world_info): Update.
4920         (rs6000_stack_info): Update.
4921         (spe_func_has_64bit_regs_p): Update.
4922         (rs6000_ra_ever_killed): Update.
4923         (rs6000_emit_eh_reg_restore): Update.
4924         (rs6000_emit_allocate_stack): Update.
4925         (rs6000_emit_prologue): Update.
4926         (rs6000_emit_epilogue): Update.
4927         (rs6000_output_function_epilogue): Update.
4928         (output_profile_hook): Update.
4929         (rs6000_elf_declare_function_name): Update.
4930         * config/rs6000/rs6000.h (rs6000_args): Update.
4931         * config/rs6000/rs6000.md: Update.
4932         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4933         * config/arc/arc.c (arc_output_function_epilogue): Update.
4934         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4935         * config/darwin.c (machopic_function_base_name): Update.
4936         * config/score/score3.c (score3_compute_frame_size): Update.
4937         (rpush): Update.
4938         (rpop): Update.
4939         (score3_epilogue): Update.
4940         * config/score/score7.c (score7_compute_frame_size): Update.
4941         (score7_prologue): Update.
4942         (score7_epilogue): Update.
4943         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4944         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4945         * config/arm/arm.c (use_return_insn): Update.
4946         (require_pic_register): Update.
4947         (arm_load_pic_register): Update.
4948         (arm_compute_save_reg0_reg12_mask): Update.
4949         (arm_compute_save_reg_mask): Update.
4950         (thumb1_compute_save_reg_mask): Update.
4951         (output_return_instruction): Update.
4952         (arm_output_function_prologue): Update.
4953         (arm_output_epilogue): Update.
4954         (arm_get_frame_offsets): Update.
4955         (arm_expand_prologue): Update.
4956         (thumb_pushpop): Update.
4957         (thumb_exit): Update.
4958         (thumb1_expand_prologue): Update.
4959         (thumb1_expand_epilogue): Update.
4960         (arm_unwind_emit): Update.
4961         (arm_output_fn_unwind): Update.
4962         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4963         * config/arm/arm.md: Update.
4964         * config/pa/pa.md: Update.
4965         * config/pa/pa.c (legitimize_pic_address): Update.
4966         (compute_frame_size): Update.
4967         (hppa_expand_prologue): Update.
4968         (hppa_expand_epilogue): Update.
4969         (borx_reg_operand): Update.
4970         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4971         (HARD_REGNO_RENAME_OK): Update.
4972         * config/mips/mips.c (mips_global_pointer): Update.
4973         (mips_save_reg_p): Update.
4974         (mips_compute_frame_info): Update.
4975         (mips_frame_pointer_required): Update.
4976         (mips_expand_prologue): Update.
4977         (mips_expand_epilogue): Update.
4978         (mips_can_use_return_insn): Update.
4979         (mips_reorg_process_insns): Update.
4980         * config/v850/v850.c (compute_register_save_size): Update.
4981         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4982         * config/mmix/mmix.c (along): Update.
4983         (mmix_expand_epilogue): Update.
4984         * config/bfin/bfin.c (legitimize_pic_address): Update.
4985         (must_save_p): Update.
4986         (stack_frame_needed_p): Update.
4987         (add_to_reg): Update.
4988         (bfin_expand_prologue): Update.
4989         * stmt.c (expand_asm_operands): Update.
4990         * reload1.c (reload): Update.
4991         (init_elim_table): Update.
4992
4993 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4994         
4995         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4996         
4997 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4998
4999         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
5000         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
5001         (mov<mode>): Removed.
5002         (*movv4sf_internal): Likewise.
5003         (*movv2df_internal): Likewise.
5004
5005 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
5006
5007         * config.gcc (crx-*-elf): Remove deprecation.
5008
5009 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
5010
5011         * config/i386/cygming-crtend.c (register_frame_ctor): Register
5012         __gcc_deregister_frame with atexit.
5013         (deregister_frame_dtor): Remove.
5014
5015 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
5016             Nathan Sidwell  <nathan@codesourcery.com>
5017
5018         * config/rs6000/rs6000.opt (mspe): Remove Var property.
5019         (misel): Likewise.
5020         * config/rs6000/rs6000.h (rs6000_spe): Declare.
5021         (rs6000_isel): Likewise.
5022         * config/rs6000/rs6000.c (rs6000_spe): New variable.
5023         (rs6000_isel): New variable.
5024         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
5025
5026 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5027
5028         PR c++/35758
5029         * c-common.c (handle_vector_size_attribute): Call
5030         lang_hooks.types.reconstruct_complex_type instead of
5031         reconstruct_complex_type.
5032         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
5033         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
5034         * langhooks.h (struct lang_hooks_for_types): Add
5035         reconstruct_complex_type hook.
5036         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
5037         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
5038
5039 2008-04-24  Richard Guenther  <rguenther@suse.de>
5040
5041         * c-common.h (check_builtin_function_arguments): Declare.
5042         * c-common.c (validate_nargs): New function.
5043         (check_builtin_function_arguments): Likewise.
5044         * c-typeck.c (build_function_call): Call
5045         check_builtin_function_arguments.
5046         * builtins.c (fold_builtin_classify): Remove error reporting code.
5047         (fold_builtin_unordered_cmp): Likewise.
5048         (fold_builtin_1): Likewise.
5049         (fold_builtin_n): Likewise.
5050
5051 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5052
5053         PR tree-optimization/36008
5054         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
5055         the original op1, rather than delta by step.
5056
5057 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
5058             Sebastian Pop  <sebastian.pop@amd.com>
5059
5060         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
5061         eliminate_local_variables_stmt, eliminate_local_variables,
5062         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
5063         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
5064         of code delimited by two edges in the CFG.
5065         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
5066         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
5067         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
5068         the case of parallelisation of reductions.
5069         (expr_invariant_in_region_p): New.
5070
5071         * tree-flow.h (gather_blocks_in_sese_region): Declared.
5072         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
5073
5074 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5075             Richard Guenther  <rguenther@suse.de>
5076
5077         PR tree-optimization/36034
5078         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
5079         incapable of dealing with loads with gaps.
5080
5081 2008-04-24  Rafael Espindola  <espindola@google.com>
5082
5083         * tree-flow.h (vrp_evaluate_conditional): Change signature.
5084         * tree-ssa-propagate.c (fold_predicate_in): Update call to
5085         vrp_evaluate_conditional.
5086         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
5087         (vrp_evaluate_conditional): Split the cond argument.
5088         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
5089         (simplify_stmt_for_jump_threading): Update call to
5090         vrp_evaluate_conditional.
5091
5092 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5093
5094         PR tree-optimization/35982
5095         * tree-vect-analyze.c (vect_check_interleaving): Check that the
5096         interleaved data-refs are of the same type.
5097
5098 2008-04-24  Danny Smith  <dannysmith@users.net>
5099
5100         * c-format.c (check_format_info_main): Use strncmp rather than a
5101         magic prefix to handle multichar length specs.
5102         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
5103         Don't prefix "I64" and "I32" with '\0'.
5104
5105 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5106
5107         PR target/36015
5108         * config/i386/i386.c (init_cumulative_args): Don't pass anything
5109         in registers for -m32 only if stdarg_p (fntype).
5110
5111 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
5112
5113         PR rtl-optimization/36006
5114         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
5115         temp to op0 in order to avoid invalid rtx sharing.
5116
5117 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
5118
5119         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
5120         check TREE_INVARIANT.
5121         * tree-gimple.c (is_gimple_address): New.
5122         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
5123         * tree-gimple.h (is_gimple_address): New.
5124         * tree.h (decl_address_invariant_p): New.
5125         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
5126         (build_string): Likewise.
5127         (decl_address_invariant_p): New, from is_gimple_invariant_address.
5128         (tree_invariant_p_1): Likewise.
5129         (save_expr): Use it.
5130         (tree_invariant_p): New.
5131         (skip_simple_arithmetic): Use it.
5132         (stabilize_reference_1): Use it.
5133         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
5134         simplify.
5135         (build1_stat): Drop code to compute TREE_INVARIANT.
5136         (build2_stat): Drop code to compute TREE_INVARIANT.
5137         (build3_stat): Drop code to compute TREE_INVARIANT.
5138         (build4_stat): Drop code to compute TREE_INVARIANT.
5139         (build5_stat): Drop code to compute TREE_INVARIANT.
5140         (build7_stat): Drop code to compute TREE_INVARIANT.
5141         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
5142         * tree.h (struct tree_base): Remove invariant_flag.
5143         (TREE_INVARIANT): Remove.
5144         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
5145         (fold_builtin_expect): Check TREE_CONSTANT.
5146         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
5147         * c-tree.h (c_expr_to_decl): Drop third parameter.
5148         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
5149         (build_c_cast): Don't set TREE_INVARIANT.
5150         (pop_init_level): Don't set TREE_INVARIANT.
5151         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
5152         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
5153         TREE_CONSTANT.
5154         (gimplify_init_constructor): Don't set TREE_INVARIANT.
5155         (gimplify_addr_expr): Adjust comment.
5156         * tree-mudflap.c (mf_build_string):
5157         * print-tree.c (print_node): Don't print TREE_INVARIANT.
5158         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
5159         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
5160         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
5161         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
5162         * langhooks.h (struct lang_hooks): Drop third parameter from
5163         expr_to_decl.
5164
5165 2008-04-23  Richard Guenther  <rguenther@suse.de>
5166
5167         PR tree-optimization/27799
5168         PR tree-optimization/32921
5169         PR tree-optimization/32624
5170         * tree-ssa-structalias.c (merge_smts_into): Only merge the
5171         SMTs aliases and the tag itself into the solution.
5172         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
5173         merge the points-to solution back into the SMT aliases.
5174         (may_alias_p): Use alias_set_subset_of instead of
5175         aliases_conflict_p.  A pointer which points to
5176         memory with alias set zero may access any variable.
5177
5178 2008-04-23  Richard Guenther  <rguenther@suse.de>
5179
5180         * alias.c (alias_set_subset_of): Correctly handle asking
5181         if zero is a subset of an alias set with zero child.
5182         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
5183         (compute_flow_insensitive_aliasing): Correctly walk all
5184         pointers.  Do not unnecessarily union sets.
5185
5186 2008-04-23  Richard Guenther  <rguenther@suse.de>
5187
5188         PR middle-end/36021
5189         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
5190
5191 2008-04-22  Tomas Bily  <tbily@suse.cz>
5192
5193         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
5194         unreachable case.
5195         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
5196         NON_LVALUE_EXPR.
5197         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5198         * tree-ssa-structalias.c (get_constraint_for): Likewise.
5199         * tree-inline.c (estimate_num_insns_1): Likewise.
5200         * varasm.c (const_hash_1, compare_constant, copy_constant)
5201         (compute_reloc_for_constant, output_addressed_constants): Likewise.
5202         * emit-rtl.c (component_ref_for_mem_expr)
5203         (set_mem_attributes_minus_bitpos): Likewise.
5204         * expr.c (highest_pow2_factor, expand_expr_real_1, )
5205         (is_aligning_offset): Likewise.
5206         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
5207         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5208         * dojump.c (do_jump): Likewise.
5209         * builtins.c (get_pointer_alignment, get_memory_rtx)
5210         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
5211         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
5212
5213 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
5214
5215         PR rtl-optimization/36017
5216         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
5217         expanding the library call.
5218
5219 2008-04-22  Ian Lance Taylor  <iant@google.com>
5220
5221         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
5222         than size_in_bytes.
5223
5224 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
5225
5226         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
5227         of LR/CTR moves for Power6.
5228
5229 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
5230
5231         PR middle-end/36003
5232         * passes.c (init_optimization_passes): Remove
5233         pass_fast_rtl_byte_dce.
5234         
5235 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
5236
5237         PR target/29096
5238         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
5239         builtin functions to generate faster code.
5240         (_mm_cvtpu16_ps): Ditto.
5241         (_mm_cvtpi32x2_ps): Ditto.
5242
5243 2008-04-22  Nick Clifton  <nickc@redhat.com>
5244
5245         * common.opt (ftree-loop-distribution): Add Optimization
5246         attribute.
5247
5248         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
5249         (frv_expand_builtin_va_start): Likewise.
5250
5251         * config/arm/arm.c (thumb_find_work_register): Fix location of
5252         argument register count.
5253
5254 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5255
5256         Support scheduling for ColdFire V1 and V3 microarchitecture.
5257         Improve scheduling of multiplication instructions.
5258
5259         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
5260         (mac): New instruction attribute.
5261         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
5262         (m68k_sched_mac): New variable.
5263         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
5264         Handle cfv1 and cfv3.
5265         (max_insn_size): New static variable.
5266         (struct _sched_ib): New type.
5267         (sched_ib): New static variable.
5268         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
5269         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
5270         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
5271         Update.
5272         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
5273         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
5274         new variables.  Update.
5275         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5276         Add modeling of cfv3 instruction buffer.  Update.
5277         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
5278         * config/m68k/m68k.h (TUNE_CFV3): New macro.
5279         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
5280         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
5281         a particular reservation applies to.
5282         (type2): Reorganize attribute values.  Rename alu to alu_reg,
5283         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
5284         to mul_l and mul_w.
5285         (cf_ib_*): Simplify description of instruction buffer.
5286         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
5287         (cf_mem): Split into cf_mem1 and cf_mem2.
5288         (cf_v2_move_??): Rename to cfv12_alu_??.
5289         (cf_v2_move_l_??): Rename to cfv12_omove_??.
5290         (cf_v2_mul_??): Remove reservations.
5291         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
5292         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
5293         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
5294         appropriate place.
5295         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
5296         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
5297         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
5298         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
5299         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
5300         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
5301         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
5302         expansions of the above reservations for instructions of sizes
5303         1, 2 and 3 words.
5304
5305 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5306
5307         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
5308
5309 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
5310
5311         * coverage.c: Include tree-pass.h.
5312         (coverage_counter_alloc): Print da_file_name to the dump file.
5313
5314 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
5315
5316         * sbitmap.c (sbitmap_range_empty_p): New function.
5317         * sbitmap.h (sbitmap_range_empty_p): New function.
5318         * bitmap.h: Now includes obstack.h.
5319
5320 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
5321             Kenneth Zadeck  <zadeck@naturalbridge.com>
5322
5323         * dbgcnt.def (ra_byte_scan): Added.
5324         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
5325         when the last hit happens for a counter.  
5326         * timevar.def (TV_DF_BYTE_LR): New variable.
5327         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
5328         * passes.c (pass_fast_rtl_byte_dce): New pass.
5329         * fwprop.c (update_df): Added mode to call df_ref_create.
5330         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5331         DF_REF_EXTRACT_OFFSET.
5332         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
5333         DF_BYTE_LR_OUT, df_byte_lr): New macro.
5334         (df_mm): New enum.
5335         (df_ref_extract): Added mode field.
5336         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
5337         DF_REF_EXTRACT_OFFSET.
5338         (DF_REF_EXTRACT_MODE): New macro.
5339         (df_byte_lr_bb_info): New structure.
5340         (df_print_byte_regset, df_compute_accessed_bytes, 
5341         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
5342         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
5343         df_byte_lr_simulate_uses,
5344         df_byte_lr_simulate_artificial_refs_at_top,
5345         df_byte_lr_simulate_artificial_refs_at_end,
5346         df_compute_accessed_bytes): New function.
5347         (df_ref_create): Add parameter.
5348         (df_byte_lr_get_bb_info): New inline function.
5349         * df-scan.c (df_ref_record, df_uses_record,
5350         df_ref_create_structure): Added mode parameter.
5351         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
5352         df_defs_record, df_uses_record, df_get_conditional_uses,
5353         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
5354         df_entry_block_defs_collect, df_exit_block_uses_collect):
5355         Added mode parameter to calls to df_ref_record, df_uses_record,
5356         df_ref_create_structure.
5357         (df_ref_equal_p, df_ref_compare): Added test for modes.
5358         (df_ref_create_structure): Added code to set mode.  Renamed
5359         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5360         DF_REF_EXTRACT_OFFSET.
5361         * df-core.c (df_print_byte_regset): New function.
5362         * df-byte-scan.c: New file.
5363         * df-problems.c (df_rd_transfer_function): Removed unnecessary
5364         calls to BITMAP_FREE.  
5365         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5366         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5367         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
5368         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
5369         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5370         df_byte_lr_local_compute, df_byte_lr_init,
5371         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
5372         df_byte_lr_transfer_function, df_byte_lr_free, 
5373         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5374         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
5375         df_byte_lr_simulate_uses,
5376         df_byte_lr_simulate_artificial_refs_at_top,
5377         df_byte_lr_simulate_artificial_refs_at_end): New function.
5378         * dce.c (byte_dce_process_block): New function.
5379         (dce_process_block): au is now passed in rather than computed
5380         locally.  Changed loops that look at artificial defs to not look
5381         for conditional or partial ones, because there never are any.  
5382         (fast_dce): Now is able to drive byte_dce_process_block or 
5383         dce_process_block depending on the kind of dce being done.
5384         (rest_of_handle_fast_dce): Add parameter to fast_dce.
5385         (rest_of_handle_fast_byte_dce): New function.
5386         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5387         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5388
5389 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5390
5391         PR fortran/35019
5392         * gcc.h: Added fortran options that take arguments to
5393         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5394         macros.
5395
5396 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5397
5398         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5399         scalarization if on the LHS and not a full access.
5400
5401 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5402
5403         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5404
5405 2008-04-18  Rafael Espindola  <espindola@google.com>
5406
5407         * tree-vrp.c (find_case_label_index): Fix the binary search.
5408         (find_case_label_range): New.
5409         (vrp_visit_switch_stmt): Use find_case_label_range.
5410         (simplify_switch_using_ranges): Use find_case_label_range.
5411
5412 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5413
5414         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5415         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5416
5417 2008-04-18  Tom Tromey  <tromey@redhat.com>
5418
5419         PR libcpp/15500:
5420         * doc/cpp.texi (Implementation-defined behavior): Mention
5421         -finput-charset.
5422
5423 2008-04-18  Ian Lance Taylor  <iant@google.com>
5424
5425         * fold-const.c (pointer_may_wrap_p): New static function.
5426         (fold_comparison): Add another test for pointer overflow.  Use
5427         pointer_may_wrap_p to disable some false positives.
5428
5429 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5430           
5431         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5432         (fname_as_string): Match updated cpp_interpret_string prototype.
5433         (fix_string_type): Support char16_t* and char32_t*.
5434         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5435         derivative) nodes.  Register as builtin if C++0x.
5436         (c_parse_error): Support CPP_CHAR{16,32}.
5437         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5438         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5439         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5440         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5441         CTI_CHAR32_ARRAY_TYPE>: New elements.
5442         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5443         char32_type_node, signed_char32_type_node, char16_array_type_node,
5444         char32_array_type_node): New defines.
5445         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5446         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5447         (lex_string): Support CPP_STRING{16,32}, match updated
5448         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5449         (lex_charconst): Support CPP_CHAR{16,32}.
5450         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5451         and CPP_STRING{16,32}.
5452
5453 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5454
5455         PR bootstrap/35457
5456         * aclocal.m4: Regenerate.
5457         * configure: Regenerate.
5458
5459 2008-04-18  Jan Hubicka  <jh@suse.cz>
5460
5461         * except.c (dw2_size_of_call_site_table,
5462         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5463
5464         * cgraphbuild.c (build_cgraph_edges): Update.
5465         * tree-pass.h: Update comment.
5466         * final.c (leaf_function_p): Update.
5467         (leaf_renumber_regs): Update.
5468         (rest_of_clean_state): Update.
5469         * omp-low.c (expand_omp_parallel): Update.
5470         * ipa-reference.c (analyze_function): Update.
5471         * reorg.c (find_end_label): Update.
5472         (optimize_skip): Update.
5473         (fill_simple_delay_slots): Update.
5474         (fill_simple_delay_slots): Update.
5475         (make_return_insns): Update.
5476         (dbr_schedule): Update.
5477         * gimple-low.c (record_vars_into): Update.
5478         * cfgbuild.c (make_edges): Update.
5479         * function.c (assign_stack_local): Update.
5480         (assign_parm_adjust_stack_rtl): Update.
5481         (locate_and_pad_parm): Update.
5482         (allocate_struct_function): Do not initialize stack_alignment_needed
5483         and preferred_stack_boundary here.
5484         (stack_protect_prologue): Update.
5485         (stack_protect_epilogue): Update.
5486         (expand_function_start): Initialize stack_alignment_needed,
5487         preferred_stack_boundary and max_jumptable_ents.
5488         (expand_function_end): Update.
5489         (free_after_compilation): Do not NULLify epilogue_delay_list.
5490         * function.h (struct rtl_data): Add stack_protect_guard,
5491         stack_alignment_needed,
5492         preferred_stack_boundary, epilogue_delay_list.
5493         (struct function): Remove value_histograms, stack_alignment_needed,
5494         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5495         last_label_uid,
5496         unexpanded_var_list, stack_protect_guard.
5497         (current_function_epilogue_delay_list): Remove.
5498         * ipa-type-escape.c (analyze_function): Update.
5499         * gimplify.c (pop_gimplify_context): Update comment.
5500         * calls.c (expand_call): Update.
5501         (emit_library_call_value_1): Update.
5502         * except.c (set_nothrow_function_flags): Update.
5503         * cfgexpand.c (get_decl_align_unit): Update.
5504         (create_stack_guard): Update.
5505         (estimated_stack_frame_size): Update.
5506         (expand_used_vars): Update.
5507         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5508         * explow.c (allocate_dynamic_stack_space): Update.
5509         * tree-ssa-live.c (remove_unused_locals): Update.
5510         * varasm.c (mark_constant_pool): Update.
5511         * tree-inline.c (remap_decls): Update.
5512         (initialize_cfun): Update.
5513         (declare_return_variable): Update.
5514         (inline_forbidden_p): Update.
5515         (expand_call_inline): Update.
5516         (declare_inline_vars): Update.
5517         (tree_function_versioning): Update.
5518         * tree-flow.h (value_histograms): New.
5519         (VALUE_HISTOGRAMS): New macro.
5520         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5521         last_label_uid.
5522         * tree-cfg.c (set_bb_for_stmt): Update.
5523         (replace_by_duplicate_decl): Update.
5524         (move_block_to_fn): Update.
5525         (new_label_mapper): Update.
5526         (dump_function_to_file): Update.
5527         * ipa-struct-reorg.c (build_data_structure): Update.
5528         * cfgrtl.c (print_rtl_with_bb): Update.
5529         * reload1.c (reload): Update.
5530         (reload): Update.
5531         * config/i386/i386.c (setup_incoming_varargs_64,
5532         ix86_compute_frame_layout): Update.
5533         * config/arc/arc.c (arc_output_function_epilogue): Update.
5534
5535 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5536
5537         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5538         for FreeBSD as well.
5539         * gthr-posix95.h: Likewise.
5540
5541 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5542
5543         PR rtl-optimization/35838
5544         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5545         out the byte offset of the first subreg.
5546
5547 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5548
5549         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5550         to split_ti instead of three separate calls with single member arrays.
5551         (subti3 splitter): Ditto.
5552         (adddi3 splitter): Ditto with split_di.
5553         (subdi3 splitter): Ditto.
5554         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5555         two separate calls with single member arrays.  Swap match_dup
5556         operands 1 and 2 to better fit into the array.
5557         (negdi2 splitter): Ditto with split_di.
5558         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5559         two separate calls with single member arrays.  Swap match_dup operands
5560         6 and 7 to better fit into the array.
5561
5562 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5563
5564         * config/i386/i386.c (sse_builtin_type): New.
5565         (bdesc_sse_args): Likewise.
5566         (bdesc_sse_3arg): Removed.
5567         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5568         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5569         IX86_BUILTIN_ROUNDPS.
5570         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5571         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5572         IX86_BUILTIN_ROUNDPS.
5573         (ix86_expand_sse_4_operands_builtin): Removed.
5574         (ix86_expand_sse_operands_builtin): New.
5575         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5576         and CODE_FOR_sse4_1_roundps.
5577         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5578         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5579
5580 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5581
5582         PR target/35907
5583         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5584         regs before frame pop when needed.  If use_backchain_to_restore_sp
5585         then load backchain into a temp reg to restore vr and vrsave.  Add
5586         code to restore vr after frame pop if possible.
5587
5588 2008-04-17  Richard Guenther  <rguenther@suse.de>
5589
5590         * tree-vn.c (expressions_equal_p): Do not check type
5591         equality or compatibility before calling operand_equal_p.
5592         * fold-const.c (operand_equal_p): Check equivalence of
5593         integer constants before bailing out due to signedness or
5594         precision differences.
5595         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5596         spurious differences in type qualification.  Ignore types
5597         for COMPONENT_REFs at all.
5598
5599 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5600
5601         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5602         msw_skip comparison.
5603         
5604 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5605
5606         PR c/35739
5607         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5608         reg type.
5609
5610         PR tree-optimization/35899
5611         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5612         rather than TREE_OPERAND.
5613
5614 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5615
5616         PR target/35944
5617         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5618         temporary registers.  Change operand predicate to general_operand.
5619         (remainderxf3): Ditto.
5620
5621 2008-04-16  Richard Guenther  <rguenther@suse.de>
5622
5623         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5624         * tree-affine.c (aff_combination_expand): Look through some
5625         conversions.
5626
5627 2008-04-15  Doug Kwan  <dougkwan@google.com>
5628
5629         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5630         for hex printing.
5631         * tree-pretty-print.c (dump_generic_node): Ditto.
5632         * final.c (output_addr_const): Ditto.
5633         * dwarf2out.c (output_cfi): Ditto.
5634         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5635         * print-rtl.c (print_rtx): Ditto.
5636         * print-tree.c (print_node_brief, print_node): Ditto.
5637         * c-common.c (match_case_to_enum_1): Ditto.
5638         * sched-vis.c (print_value): Ditto.
5639         * config/i386/i386.c (print_operand): Cast to long unsigned int
5640         for hex printing.
5641
5642 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5643         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5644         MS Windows VirtualProtect function.
5645
5646 2008-04-15  Jan Hubicka  <jh@suse.cz>
5647
5648         * gengtype.c (write_root): Param_is argument is OK.
5649         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5650         * function.h: Include varray.h
5651         (rtl_eh): New stucture based on except.c one.
5652         (call_site_record): New forward declaration and vector type.
5653         * calls.c (emit_call_1): Do not call
5654         note_current_region_may_contain_throw.
5655         * except.c (eh_status): Remove cur_region, try_region since they are
5656         unused.
5657         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5658         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5659         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5660         Remove call_site_data_used, call_site_data_size.
5661         Turn call_site_record into vector in function.h.
5662         (note_current_region_may_contain_throw): Remove.
5663         (get_exception_pointer, get_exception_filter): Do not take struct
5664         function argument; update.
5665         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5666         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5667         build_post_landing_pads, dw2_build_landing_pads,
5668         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5669         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5670         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5671         sjlj_build_landing_pads, finish_eh_generation,
5672         remove_exception_handler_label, remove_eh_handler,
5673         maybe_remove_eh_handler, add_reachable_handler,
5674         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5675         add_action_record, collect_one_action_chain, add_call_site,
5676         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5677         sjlj_output_call_site_table, output_function_exception_table,
5678         * except.h (note_current_region_may_contain_throw): Remove
5679         (get_exception_pointer, get_exception_filter): Do not take struct
5680         function argument.
5681         * Makefile.in (GTFILES): Put varargs before struct function.
5682
5683 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5684
5685         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5686         punt for STRING_CST.
5687         (get_constraint_for): Deal with STRING_CST here instead.
5688
5689 2008-04-15  Richard Guenther  <rguenther@suse.de>
5690
5691         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5692         statements in a basic-block with a backward walk.  Do not
5693         substitute into dead statements but instead remove those.
5694
5695 2008-04-15  Richard Guenther  <rguenther@suse.de>
5696
5697         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5698         to zero, thus disable creation of SFTs.
5699
5700 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5701
5702         * tree-predcom.c (suitable_reference_p): Return false if the
5703         reference can throw.
5704
5705 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5706
5707         PR c/35751
5708         * c-decl.c (finish_decl): If extern or static var has variable
5709         size, set TREE_TYPE (decl) to error_mark_node.
5710
5711 2008-04-15  Rafael Espindola  <espindola@google.com>
5712
5713         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5714         variable arg1.
5715
5716 2008-04-15  Richard Guenther  <rguenther@suse.de>
5717
5718         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5719         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5720         (visit_reference_op_load): Do walk vuse-vdef chains on
5721         vn_reference_lookup.
5722         (visit_reference_op_store): But do not here.
5723         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5724         vn_reference_lookup.
5725         (vn_lookup_with_vuses): But do so here.
5726
5727 2008-04-14  Ian Lance Taylor  <iant@google.com>
5728
5729         * fold-const.c (fold_overflow_warning): Remove assertion.
5730
5731 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5732
5733         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5734         temp1 local variables.
5735
5736 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5737
5738         PR target/35661
5739         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5740         ".text.unlikely" section as executable.
5741
5742 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5743
5744         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5745         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5746         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5747         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5748         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5749         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5750         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5751
5752 2008-04-14  Ian Lance Taylor  <iant@google.com>
5753
5754         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5755         * fold-const.c (fold_comparison): If appropriate, test
5756         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5757         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5758         reassociating a pointer type.
5759         * doc/invoke.texi (Optimize Options): Document that
5760         -fstrict-overflow applies to pointer wraparound.
5761
5762 2008-04-13  Jan Hubicka  <jh@suse.cz>
5763
5764         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5765
5766 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5767
5768         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5769         we are going to "save the world".
5770
5771 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5772
5773         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5774         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5775         operand 0 constraint, not "=".
5776
5777 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5778
5779         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5780
5781 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5782
5783         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5784         of size of positions_needed * CHAR_BIT.
5785
5786 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5787
5788         PR middle-end/35897
5789         * dse.c (store_info): Change positions_needed to unsigned
5790         HOST_WIDE_INT.
5791         (lowpart_bitmask): New.
5792         (record_store): Cast to unsigned HOST_WIDE_INT for
5793         positions_needed.  Assert width <= size of positions_needed *
5794         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5795         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5796         lowpart_bitmask to set mask.
5797
5798 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5799
5800         * config/bfin/constraints.md: New file.
5801         * config/bfin/bfin.md: Include it.
5802         (adddi3): Use satisfies_constraint functions instead of the old macros.
5803         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5804         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5805         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5806         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5807         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5808         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5809         EXTRA_CONSTRAINT): Delete.
5810         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5811         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5812         of the old macros.
5813         * config/bfin/bfin.c: Include "tm-constrs.h".
5814         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5815         Use satisfies_constraint functions instead of the old macros.
5816         * doc/md.texi (Blackfin Constraints): Update file name reference.
5817
5818 2008-04-11  Richard Guenther  <rguenther@suse.de>
5819
5820         PR tree-optimization/35869
5821         * tree-vrp.c (execute_vrp): Move switch statement update after
5822         jump threading.  Schedule another cfg cleanup run.
5823
5824 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5825
5826         PR c/35744
5827         * attribs.c (decl_attributes): Return early on errorneous node.
5828
5829 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5830
5831         * tree.h (struct tree_base): Added a new flag default_def_flag.
5832         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5833
5834 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5835
5836         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5837
5838 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5839
5840         PR target/35768
5841         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5842         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5843         (icacheflush): Likewise.
5844         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5845         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5846
5847 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5848
5849         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5850
5851 2008-04-10  Rafael Espindola  <espindola@google.com>
5852
5853         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5854         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5855         (extract_range_from_expr): The same.
5856
5857 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5858
5859         * config/mips/mips.md (GPR2): New mode iterator.
5860         (seq): Add comment.
5861         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5862         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5863         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5864         Rewrite these to take two modes, the mode of comparison and the
5865         mode of the destination.
5866         * config/mips/mips.c (mips_expand_scc): Instead of having
5867         paradoxical subreg as destination, expand "narrowing" scc if mode
5868         of comparison is SI and target is requested in DI mode.
5869         (mips_emit_int_order_test): Update comment.  Make mode of
5870         comparison match CMP0 rather than TARGET.  When creating inverse
5871         target use mode of TARGET.
5872
5873 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5874
5875         * gcov-dump.c (tag_summary): Only print summaries for the first
5876         GCOV_COUNTERS_SUMMABLE counters.
5877
5878 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5879
5880         * config/i386/i386.md (absneg): New code iterator.
5881         (absnegprefix): New code attribute.
5882         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5883         patterns using absneg code iterator.
5884         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5885         using absneg code iterator.
5886         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5887         *neg<mode>2 patterns using absneg code iterator.
5888         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5889         *negextendsfdf2 patterns using absneg code iterator.
5890         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5891         *negextendsfxf2 patterns using absneg code iterator.
5892         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5893         *negextendsfdf2 patterns using absneg code iterator.
5894         * config/i386/sse.md (<code><mode>2): Macroize expander from
5895         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5896
5897 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5898
5899         * config/s390/s390.h: Remove the remains of the recent search
5900         & replace action of current_function_outgoing_args_size.
5901
5902 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5903
5904         PR tree-optimization/35821
5905         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5906         NEW_STMT_LIST is not NULL.
5907
5908 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5909
5910         PR libstdc++/35597
5911         * toplev.c (process_options): Remove -ffunction-sections debugging
5912         warning.
5913
5914 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5915
5916         PR middle-end/PR28690
5917         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5918         than gen_rtx_fmt_ee to perform more canonicalizations.
5919
5920 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5921
5922         PR driver/35665
5923         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5924
5925 2008-04-09  Richard Guenther  <rguenther@suse.de>
5926
5927         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5928         (dump_function_to_file): Dump function arguments with types.
5929
5930 2008-04-08  Richard Guenther  <rguenther@suse.de>
5931
5932         * fold-const.c (fold_widened_comparison): Do not allow
5933         sign-changes that change the result.
5934
5935 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5936
5937         PR target/35839
5938         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5939         kinds of indirect references.
5940
5941 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5942
5943         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5944         GNU Fortran language string.
5945
5946 2008-04-08  Rafael Espindola  <espindola@google.com>
5947
5948         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5949         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5950         * tree.h (tree_call_nonnegative_warnv_p): New.
5951
5952 2008-04-08  Jan Hubicka  <jh@suse.cz>
5953
5954         * function.c (free_after_compilation): Clear out regno_reg_rtx
5955         pointer.
5956
5957 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5958
5959         Revert
5960         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5961
5962         PR middle-end/PR28690
5963         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5964         same precedence as REG_POINTER and MEM_POINTER operands.
5965
5966 2008-04-08  Richard Guenther  <rguenther@suse.de>
5967
5968         PR middle-end/35834
5969         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5970         for adding index to base.
5971
5972 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5973
5974         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5975         (MINGW_ENABLE_EXECUTE_STACK): New.
5976         (IN_LIBGCC2): For libgcc include windows.h file for
5977         function declarations.
5978
5979 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5980
5981         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5982         and tem2 if tem1 is not a REG or MULT.
5983
5984 2008-04-08  Jan Hubicka  <jh@suse.cz>
5985
5986         * function.h (incomming_args): Break out of struct function.
5987         (function_subsections): Break out of struct function.
5988         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5989         return_rtx and hard_reg_initial_vals from struct function.
5990         Kill inl_max_label_num.
5991         (current_function_pops_args, current_function_args_info,
5992         current_function_args_size, current_function_args_size,
5993         current_function_pretend_args_size,
5994         current_function_outgoing_args_size,
5995         current_function_internal_arg_pointer, current_function_return_rtx):
5996         Kill compatibility accestor macros.
5997         * builtins.c (expand_builtin_apply_args_1): Update.
5998         (expand_builtin_next_arg): Update.
5999         * df-scan.c (df_get_call_refs): Update.
6000         * dbxout.c (dbxout_function_end): Update.
6001         * dwarf2out.c (dwarf2out_switch_text_section): Update.
6002         (output_line_info): Update.
6003         (secname_for_decl): Update.
6004         (dwarf2out_var_location): Update.
6005         * function.c (free_after_compilation): Update.
6006         (assign_parm_find_stack_rtl): Update.
6007         (assign_parms): Update.
6008         (expand_dummy_function_end): Update.
6009         (expand_function_end): Update.
6010         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
6011         (expand_call): Update.
6012         (emit_library_call_value_1): Update.
6013         (store_one_arg): Update.
6014         * varasm.c (initialize_cold_section_name): Update.
6015         (unlikely_text_section): Update.
6016         (unlikely_text_section_p): Update.
6017         (assemble_start_function): Update.
6018         (assemble_end_function): Update.
6019         (default_section_type_flags): Update.
6020         (switch_to_section): Update.
6021         * integrate.c (set_decl_abstract_flags): Update.
6022         (get_hard_reg_initial_val): Update.
6023         (has_hard_reg_initial_val): Update.
6024         (allocate_initial_values): Update.
6025         * resource.c (init_resource_info): Update.
6026         * config/alpha/alpha.c (NUM_ARGS): Update.
6027         (direct_return): Update.
6028         (alpha_va_start): Update.
6029         (alpha_sa_size): Update.
6030         (alpha_initial_elimination_offset): Update.
6031         (alpha_expand_prologue): Update.
6032         (alpha_start_function): Update.
6033         (alpha_expand_epilogue): Update.
6034         (unicosmk_initial_elimination_offset):
6035         * config/alpha/alpha.md (call expander): Update.
6036         * config/s390/s390.c (s390_register_info): Update.
6037         (s390_register_info): Update.
6038         (s390_frame_info): Update.
6039         (s390_initial_elimination_offset): Update.
6040         (s390_build_builtin_va_list): Update.
6041         (s390_va_start): Update.
6042         * config/spu/spu.c (direct_return): Update.
6043         (spu_expand_prologue): Update.
6044         (spu_initial_elimination_offset): Update.
6045         (spu_build_builtin_va_list): Update.
6046         (spu_va_start): Update.
6047         * config/sparc/sparc.c (sparc_init_modes): Update.
6048         (sparc_compute_frame_size): Update.
6049         (function_value): Update.
6050         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
6051         * config/i386/i386.md (return expander): Update.
6052         * config/i386/i386.c (ix86_va_start): Update.
6053         (ix86_can_use_return_insn_p): Update.
6054         (ix86_compute_frame_layout): Update.
6055         (ix86_expand_epilogue): Update.
6056         * config/sh/sh.c (output_stack_adjust): Update.
6057         (calc_live_regs): Update.
6058         (sh_expand_prologue): Update.
6059         (sh_builtin_saveregs): Update.
6060         (sh_va_start): Update.
6061         (initial_elimination_offset): Update.
6062         (sh_allocate_initial_value): Update.
6063         (sh_function_ok_for_sibcall): Update.
6064         (sh_get_pr_initial_val): Update.
6065         * config/sh/sh.md (return expander): Update.
6066         * config/avr/avr.c (frame_pointer_required_p): UPdate.
6067         * config/crx/crx.c (crx_compute_frame): UPdate.
6068         (crx_initial_elimination_offset): UPdate.
6069         * config/xtensa/xtensa.c (compute_frame_size): Update
6070         (xtensa_builtin_saveregs): Update.
6071         (xtensa_va_start): Update.
6072         (order_regs_for_local_alloc): Update.
6073         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
6074         (xstormy16_expand_builtin_va_start): Update.
6075         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
6076         * config/m68hc11/m68hc11.md (return expanders): Update.
6077         * config/m68hc11/m68hc11.c (expand_prologue): Update.
6078         (expand_epilogue): Update.
6079         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
6080         (cris_simple_epilogue): Update.
6081         (cris_expand_prologue): Update.
6082         (cris_expand_epilogue): Update.
6083         * config/iq2000/iq2000.c (iq2000_va_start): Update.
6084         (compute_frame_size): Update.
6085         * config/mt/mt.c (mt_compute_frame_size): Update.
6086         * config/mn10300/mn10300.c (expand_prologue): Update.
6087         (expand_epilogue): Update.
6088         (initial_offset): Update.
6089         (mn10300_builtin_saveregs):
6090         * config/mn10300/mn10300.md (return expander): Update.
6091         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6092         (ia64_initial_elimination_offset): Update.
6093         (ia64_initial_elimination_offset): Update.
6094         (ia64_expand_prologue): Update.
6095         * config/m68k/m68k.md (return expander): Update.
6096         * config/rs6000/rs6000.c (rs6000_va_start): Update.
6097         (rs6000_stack_info): Update.
6098         * config/mcore/mcore.c (layout_mcore_frame): Update.
6099         (mcore_expand_prolog): Update.
6100         * config/arc/arc.c (arc_compute_frame_size): Update.
6101         * config/score/score3.c (score3_compute_frame_size): Update.
6102         * config/score/score7.c (score7_compute_frame_size): Update.
6103         * config/arm/arm.c (use_return_insn): Update.
6104         (thumb_find_work_register): Update.
6105         (arm_compute_save_reg_mask): Update.
6106         (arm_output_function_prologue): Update.
6107         (arm_output_epilogue): Update.
6108         (arm_size_return_regs): Update.
6109         (arm_get_frame_offsets): Update.
6110         (arm_expand_prologue): Update.
6111         (thumb_exit): Update.
6112         (thumb_unexpanded_epilogue): Update.
6113         (thumb1_output_function_prologue): Update.
6114         * config/pa/pa.md (return expander): Update.
6115         * config/pa/pa.c (compute_frame_size): Update.
6116         (hppa_builtin_saveregs): Update.
6117         * config/mips/mips.c (mips_va_start): Update.
6118         (mips16_build_function_stub): Update.
6119         (mips_compute_frame_info): Update.
6120         (mips_restore_gp): Update.
6121         (mips_output_function_prologue): Update.
6122         (mips_expand_prologue): Update.
6123         * config/v850/v850.c (compute_frame_size): Update.
6124         (expand_prologue): * config/mmix/mmix.c (along): update.
6125         (mmix_initial_elimination_offset): update.
6126         (mmix_reorg): update.
6127         (mmix_use_simple_return): update.
6128         (mmix_expand_prologue): update.
6129         (mmix_expand_epilogue): Update.
6130         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
6131         (emit_link_insn): Update.
6132
6133 2008-04-08  Anatoly Sokolov <aesok@post.ru>
6134
6135         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
6136         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
6137         instructions.
6138         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
6139         atmega103 device.
6140
6141 2008-04-07  Jan Hubicka  <jh@suse.cz>
6142
6143         * function.h (rtl): Rename to x_rtl.
6144         (crtl): New define.
6145         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6146         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6147         used_temp_slots avail_temp_slots, temp_slot_level,
6148         nonlocal_goto_handler_labels): Update accesstors.
6149         (rtl): New global variable.
6150         (struct function): Move some fileds to rtl_data.
6151         (get_arg_pointer_save_area): Update prototype.
6152         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6153         get_arg_pointer_save_area.
6154         * expr.c (init_expr): Update
6155         * function.c (get_frame_size): Update
6156         (assign_stack_local): Update
6157         (expand_function_end): Update.
6158         (get_art_pointer_save_area): Update
6159         * function.h 
6160         * emit-rtl.c (rtl): Declare.
6161         (regno_reg_rtx): Declare.
6162         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6163         Update.
6164         (gen_reg_rtx): Update.
6165         * varasm.c (n_deferred_constatns): Update accestor.
6166         (init_varasm_status): Do not allocate varasm_status.
6167         (force_const_mem, get_pool_size, output_constant_pool): Update.
6168         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6169         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6170         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
6171         * sparc/sparc.h (INIT_EXPANDERS): Update.
6172         * ia64/ia64.h (INIT_EXPANDERS): Update.
6173
6174 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
6175
6176         * reload.c (push_secondary_reload): Add missing break to for loop.
6177
6178 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6179
6180         PR middle-end/PR28690
6181         * rtlanal.c: Update copyright years.
6182         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
6183         as REG_POINTER and MEM_POINTER operands.
6184         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
6185         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
6186         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
6187         * gcse.c: Update copyright years.
6188         (pre_delete): Call gen_reg_rtx_and_attrs.
6189         (hoist_code): Likewise.
6190         (build_store_vectors): Likewise.
6191         (delete_store): Likewise.
6192         * loop-invariant.c (move_invariant_reg): Likewise.
6193         Update copyright years.
6194
6195 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
6196
6197         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
6198         control string instead of quoted.
6199
6200 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
6201
6202         * doc/rtl.texi: Rewrite of subreg section.
6203
6204 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
6205
6206         PR/35842
6207         * config/i386/i386.c (legitimize_pic_address): Add treating
6208         of dllimport SYM_REF's.
6209         (legitimize_dllimport_symbol): Add prototype.
6210
6211 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6212
6213         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
6214         reference in constructor with non self-referential type.
6215
6216 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6217
6218         Removal of Return with Depressed Stack Pointer support
6219         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
6220         (ECF_SP_DEPRESSED): Likewise.
6221         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
6222         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
6223         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6224         (expand_call): Do not test ECF_SP_DEPRESSED.
6225         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6226         * function.c (keep_stack_depressed): Delete.
6227         (handle_epilogue_set): Likewise.
6228         (update_epilogue_consts): Likewise.
6229         (emit_equiv_load): Likewise.
6230         (thread_prologue_and_epilogue_insns): Remove support for Return with
6231         Depressed Stack Pointer.
6232         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6233
6234 2008-04-06  Richard Guenther  <rguenther@suse.de>
6235
6236         PR tree-optimization/35400
6237         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
6238         information from SSA_NAMEs.
6239
6240 2008-04-06  Anatoly Sokolov <aesok@post.ru>
6241
6242         * config/avr/avr.h (avr_mega_p): Remove declaration.
6243         (AVR_MEGA): Remove macro.
6244         * config/avr/avr.c (avr_mega_p): Remove variable.
6245         (avr_override_options): Remove inicializion of avr_mega_p.
6246         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6247         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6248         (avr_jump_mode): (Ditto.).
6249         (avr_output_progmem_section_asm_op): (Ditto.).
6250         (avr_asm_init_sections): (Ditto.).
6251         (avr_asm_init_sections): (Ditto.).
6252         (avr_rtx_costs): (Ditto.).
6253         * config/avr/avr.md: (Ditto.).
6254         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
6255         '__AVR_MEGA__'.
6256
6257 2008-04-06  Richard Guenther  <rguenther@suse.de>
6258
6259         PR tree-optimization/35842
6260         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
6261         is_gimple_invariant_address.
6262
6263 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6264
6265         * gcc.c (default_compilers): Sync Fortran extensions list with
6266         that in fortran/lang-specs.h.
6267         * doc/invoke.texi: Likewise.
6268         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
6269         * dwarf2out.c (gen_compile_unit_die): Likewise.
6270
6271 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
6272
6273         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
6274
6275 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
6276
6277         PR target/12329
6278         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
6279         attribute is used for nested functions.
6280
6281 2008-04-05  Jan Hubicka  <jh@suse.cz>
6282
6283         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
6284
6285         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
6286         letter argument.
6287         (dump_files): Update.
6288         (enable_rtl_dump_file): Do not accept letter argument.
6289         * tree-pass.h (dump_file_info): Remove letter argument.
6290         * toplev.c (decode_d_option): Update -da handling.
6291         * toplev.h (enable_rtl_dump_file): Update prototype.
6292         * passes.c (register_one_dump_file): Do not accept IPA argument; work
6293         it out based on pass type.
6294         (register_dump_files_1): Likewise.
6295         (init_optimization_passes): Update register_one_dump_file calls.
6296         (execute_one_pass): Sanity check that IPA passes are called at IPA
6297         level and RTL passes at RTL level.
6298         (execute_pass_list): IPA pass can not be after or subpass of
6299         GIMPLE/RTL pass.
6300         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
6301         disallov RTL subpasses of IPA subpasses.
6302
6303 2008-04-05  Ben Elliston  <bje@au.ibm.com>
6304
6305         * tree-cfg.c (need_fake_edge_p): Return false for calls to
6306         builtins that return exactly once and do not throw. Cache call to
6307         call_expr_flags.
6308
6309 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
6310
6311         PR rtl-optimization/34916
6312         PR middle-end/35519
6313         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
6314         between instruction pairs.
6315
6316 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
6317
6318         * doc/invoke.texi: Document -mbitops for SH.
6319         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
6320         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
6321         * config/sh/sh.c (print_operand): Add %t operand code.
6322         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
6323         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
6324         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
6325         (extendqihi2): Likewise.
6326         (movqi_i): Likewise.
6327         (insv): Use bset, bclr and bst instructions for SH2A if possible.
6328         (extv): Use bld instruction for SH2A if possible.
6329         (extzv): Likewise.
6330         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
6331         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
6332         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
6333         (bset.b, bclr.b): Define peepholes.
6334         * config/sh/sh.opt (mbitops): New option.
6335
6336 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
6337
6338         PR target/35620
6339         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
6340         and view convert expression.
6341
6342 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6343
6344         PR target/35364
6345         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6346
6347 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
6348
6349         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6350
6351         * config/i386/cpuid.h (bit_AES): New.
6352         (bit_PCLMUL): Likewise.
6353
6354         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6355         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
6356         SSE2 if AES or PCLMUL is enabled.
6357         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6358         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6359         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6360         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6361         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6362         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6363         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6364         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6365         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6366         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6367         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6368         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6369         __builtin_ia32_aeskeygenassist128 and
6370         __builtin_ia32_pclmulqdq128.
6371         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6372         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6373         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
6374
6375         * config/i386/i386.h (TARGET_AES): New.
6376         (TARGET_PCLMUL): Likewise.
6377         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6378
6379         * config/i386/i386.md (UNSPEC_AESENC): New.
6380         (UNSPEC_AESENCLAST): Likewise.
6381         (UNSPEC_AESDEC): Likewise.
6382         (UNSPEC_AESDECLAST): Likewise.
6383         (UNSPEC_AESIMC): Likewise.
6384         (UNSPEC_AESKEYGENASSIST): Likewise.
6385         (UNSPEC_PCLMUL): Likewise.
6386
6387         * config/i386/i386.opt (maes): New.
6388         (mpclmul): Likewise.
6389
6390         * config/i386/sse.md (aesenc): New pattern.
6391         (aesenclast): Likewise.
6392         (aesdec): Likewise.
6393         (aesdeclast): Likewise.
6394         (aesimc): Likewise.
6395         (aeskeygenassist): Likewise.
6396         (pclmulqdq): Likewise.
6397
6398         * config/i386/wmmintrin.h: New.
6399
6400         * doc/extend.texi: Document AES and PCLMUL built-in function.
6401
6402         * doc/invoke.texi: Document -maes and -mpclmul.
6403
6404 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6405
6406         * function.c (free_after_parsing): Replace with
6407         cxx_push_function_context from C++ front-end.
6408         (allocate_struct_function): Don't call langhook.
6409         * langhooks.h (struct lang_hooks_for_functions): Delete.
6410         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6411         member "function".
6412         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6413         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6414         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6415         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6416         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6417         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6418         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6419
6420         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6421         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6422         
6423 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6424
6425         PR c/35440
6426         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6427         for all types.
6428
6429 2008-04-04  Richard Guenther  <rguenther@suse.de>
6430
6431         PR middle-end/35823
6432         * fold-const.c (optimize_minmax_comparison): Use the correct
6433         type for the constant in the simplified comparison.
6434
6435 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6436
6437         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6438         Pass L2 size as "--param l2-cache-size" to the compiler.
6439         (decode_l2_cache): New function to decode L2 cache parameters using
6440         0x8000006 extended cpuid function.
6441         (detect_caches_amd): Determine parameters of L2 cache using
6442         decode_l2_caches function.
6443         (decode_caches_intel): Decode L2 cache parameters.
6444         (detect_caches_intel): Determine L2 cache parameters using
6445         decode_caches_intel and decode_l2_caches functions.
6446
6447 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6448
6449         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6450         secondary input reload for subword loads from the constant pool.
6451
6452 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6453
6454         PR target/35713
6455         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6456           constants of the appropriate size for runtime calculations.
6457
6458         PR c/35712
6459         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6460           decimal-float literal constant zero.
6461
6462 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6463
6464         PR c/35738
6465         * c-parser.c (c_parser_omp_atomic): Call
6466         default_function_array_conversion on the RHS.
6467
6468         PR middle-end/35818
6469         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6470         call is_variable_sized if decl has incomplete type.
6471
6472 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6473
6474         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6475
6476 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6477
6478         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6479         iterators.
6480         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6481         (sgt<u>): Merge sgt and sgtu into new expander.
6482         (sgt, sgtu): Remove expanders.
6483         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6484         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6485         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6486         *sgtu_<mode>_mips16 into new pattern.
6487         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6488         (sge<u>): Merge sge and sgeu into new expander.
6489         (sge, sgeu): Remove expanders.
6490         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6491         new pattern.
6492         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6493         (slt<u>): Merge slt and sltu into new expander.
6494         (slt, sltu): Remove expanders.
6495         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6496         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6497         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6498         *sltu_<mode>_mips16 into new pattern.
6499         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6500         (sle<u>): Merge sle and sleu into new expander.
6501         (sle, sleu): Remove expanders.
6502         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6503         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6504         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6505         *sleu_<mode>_mips16 into new pattern.
6506         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6507
6508 2008-04-03  Jan Hubicka  <jh@suse.cz>
6509
6510         PR tree-optimization/35795
6511         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6512         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6513         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6514         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6515         * score/score3.c (score3_output_mi_thunk): Likewise.
6516         * score/score7.c (score7_output_mi_thunk): Likewise.
6517         * mips/mips.c (mips_output_mi_thunk): Likewise.
6518
6519 2008-04-03  Richard Guenther  <rguenther@suse.de>
6520
6521         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6522         conversions.  Simplify code.
6523
6524 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6525
6526         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6527
6528 2008-04-03  Tom Tromey  <tromey@redhat.com>
6529             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6530
6531         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6532         * config/bfin/t-bfin-linux (generated_files): Add
6533         linux-sysroot-suffix.h.
6534         * doc/install.texi (Prerequisites): Require make 3.80.
6535         * doc/sourcebuild.texi (Front End Directory): Document new
6536         variable.
6537         * Makefile.in (generated_files): New variable.
6538         (ALL_HOST_OBJS): New variable.
6539         ($(ALL_HOST_OBJS)): New target.
6540
6541 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6542
6543         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6544         (remap_block): Call id->transform_lang_insert_block instead
6545         of langhook.
6546         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6547         Set id.transform_lang_insert_block to NULL.
6548         (clone_body): Move to cp/optimize.c
6549         * tree-inline.h (struct copy_body_data): Change
6550         transform_lang_insert_block to function pointer.
6551         (copy_generic_body, copy_decl_no_change): Export.
6552         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6553         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6554         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6555
6556         * c-tree.h (insert_block): Kill.
6557         * c-decl.c (insert_block): Kill.
6558
6559 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6560
6561         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6562         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6563         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6564         argument.
6565         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6566         argument, call {push,pop}_function_context from here.
6567         * c-parser.c: Use c_{push,pop}_function_context.
6568
6569         * function.c (push_function_context_to): Move meat ...
6570         (push_function_context): ... here.  Simplify.
6571         * function.c (pop_function_context_from): Move meat ...
6572         (pop_function_context): ... here.  Simplify.
6573         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6574         leave_nested).
6575         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6576         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6577         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6578         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6579
6580 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6581
6582         * expmed.c (extract_force_align_mem_bit_field): Remove.
6583
6584 2008-04-03  Richard Guenther  <rguenther@suse.de>
6585
6586         PR middle-end/35800
6587         * expr.h (try_casesi): Adjust prototype.
6588         * expr.c (try_casesi): Take fallback label as extra parameter.
6589         Use that for gen_casesi if default_label is NULL.
6590         * stmt.c (expand_case): Pass fallback label to try_casesi,
6591         make sure to fill gaps with a fallback label if default_label
6592         is not present.
6593
6594 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6595
6596         PR target/35801
6597         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6598
6599 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6600
6601         * expmed.c (extract_split_bit_field): Remove if (0) code.
6602         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6603         (do_ds_constraint): Likewise.
6604
6605 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6606
6607         * doc/cppopts.texi (-dU): Document.
6608         * c-common.h (flag_dump_macros): Update comment.
6609         * c-opts.c (handle_OPT_d): Handle -dU.
6610         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6611         dump_queued_macros, cb_used_define, cb_used_undef): New.
6612         (init_pp_output): Handle -dU.
6613         (cb_line_change): Call dump_queued_macros.
6614         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6615
6616 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6617
6618         * config/avr/predicates.md (io_address_operand): New predicate. 
6619         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6620         * config/avr/avr.c (avr_io_address_p): Remove function.
6621         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6622         'avr_io_address_p' function.
6623         (out_movhi_r_mr): (Ditto.).
6624         (out_movqi_mr_r): (Ditto.).
6625         (out_movhi_mr_r): (Ditto.).
6626         (avr_address_cost): (Ditto.).
6627
6628 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6629
6630         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6631         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6632         in 32bit mode when XMM registers are available to avoid store
6633         forwarding stalls.
6634         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6635         corresponding post-reload splitters.
6636
6637 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6638
6639         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6640         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6641         __builtin_ia32_roundss.
6642         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6643         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6644         __builtin_ia32_roundss.
6645         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6646         IX86_BUILTIN_SHUFPD here.
6647
6648 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6649
6650         * config/i386/i386.md (plogic): New.
6651         (plogicprefix): Likewise.
6652
6653         * config/i386/mmx.md (mmx_<code><mode>3): New.
6654         (mmx_and<mode>3): Removed.
6655         (mmx_ior<mode>3): Likewise.
6656         (mmx_xor<mode>3): Likewise.
6657
6658         * config/i386/sse.md (<code><mode>3): New.
6659         (*<code><mode>3): Likewise.
6660         (*<code><mode>3): Likewise.
6661         (<code><mode>3): Likewise.
6662         (*sse_<code><mode>3): Likewise.
6663         (*sse2_<code><mode>3): Likewise.
6664         (<code>tf3): Likewise.
6665         (*<code>tf3): Likewise.
6666         (and<mode>3): Likewise.
6667         (*and<mode>3): Likewise.
6668         (ior<mode>3): Removed.
6669         (*ior<mode>3): Likewise.
6670         (xor<mode>3): Likewise.
6671         (*xor<mode>3): Likewise.
6672         (*and<mode>3): Likewise.
6673         (*ior<mode>3): Likewise.
6674         (*xor<mode>3): Likewise.
6675         (and<mode>3): Likewise.
6676         (*sse_and<mode>3): Likewise.
6677         (*sse2_and<mode>3): Likewise.
6678         (andtf3): Likewise.
6679         (*andtf3): Likewise.
6680         (ior<mode>3): Likewise.
6681         (*sse_ior<mode>3): Likewise.
6682         (*sse2_ior<mode>3): Likewise.
6683         (iortf3): Likewise.
6684         (*iortf3): Likewise.
6685         (xor<mode>3): Likewise.
6686         (*sse_xor<mode>3): Likewise.
6687         (*sse2_xor<mode>3): Likewise.
6688         (xortf3): Likewise.
6689         (*xortf3): Likewise.
6690
6691 2008-04-02  Richard Guenther  <rguenther@suse.de>
6692
6693         PR tree-optimization/14495
6694         PR tree-optimization/34793
6695         * tree-vrp.c (struct switch_update): New structure.
6696         (to_remove_edges, to_update_switch_stmts): New VECs.
6697         (simplify_switch_using_ranges): New function.  Remove not taken
6698         case labels and edges.
6699         (simplify_stmt_using_ranges): Call it.
6700         (identify_jump_threads): Mark edges we have queued for removal
6701         so we don't thread them.
6702         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6703         case label vector.
6704         * tree-cfg.c (group_case_labels): Deal with missing default label.
6705         (tree_verify_flow_info): Allow missing default label.
6706         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6707         (emit_case_nodes): Likewise.
6708         (expand_case): Do not rely on the default label to be present.
6709         * expr.c (try_casesi): Deal with NULL default_label.
6710         (do_tablejump): Likewise.
6711
6712 2008-04-02  Richard Guenther  <rguenther@suse.de>
6713
6714         PR tree-optimization/14495
6715         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6716         SWITCH_EXPR here ...
6717         (vrp_visit_switch_stmt): ... but here (new function).
6718         (find_case_label_index): New helper function.
6719         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6720
6721 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6722
6723         * fwprop.c: Fix ISO-C99ism.
6724
6725 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6726
6727         PR bootstrap/35752
6728         * Makefile.in (objdir): Set it here.
6729         * configure.ac: Not here.  Find dynamic linker characteristics.
6730         * exec-tool.in: Use them.
6731         * aclocal.m4: Regenerate.
6732         * configure: Regenerate.
6733
6734 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6735
6736         * expr.c (expand_var): Delete it.
6737         * expr.h (expand_var): Delete prototype.
6738         * function.c (expand_function_start): Use expand_decl instead.
6739         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6740         langhook.
6741
6742 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6743
6744         PR rtl-optimization/35542
6745         * fwprop.c (forward_propagate_and_simplify): Replace
6746         loc_reg_mentioned_in_p with reg_mentioned_p.
6747
6748 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6749
6750         PR rtl-optimization/35281
6751         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6752         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6753         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6754         (varying_mem_p): Move above propagate_rtx.
6755         (all_uses_available_at): Do not check MEMs.
6756
6757 2008-04-02  Rafael Espindola  <espindola@google.com>
6758
6759         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6760         (register_edge_assert_for_2): Split the cond argument.
6761         (register_edge_assert_for_1): Adjust for the change in
6762         register_edge_assert_for_2.
6763         (register_edge_assert_for): Split the cond argument.
6764         (find_switch_asserts): Adjust for the change in
6765         register_edge_assert_for.
6766
6767 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6768
6769         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6770         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6771         offsets for 64-bit mingw.
6772         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6773         abi for x86_64-pc-mingw.
6774
6775 2008-04-02  Richard Guenther  <rguenther@suse.de>
6776
6777         * tree-vrp.c (extract_range_from_assert): Make sure to not
6778         produce range min/max with TREE_OVERFOW set.
6779         If merging a anti-range and a range keep the anti-range if
6780         the range covers all values of the type.
6781         (register_edge_assert_for_2): Only allow sign-changing
6782         conversions in detecting canonical range checks.  Also
6783         register an assert for the unsigned name if useful.
6784
6785         PR tree-optimization/35787
6786         * tree-vrp.c (vrp_val_max): New function.
6787         (vrp_val_min): Likewise.
6788         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6789         (vrp_val_is_min): Likewise.
6790         (supports_overflow_infinity): Use vrp_val_{min,max}.
6791         (negative_overflow_infinity): Likewise.
6792         (positive_overflow_infinity): Likewise.
6793         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6794         (is_positive_overflow_infinity): Likewise.
6795         (is_overflow_infinity): Likewise.
6796         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6797         vrp_val_is_{min,max}.
6798         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6799         to ranges if possible.  Avoid empty ranges.
6800
6801 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6802
6803         PR middle-end/35705
6804         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6805         the expression is a function address.
6806
6807 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6808
6809         PR fortran/35154, fortran/23057
6810         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6811         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6812         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6813         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6814         in common.
6815         (dbxout_syms): Check for COMMON-based symbol and wrap in
6816         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6817         in bracket for efficiency.
6818
6819         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6820         using DW_TAG_common_block + member offset.
6821         (add_pubname_string): New function.
6822         (dw_expand_expr): New function to find block name and offset for
6823         COMMON var.
6824         (common_check): New function to check whether symbol in Fortran COMMON.
6825         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6826
6827 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6828
6829         PR c/35436
6830         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6831
6832 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6833
6834         * config/v850/v850.md (casesi): Remove if (0) code.
6835         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6836         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6837
6838 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6839
6840         * config/i386/i386.md (rex64suffix): New mode attribute.
6841         (floathi<mode>2): Disable expander for SSE math.
6842         (*floathi<mode>2_1): New insn insn_and_split pattern.
6843         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6844         corresponding post-reload splitters.
6845         (*floathi<mode>2_i387): New macroized insn pattern.
6846         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6847         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6848         insn_and_split pattern.
6849         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6850         New macroized instruction patterns and corresponding post-reload
6851         splitters.
6852         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6853         and corresponding post-reload splitters.
6854         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6855         New macroized instruction patterns.
6856         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6857         macroized instruction patterns and corresponding post-reload splitters.
6858         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6859         corresponding post-reload splitters.
6860         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6861         New macroized instruction patterns.
6862         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6863         corresponding post-reload splitters.
6864         (*floatsi<mode>2_i387): New macroized instruction patterns.
6865
6866 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6867
6868         * config/i386/i386.md (smaxmin): New.
6869         (umaxmin): Likewise.
6870         (maxminiprefix): Likewise.
6871         (maxminfprefix): Likewise.
6872         (<code><mode>3): Likewise.
6873         (smin<mode>3): Removed.
6874         (smax<mode>3): Likewise.
6875
6876         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6877         (mmx_<code>v4hi3): Likewise.
6878         (mmx_<code>v8qi3): Likewise.
6879         (mmx_smaxv2sf3): Removed.
6880         (mmx_sminv2sf3): Likewise.
6881         (mmx_umaxv8qi3): Likewise.
6882         (mmx_smaxv4hi3): Likewise.
6883         (mmx_uminv8qi3): Likewise.
6884         (mmx_sminv4hi3): Likewise.
6885
6886         * config/i386/sse.md (<addsub><mode>3): New.
6887         (*<addsub><mode>3): Likewise.
6888         (<sse>_vm<addsub><mode>3): Likewise.
6889         (<maxmin><mode>3): Likewise.
6890         (*<maxmin><mode>3_finite): Likewise.
6891         (*<maxmin><mode>3): Likewise.
6892         (<sse>_vm<maxmin><mode>3): Likewise.
6893         (sse3_h<addsub>v4sf3): Likewise.
6894         (sse3_h<addsub>v2df3): Likewise.
6895         (<maxmin>v16qi3): Likewise.
6896         (*<maxmin>v16qi3): Likewise.
6897         (<maxmin>v8hi3): Likewise.
6898         (*<maxmin>v8hi3): Likewise.
6899         (*sse4_1_<maxmin><mode>3): Likewise.
6900         (*sse4_1_<maxmin><mode>3): Likewise.
6901         (add<mode>3): Removed.
6902         (*add<mode>3): Likewise.
6903         (<sse>_vmadd<mode>3): Likewise.
6904         (sub<mode>3): Likewise.
6905         (*sub<mode>3): Likewise.
6906         (<sse>_vmsub<mode>3): Likewise.
6907         (smin<mode>3): Likewise.
6908         (*smin<mode>3_finite): Likewise.
6909         (*smin<mode>3): Likewise.
6910         (<sse>_vmsmin<mode>3): Likewise.
6911         (smax<mode>3): Likewise.
6912         (*smax<mode>3_finite): Likewise.
6913         (*smax<mode>3): Likewise.
6914         (<sse>_vmsmax<mode>3): Likewise.
6915         (sse3_haddv4sf3): Likewise.
6916         (sse3_haddv2df3): Likewise.
6917         (sse3_hsubv4sf3): Likewise.
6918         (sse3_hsubv2df3): Likewise.
6919         (umaxv16qi3): Likewise.
6920         (*umaxv16qi3): Likewise.
6921         (smaxv8hi3): Likewise.
6922         (*smaxv8hi3): Likewise.
6923         (*sse4_1_smax<mode>3): Likewise.
6924         (*sse4_1_umax<mode>3): Likewise.
6925         (uminv16qi3): Likewise.
6926         (*uminv16qi3): Likewise.
6927         (sminv8hi3): Likewise.
6928         (*sminv8hi3): Likewise.
6929         (*sse4_1_smin<mode>3): Likewise.
6930         (*sse4_1_umin<mode>3): Likewise.
6931
6932 2008-04-01  Rafael Espindola  <espindola@google.com>
6933
6934         * tree-cfg.c (verify_expr): remove in_phi.
6935         (verify_stmt): Don't call walk_tree with verify_expr. Use
6936         is_gimple_min_invariant instead of is_gimple_val.
6937
6938 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6939
6940         * doc/include/gpl_v3.texi: Update for manpage generation.
6941         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6942         gpl.texi.
6943         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6944         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6945         gpl_v3.texi instead of gpl.texi.
6946         (gpl.pod): New.
6947
6948 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6949
6950         PR pch/13675
6951         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6952
6953 2008-04-01  Rafael Espindola  <espindola@google.com>
6954
6955         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6956         (extract_code_and_val_from_cond): Use
6957         extract_code_and_val_from_cond_with_ops.
6958
6959 2008-04-01  Jan Hubicka  <jh@suse.cz>
6960
6961         * function.c (free_after_compilation): Free epilogue_delay_list.
6962         (prepare_function_start): Assert that previous compilation was freed.
6963
6964 2008-04-01  Jan Hubicka  <jh@suse.cz>
6965             Jim Wilson  <wilson@tuliptree.org>
6966             Andreas Tobler <andreast@gcc.gnu.org>
6967
6968         PR middle-end/35781
6969         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6970         rtl.emit instead cfun->emit.
6971         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6972         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6973
6974 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6975
6976         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6977
6978 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6979
6980         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6981         New options
6982         (fprofile-use): Add var flag_profile_use
6983         * coverage.c (coverage_begin_output): Do not open a gcno file for
6984         output only if -ftest-coverage is set.
6985         Do not add getpwd() to gcda file path.
6986         (build_gcov_info): Check the new flag
6987         flag_profile_datafile_relative_path.
6988         (coverage_init): Use profile_data_prefix.
6989         Read profile counter only if flag_profile_use is set.
6990         * opts.c (common_handle_option): New option fprofile-use=,
6991         fprofile-dir=, fprofile-generate=.
6992         * toplev.c (profile_data_prefix): New variable definition.
6993         * toplev.h (profile_data_prefix): New declaration.
6994         * doc/invoke.tex (Option Summary, Optimization Options):
6995         Add new options.
6996
6997 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6998
6999         * varasm.c (output_constant_pool_1): In LABEL_REF check,
7000         use tmp consistently.
7001
7002         PR target/35695
7003         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
7004         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7005         UNSPEC_FR_RECIP_APPROX_RES.
7006         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
7007
7008 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
7009
7010         PR c/35750
7011         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
7012
7013 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7014
7015         PR middle-end/30186
7016         * fold-const.c (fold_indirect_ref_1): Support accessing non first
7017         element of the vector via a pointer.
7018
7019 2008-03-31  Ian Lance Taylor  <iant@google.com>
7020
7021         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
7022
7023 2008-03-31  Jan Hubicka  <jh@suse.cz>
7024
7025         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7026         get_arg_pointer_save_area.
7027         * expr.c (init_expr): Just clear out rtl.expr.
7028         * function.c (free_after_compilation): Clear out whole RTL structure.
7029         (get_func_frame_size): Merge into ...
7030         (get_frame_size): ... this one.
7031         (assign_stack_local_1): Merge into ...
7032         (assign_stack_local): ... this one.
7033         (expand_function_end): Update call of get_arg_pointer_save_area.
7034         (get_art_pointer_save_area): Remove cfun argument.
7035         * function.h (emit_status): regno_pointer_align does not need length
7036         attribute. Move x_regno_reg_rtx to ...
7037         (regno_reg_rtx): ... new global array.
7038         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
7039         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
7040         apply_args_value, forced_labels, stack_pointer_delta):
7041         Update accestors.
7042         (struct varasm_status): Move here from varasm.c
7043         (struct rtl_data): New. Move here some fields from struct function.
7044         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7045         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7046         used_temp_slots avail_temp_slots, temp_slot_level,
7047         nonlocal_goto_handler_labels): Update accesstors.
7048         (rtl): New global variable.
7049         (struct function): Move some fileds to rtl_data.
7050         (get_arg_pointer_save_area): Update prototype.
7051         * emit-rtl.c (rtl): Declare.
7052         (regno_reg_rtx): Declare.
7053         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7054         Update.
7055         (gen_reg_rtx): Update.
7056         (init_virtual_regs): Do not tate emit_status argument.
7057         (init_emit): Do not allocate emit.
7058         * varasm.c (varasm_statuc): Move to function.h.
7059         (n_deferred_constatns): Update accestor.
7060         (init_varasm_status): Do not allocate varasm_status.
7061         (force_const_mem, get_pool_size, output_constant_pool): Update.
7062         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7063         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7064
7065 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
7066
7067         PR rtl-optimization/35729
7068         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
7069         references.
7070
7071 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7072
7073         PR target/32000
7074         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
7075         load/store if memory is unaligned.
7076         (*movti_rex64): Likewise.
7077
7078         * config/i386/predicates.md (misaligned_operand): New.
7079
7080 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
7081
7082         PR tree-opt/35431
7083         * tree-ssa-phiopt.c (conditional_replacement): Return early for
7084         complex types.
7085
7086 2008-03-31  Jan Beulich  <jbeulich@novell.com>
7087
7088         * config/ia64/constraints.md: Add 'j' constraint.
7089         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
7090         (movdi_internal): Likewise.
7091
7092 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
7093
7094         PR c/35748
7095         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
7096
7097 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7098
7099         PR target/35757
7100         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
7101         proper error message for the third argument on blendpd and
7102         blendps.
7103
7104         * config/i386/sse.md (blendbits): New.
7105         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
7106
7107 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7108
7109         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
7110
7111 2008-03-30  Richard Guenther  <rguenther@suse.de>
7112
7113         PR middle-end/31023
7114         * fold-const.c (fold_sign_changed_comparison): Do leave
7115         conversions to base-types alone.
7116
7117 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7118
7119         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
7120         the link register if one altivec register is be saved.
7121
7122 2008-03-30  Ben Elliston  <bje@au.ibm.com>
7123
7124         * final.c (final_scan_insn): Remove if (0) code.
7125
7126 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
7127
7128         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
7129
7130 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7131
7132         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
7133         of V4SFmode to ix86_binary_operator_ok.
7134
7135 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
7136
7137         * config/i386/i386.c (override_options): Initialize
7138         ix86_veclib_handler to ix86_veclibabi_svml when
7139         -mveclibabi=svml is used.
7140         (ix86_veclibabi_svml): New function for SVML ABI style
7141         vectorization support.
7142         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
7143
7144 2008-03-28  Rafael Espindola  <espindola@google.com>
7145
7146         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
7147         (tree_binary_nonnegative_warnv_p): Make it public.
7148         (tree_single_nonnegative_warnv_p): Make it public.
7149         (tree_invalid_nonnegative_warnv_p): Make it public.
7150         (tree_unary_nonzero_warnv_p): Make it public.
7151         (tree_binary_nonzero_warnv_p): Make it public
7152         (tree_single_nonzero_warnv_p): Make it public.
7153         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
7154         (extract_range_from_binary_expr): Split the expr argument.
7155         (extract_range_from_unary_expr): Split the expr argument.
7156         (extract_range_from_comparison): Split the expr argument.
7157         (extract_range_from_expr): Use the new aux functions.
7158         (vrp_evaluate_conditional_warnv): Use
7159         vrp_evaluate_conditional_warnv_with_ops.
7160         * tree.h (tree_unary_nonzero_warnv_p): Declare.
7161         (tree_binary_nonzero_warnv_p): Declare.
7162         (tree_single_nonzero_warnv_p): Declare.
7163         (tree_expr_nonzero_warnv_p): Declare.
7164         (tree_unary_nonnegative_warnv_p): Declare.
7165         (tree_binary_nonnegative_warnv_p): Declare.
7166         (tree_single_nonnegative_warnv_p): Declare.
7167         (tree_invalid_nonnegative_warnv_p): Declare.
7168
7169 2008-03-28  Richard Guenther  <rguenther@suse.de>
7170
7171         PR tree-optimization/30317
7172         PR tree-optimization/30911
7173         PR tree-optimization/34793
7174         * tree-vrp.c (set_and_canonicalize_value_range): New function.
7175         (struct assert_locus_d): New member EXPR.
7176         (register_new_assert_for): Add EXPR parameter to support
7177         ASSERT_EXPR <name, expr OP limit>.
7178         (register_edge_assert_for_1): Adjust callers.
7179         (find_assert_locations): Likewise.
7180         (process_assert_insertions_for): Build condition from expression.
7181         (extract_range_from_assert): Handle ASSERT_EXPRs
7182         of the form ASSERT_EXPR <name, expr OP limit>.
7183         (register_edge_assert_for_2): New helper registering
7184         asserts for comparisons.  Recognize range tests of the form
7185         (unsigned)i - CST1 OP CST2.
7186         (register_edge_assert_for_1): Use it.
7187         (register_edge_assert_for): Likewise.
7188         (needs_overflow_infinity): Integer sub-types
7189         do not need overflow infinities.
7190         (vrp_val_is_max): The extreme values of integer sub-types
7191         are those of the base type.
7192         (vrp_val_is_min): Likewise.
7193         * tree.def (ASSERT_EXPR): Document extra allowed conditional
7194         expressions.
7195
7196 2008-03-28  Nick Clifton  <nickc@redhat.com>
7197
7198         PR target/31110
7199         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
7200         Return GENERAL_REGS for stack adjustment reloads.
7201
7202 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7203
7204         PR target/31334
7205         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
7206         const_vector when all the vectors are constant.
7207
7208 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
7209
7210         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
7211         comparisons.
7212         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
7213         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
7214         (scc_sf): New.
7215         (s<code>_sf): Use new scc_sf attribute for opcode names.
7216
7217 2008-03-27  Tom Tromey  <tromey@redhat.com>
7218
7219         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
7220         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
7221         config/spu/t-spu-elf, config/i386/t-interix,
7222         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
7223         config/i386/x-darwin, config/i386/x-mingw32,
7224         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
7225         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
7226         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
7227         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
7228         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
7229         config/rs6000/x-darwin, config/rs6000/t-rs6000,
7230         config/score/t-score-elf, config/arm/t-strongarm-pe,
7231         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
7232         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
7233         Revert automatic dependency patch.
7234
7235 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7236
7237         PR target/35657
7238         * config/i386/i386.c (ix86_function_arg_boundary): Align
7239         decimal floating point to its natural boundary.
7240
7241 2008-03-27  Richard Guenther  <rguenther@suse.de>
7242
7243         PR middle-end/35716
7244         * fold-const.c (fold_comparison): Restrict distinct decl
7245         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
7246         solely rely on operand_equal_p.
7247
7248 2008-03-27  Richard Guenther  <rguenther@suse.de>
7249
7250         PR c/32511
7251         * c-common.c (handle_weak_attribute): Reject combination of
7252         weak and inline.
7253
7254 2008-03-27  Richard Guenther  <rguenther@suse.de>
7255
7256         PR tree-optimization/32810
7257         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
7258         conversions from DECL_INITIAL.
7259         (fold_const_aggregate_ref): Likewise from constructor elements.
7260
7261 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
7262
7263         * tree-affine.h (aff_combination_expand): Declare.
7264         (get_inner_reference_aff): Likewise.
7265         * tree-affine.c (aff_combination_expand): Split out from
7266         tree_to_aff_combination_expand.
7267         (get_inner_reference_aff): New function.
7268         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
7269         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
7270         (struct lim_aux_data): sm_done field removed.
7271         (mem_ref_loc_p, mem_ref_locs_p): New types.
7272         (struct mem_ref): Added id, stored, accesses_in_loop,
7273         indep_loop, dep_loop, indep_ref, dep_ref fields.
7274         Removed is_stored, locs and next fields.
7275         (memory_accesses): New variable.
7276         (movement_possibility): Do not allow moving statements
7277         that store to memory.
7278         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
7279         New functions.
7280         (determine_max_movement): For statements with memory references,
7281         find the outermost loop in that the reference is independent.
7282         (move_computations_stmt): Mark the virtual operands for renaming.
7283         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
7284         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
7285         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
7286         add_vop_ref_mapping, create_vop_ref_mapping_loop,
7287         create_vop_ref_mapping, analyze_memory_references,
7288         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
7289         get_all_locs_in_loop, ref_always_accessed_p,
7290         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
7291         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
7292         store_motion_loop, store_motion): New functions.
7293         (struct vop_to_refs_elt): New type.
7294         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
7295         memref_hash, memref_eq, hoist_memory_references): Rewritten.
7296         (schedule_sm): Replaced by...
7297         (execute_sm): ... this.
7298         (determine_lsm_ref, hoist_memory_references,
7299         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
7300         find_more_ref_vops, free_mem_ref, free_mem_refs,
7301         determine_lsm_loop, determine_lsm): Removed.
7302         (tree_ssa_lim_finalize): Free data structures used by store motion.
7303         (tree_ssa_lim): Call analyze_memory_references.  Use
7304         store_motion instead of determine_lsm.
7305
7306 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7307
7308         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
7309         rename tmake_file to m68hc11/t-m68hc11.
7310         (mcore): Set inhibit_libc to true.
7311         * config.host (alpha*-dec-*vms*): Set extra_programs.
7312         (interix3*): Don't use host_xmake_file.
7313         * configure.ac: Let config.gcc override inhibit_libc.
7314         * configure: Regenerate.
7315
7316         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
7317         * config/t-openbsd-thread: Remove commented out lines.
7318         
7319         * config/x-interix: Remove.
7320
7321         * config/m68hc11/t-m68hc11-gas: Rename to...
7322         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
7323
7324         * config/mcore/t-mcore: Remove T_CFLAGS.
7325         * config/mcore/t-mcore-pe: Likewise.
7326
7327 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7328
7329         * configure.ac: Replace custom __GNU_SOURCE test with
7330         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
7331         * aclocal.m4: Regenerate.
7332         * configure: Regenerate.
7333         * config.in: Regenerate.
7334
7335 2008-03-27  Richard Guenther  <rguenther@suse.de>
7336
7337         * fold-const.c (target.h): Include.
7338         (fold_comparison): Fold comparison of addresses of decls
7339         that bind locally or of constants.  Consolidate address folding code.
7340         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
7341         results from fold_binary_to_constant.
7342         (compare_values_warnv): Likewise.
7343
7344 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
7345
7346         PR middle-end/35429
7347         * fold-const.c (fold_truthop): Check for integeral types when folding
7348         a == 0 && b == 0 and a != 0 || b != 0 .
7349
7350 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7351
7352         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7353
7354 2008-03-26  Andreas Schwab  <schwab@suse.de>
7355
7356         * doc/invoke.texi: Fix use of @item vs. @itemx.
7357
7358 2008-03-26  Tom Tromey  <tromey@redhat.com>
7359
7360         * Makefile.in (build/gensupport.o, build/print-rtl.o,
7361         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7362         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7363         build/gencodes.o, build/genconditions.o, build/genconfig.o,
7364         build/genconstants.o, build/genemit.o, build/genextract.o,
7365         build/genflags.o, build/genmddeps.o, build/genopinit.o,
7366         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7367         options.h.
7368
7369 2008-03-26  Richard Guenther  <rguenther@suse.de>
7370
7371         Revert
7372         2008-03-26  Richard Guenther  <rguenther@suse.de>
7373
7374         * fold-const.c (target.h): Include.
7375         (fold_comparison): Fold comparison of addresses of two decls
7376         that bind locally.  Consolidate address folding code.
7377
7378 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7379
7380         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7381         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7382         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7383         dconstsqrt2, dconstthird, dconste and/or dconst10.
7384         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7385         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7386         dconstsqrt2, dconste): Delete.
7387         (init_emit_once): Likewise.  Simplify initializing dconstm1.
7388         Constify variable.
7389         * real.c (get_real_const): New.
7390         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7391         dconstsqrt2, dconste): Delete.
7392         (real_value_const, get_real_const): New.
7393
7394 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7395
7396         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7397
7398         * config/i386/i386.c (ix86_function_arg_boundary): Check
7399         BIGGEST_ALIGNMENT instead of 128.
7400         (setup_incoming_varargs_64): Likewise.
7401
7402 2008-03-26  Tom Tromey  <tromey@redhat.com>
7403
7404         * Makefile.in (DEPFILES): Add missing '/'.
7405
7406 2008-03-26  Richard Guenther  <rguenther@suse.de>
7407
7408         * fold-const.c (target.h): Include.
7409         (fold_comparison): Fold comparison of addresses of two decls
7410         that bind locally.  Consolidate address folding code.
7411
7412 2008-03-26  Nick Clifton  <nickc@redhat.com>
7413
7414         PR target/31232
7415         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7416         not allow INT+INT as a legitimate addressing mode.
7417
7418 2008-03-26  Richard Guenther  <rguenther@suse.de>
7419
7420         * tree-flow.h (widen_bitfield): Remove declaration.
7421         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7422         (widen_bitfield): Remove function.
7423         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7424         code.
7425
7426 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7427
7428         PR target/31558
7429         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7430         error_mark_node's.
7431
7432 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7433
7434         PR rtl-optimization/35232
7435         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7436         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7437         reg_reloaded_call_part_clobbered here.
7438         (reload_regs_reach_end_p): New function.
7439         (reload_reg_rtx_for_input): New variable.
7440         (reload_reg_rtx_for_output): Likewise.
7441         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7442         when reassigning a pseudo register.  Load reloadreg from 
7443         reload_reg_rtx_for_input, moving the mode and register
7444         calculation to...
7445         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7446         instead of the original when deciding whether an input reload
7447         would be a no-op or whether an output reload can be deleted.
7448         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7449         when setting up new_spill_reg_store.  Load it from
7450         reload_reg_rtx_for_output, moving the mode and register
7451         calculation to...
7452         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7453         instead of the original when deciding whether an output reload
7454         would be a no-op.  Do the same when modifying insn notes.
7455         Use rtx_equal_p instead of == to compare the registers.
7456         (inherit_piecemeal_p): Take a mode and two register numbers
7457         as argument.
7458         (emit_reload_insns): Clear new_spill_reg_store for every hard
7459         register in the reload register.  Remove spill registers
7460         from reg_reloaded_valid before considering whether to record
7461         inheritance information for them.  Use reload_reg_rtx_for_output
7462         instead of reg_rtx when recording output reloads.  Use
7463         reload_reg_rtx_for_input instead of reg_rtx when recording
7464         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7465         at the same time as setting reg_reloaded_valid.
7466         (delete_output_reload): Add a new_reload_reg parameter and use it
7467         instead of rld[j].reg_rtx.
7468         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7469         calls accordingly.
7470
7471 2008-03-25  Tom Tromey  <tromey@redhat.com>
7472
7473         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7474         (build/genattr.o): Likewise.
7475         (build/genattrtab.o): Likewise.
7476         (build/gencodes.o): Likewise.
7477         (build/genconfig.o): Likewise.
7478         (build/genconstants.o): Likewise.
7479         (build/genemit.o): Likewise.
7480         (build/genextract.o): Likewise.
7481         (build/genflags.o): Likewise.
7482
7483 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7484         
7485         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7486         instead of size_int for integer types.
7487         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7488         to match type of MINUS_EXPR.
7489         
7490 2008-03-25  Tom Tromey  <tromey@redhat.com>
7491
7492         * configure: Rebuilt.
7493         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7494         Makefile.
7495
7496 2008-03-25  Tom Tromey  <tromey@redhat.com>
7497
7498         * config/x-solaris (host-solaris.o): Update.
7499         * config/x-linux (host-linux.o): Update.
7500         * config/x-hpux (host-hpux.o): Update.
7501         * config/x-darwin (host-darwin.o): Update.
7502         * config/v850/t-v850e (v850-c.o): Update.
7503         * config/v850/t-v850 (v850-c.o): Update.
7504         * config/t-vxworks (vxworks.o): Update.
7505         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7506         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7507         * config/spu/t-spu-elf (spu-c.o): Update.
7508         (spu.o): Remove.
7509         * config/sh/t-symbian (sh-c.o): Update.
7510         (symbian.o): Update.
7511         * config/sh/t-sh (sh-c.o): Update.
7512         * config/score/t-score-elf (score7.o, score3.o): Update.
7513         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7514         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7515         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7516         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7517         (rs6000.o): Remove.
7518         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7519         * config/m32c/t-m32c (m32c-pragma.o): Update.
7520         * config/ia64/t-ia64 (ia64-c.o): Update.
7521         * config/i386/x-mingw32 (host-mingw32.o): Update.
7522         * config/i386/x-i386 (driver-i386.o): Update.
7523         * config/i386/x-darwin (host-i386-darwin.o): Update.
7524         * config/i386/x-cygwin (host-cygwin.o): Update.
7525         * config/i386/t-nwld (nwld.o): Update.
7526         * config/i386/t-netware (netware.o): Update.
7527         * config/i386/t-interix (winnt.o): Update.
7528         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7529         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7530         msformat-c.o): Update.
7531         * config/bfin/t-bfin-linux (generated_files): Add
7532         linux-sysroot-suffix.h.
7533         * config/arm/t-wince-pe (pe.o): Update.
7534         * config/arm/t-strongarm-pe (pe.o): Update.
7535         * config/arm/t-pe (pe.o): Update.
7536         * config/arm/t-arm (arm-c.o): Update.
7537         * doc/install.texi (Prerequisites): Require make 3.80.
7538         * Makefile.in: Remove .o targets.
7539         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7540         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7541         (simple_generated_h, simple_generated_c): Move earlier.
7542         (generated_files): New variable.
7543         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7544         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7545         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7546         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7547         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7548         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7549         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7550         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7551         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7552         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7553         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7554         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7555         (.c.o): Remove.
7556         (COMPILE.base, COMPILE): New variables.
7557         (%.o): New pattern rule.
7558         (ALL_HOST_OBJS): New variable.
7559         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7560         (dummy-checksum.o, cc1-checksum.o): Remove.
7561         (DRIVER_SHLIB): New variable.
7562         (DRIVER_DEFINES): Use it.
7563         (gencondmd.c): Move out of build/.
7564         (s-conditions): Update.
7565         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7566         (ALL_BUILD_OBJS): Likewise.
7567         (build/%.o): Use BUILDCOMPILE.
7568         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7569         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7570         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7571         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7572         build/genconfig.o, build/genconstants.o, build/genemit.o,
7573         build/genextract.o, build/genflags.o, build/genmddeps.o,
7574         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7575         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7576         build/gen-protos.o, build/scan.o, build/fix-header.o,
7577         build/scan-decls.o): Simplify.
7578         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7579         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7580         prefix.o, toplev.o): Reduce to variable setting.
7581         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7582         ($(out_object_file), gcc-options.o): New targets.
7583         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7584         * configure: Rebuilt.
7585         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7586         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7587
7588 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7589
7590         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7591         complain when we hit an error, return ERROR_MARK_NODE.
7592
7593 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7594
7595         * config/sh/constraints.md (Pso, Psz): New constraints.
7596         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7597         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7598
7599 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7600
7601         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7602         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7603
7604 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7605
7606         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7607         (prefetch_sh2a): New.   
7608
7609 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7610             Naveen.H.S  <naveen.hs@kpitcummins.com>
7611
7612         * config/sh/constraints.md (I28): New constraint.
7613         * config/sh/sh.c (broken_move): Add support for movi20s.
7614         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7615
7616 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7617             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7618             Naveen.H.S  <naveen.hs@kpitcummins.com>
7619
7620         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7621         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7622         (print_operand): Handle resbank in %@ operand code.
7623         (sh_encode_section_info): New.
7624         (push_regs): Add conditions for resbank.
7625         (sh_expand_epilogue): Likewise.
7626         (sh_insert_attributes): Likewise.
7627         (sh_attribute_table): Likewise.
7628         (sh_handle_resbank_handler_attribute): New.
7629         (sh2a_handle_function_vector_handler_attribute): New.
7630         (sh2a_is_function_vector_call): New.
7631         (sh2a_get_function_vector_number): New.
7632         (sh2a_function_vector_p): New.
7633         (sh_cfun_resbank_handler_p): New.
7634         * config/sh/sh.md (calli): Emit jsr/n if possible.
7635         (calli_tbr_rel): New.
7636         (calli_pcrel): Emit jsr/n if possible.
7637         (return_i): Emit rts/n if possible.
7638         (call_valuei_tbr_rel): New.
7639         (call_valuei_pcrel): Add condition for SH2A target.
7640         (call_value): Likewise.
7641         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7642         (sh2a_get_function_vector_number): Likewise.
7643         (sh2a_is_function_vector_call): Likewise.
7644         * doc/extend.texi: Document TBR relative addressing of SH2A.
7645         (resbank): Add description for SH2A.
7646
7647 2008-03-24  Richard Guenther  <rguenther@suse.de>
7648
7649         PR c/22371
7650         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7651         pointer assignments change conversions according to middle-end rules.
7652         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7653         * configure.ac: Include type checking in yes.
7654         * configure: Regenerate.
7655
7656 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7657
7658         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7659         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7660         
7661 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7662
7663         * gthr-vxworks.h (UNUSED): Define.
7664
7665 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7666
7667         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7668
7669 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7670
7671         * doc/extend.texi (Function Attributes): Add missing comma in the
7672         example of the "alloc_size" attribute.
7673         
7674 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7675
7676         Revert:
7677         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7678
7679         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7680         32bit host.
7681
7682         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7683
7684         PR target/35496
7685         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7686         of the underlying type of a MS bitfield layout to the natural
7687         alignment of the type.
7688
7689         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7690
7691         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7692         to their natural alignment to avoid store forwarding stalls.
7693
7694 2008-03-22  Richard Guenther  <rguenther@suse.de>
7695
7696         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7697         For PHI nodes verify the address is invariant.
7698         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7699         (get_symbol_constant_value): Use is_gimple_min_invariant.
7700         (maybe_fold_stmt_indirect): Likewise.
7701
7702 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7703
7704         PR rtl-optimization/33927
7705         * Makefile.in (dse.o): Depend on $(TM_P_H).
7706         * expr.h (extract_low_bits): Declare.
7707         * expmed.c (extract_low_bits): New function.
7708         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7709         * dse.c: Include tm_p.h.
7710         (find_shift_sequence): Remove the read_reg argument and return the
7711         read value.  Emit the instructions instead of returning them.
7712         Iterate on new_mode rather than calculating it each time.
7713         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7714         source to NEW_MODE and extract_low_bits to convert the shifted
7715         value to READ_MODE.
7716         (replace_read): Allow the load and store to have different mode
7717         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7718         or extraction instructions before trying the replacement.  Update
7719         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7720
7721 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7722
7723         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7724         to their natural alignment to avoid store forwarding stalls.
7725
7726 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7727
7728         PR target/27946
7729         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7730         encouraging but not allowing gprs for input;
7731         change the input constraint to !f#r.
7732         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7733         gprs for output;
7734         change the output constraint to !f#r.
7735
7736 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7737
7738         PR target/13958
7739         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7740         corresponding post-reload splitters.
7741         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7742         when x87 FP math is selected.
7743         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7744         New function prototype.
7745         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7746         unreachable function to ease macroization of insn patterns.
7747
7748 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7749
7750         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7751         reference dumps if ddr is NULL or dependence is unknown.
7752
7753 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7754
7755         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7756         unsigned extension into account.
7757         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7758         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7759         Do computations on a scratch register.
7760
7761 2008-03-21  Richard Guenther  <rguenther@suse.de>
7762
7763         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7764         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7765         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7766         * tree-ssa-dom.c (record_equality): Likewise.
7767         * tree-inline.c (copy_body_r): Likewise.
7768         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7769         TREE_INVARIANT.
7770
7771 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7772
7773         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7774         as 'delete_unused' argument.
7775
7776 2008-03-20  Richard Guenther  <rguenther@suse.de>
7777
7778         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7779         special casing of constant qualifiers.
7780         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7781         care about them in general.
7782         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7783         regardless of their type.
7784         (fold_stmt_r): Forcefully fold *& if we end up with that.
7785
7786 2008-03-20  Paul Brook  <paul@codesourcery.com>
7787
7788         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7789         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7790         linker flags.
7791         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7792         definition.
7793         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7794         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7795
7796 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7797
7798         * common.opt (Wmudflap): New option.
7799         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7800         (mx_register_decls): Likewise.
7801         (mudflap_finish_file): Likewise.
7802         * doc/invoke.texi: Document -Wno-mudflap.
7803
7804 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7805
7806         * c-format.c (replace_format_name_to_system_name): New.
7807         (cmp_attribs): New.
7808         (convert_format_name_to_system_name): New.
7809         (decode_format_attr): Add use of convert_format_name_to_system_name.
7810         (format_types_orig): Add gnu_ prefix to names.
7811         (check_format_info_main): Special treating of \0 escaped names for
7812         supporting multi-character format specifiers as I32, I64.
7813         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7814         (gnu_target_overrides_format_attributes): New.
7815         * c-format.h: Add structure target_ovr_attr to hold
7816         system specific formatter names.
7817         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7818         msformat-c.o file to c_target_objs and cxx_target_objs.
7819         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7820         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7821         (TARGET_N_FORMAT_TYPES): New.
7822         * config/i386/msformat-c.c: New.
7823         * config/i386/t-cygming: Add build rule for msformat-c.o.
7824         * doc/extend.texi: Add new format names gnu_* and ms_* and
7825         further details.
7826         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7827
7828 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7829
7830         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7831         optimizations turned on under -O3.
7832         (ftree-vectorize): Add that the flag is turned on with -O3.
7833
7834 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7835
7836         * regmove.c (try_auto_increment): Fix spelling error in comment.
7837         * final.c (final_scan_insn): Likewise.
7838
7839 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7840
7841         PR target/14552
7842         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7843         allocator preferences for "y" and "r" class registers.
7844         ("*mov<mode>_internal"): Ditto.
7845         ("*movv2sf_internal_rex64"): Ditto.
7846         ("*movv2sf_internal"): Ditto.
7847
7848 2008-03-19  Michael Matz  <matz@suse.de>
7849
7850         PR middle-end/35616
7851         * calls.c (expand_call): Check overlap of arguments with call
7852         address for sibcalls.
7853
7854 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7855
7856         PR target/35496
7857         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7858         of the underlying type of a MS bitfield layout to the natural
7859         alignment of the type.
7860
7861 2008-03-19  Jan Hubicka  <jh@suse.cz>
7862
7863         PR other/35094
7864         * toplev.c (decode_d_option): Handle all CPP flags.
7865         * tree-vrp.c: Update tree_pass descriptors.
7866         * regrename.c: Update tree_pass descriptors.
7867         * fwprop.c: Update tree_pass descriptors.
7868         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7869         * tree-into-ssa.c: Update tree_pass descriptors.
7870         * tree-dump.c: Update tree_pass descriptors.
7871         * tree-complex.c: Update tree_pass descriptors.
7872         * tree-dump.h: Update tree_pass descriptors.
7873         * see.c: Update tree_pass descriptors.
7874         * cgraphbuild.c: Update tree_pass descriptors.
7875         * tracer.c: Update tree_pass descriptors.
7876         * tree-loop-distribution.c: Update tree_pass descriptors.
7877         * cgraph.c: Update tree_pass descriptors.
7878         * postreload-gcse.c: Update tree_pass descriptors.
7879         * postreload.c: Update tree_pass descriptors.
7880         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7881         * tree-tailcall.c: Update tree_pass descriptors.
7882         * tree-pass.h (tree_opt_pass): Rename to ...
7883         (opt_pass) ... this one; add "type" field and remove letter field.
7884         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7885         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7886         all_lowering_passes): Update declaration.
7887         * ipa-cp.c: Update tree_pass descriptors.
7888         * final.c: Update tree_pass descriptors.
7889         * omp-low.c: Update tree_pass descriptors.
7890         * tree-ssa-dse.c: Update tree_pass descriptors.
7891         * ipa-reference.c: Update tree_pass descriptors.
7892         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7893         * auto-inc-dec.c: Update tree_pass descriptors.
7894         * reorg.c: Update tree_pass descriptors.
7895         * cgraphunit.c: Update tree_pass descriptors.
7896         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7897         * tree-ssa-ccp.c: Update tree_pass descriptors.
7898         * df-core.c: Update tree_pass descriptors.
7899         * mode-switching.c: Update tree_pass descriptors.
7900         * tree-nomudflap.c: Update tree_pass descriptors.
7901         * modulo-sched.c: Update tree_pass descriptors.
7902         * ipa-pure-const.c: Update tree_pass descriptors.
7903         * cse.c: Update tree_pass descriptors.
7904         * web.c: Update tree_pass descriptors.
7905         * tree-stdarg.c: Update tree_pass descriptors.
7906         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7907         * tree-ssa-dom.c: Update tree_pass descriptors.
7908         * tree-nrv.c: Update tree_pass descriptors.
7909         * tree-ssa-alias.c: Update tree_pass descriptors.
7910         * loop-init.c: Update tree_pass descriptors.
7911         * gimple-low.c: Update tree_pass descriptors.
7912         * ipa-inline.c: Update tree_pass descriptors.
7913         * tree-ssa-sink.c: Update tree_pass descriptors.
7914         * global.c: Update tree_pass descriptors.
7915         * ifcvt.c: Update tree_pass descriptors.
7916         * jump.c: Update tree_pass descriptors.
7917         * predict.c: Update tree_pass descriptors.
7918         * tree-ssa-loop.c: Update tree_pass descriptors.
7919         * recog.c: Update tree_pass descriptors.
7920         * dse.c: Update tree_pass descriptors.
7921         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7922         * tree-eh.c: Update tree_pass descriptors.
7923         * regmove.c: Update tree_pass descriptors.
7924         * local-alloc.c
7925         * function.c: Update tree_pass descriptors.
7926         * tree-vectorizer.c: Update tree_pass descriptors.
7927         * gcse.c: Update tree_pass descriptors.
7928         * ipa-type-escape.c: Update tree_pass descriptors.
7929         * tree-if-conv.c: Update tree_pass descriptors.
7930         * init-regs.c: Update tree_pass descriptors.
7931         * ipa.c: Update tree_pass descriptors.
7932         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7933         * rtl-factoring.c: Update tree_pass descriptors.
7934         * lower-subreg.c: Update tree_pass descriptors.
7935         * bt-load.c: Update tree_pass descriptors.
7936         * tree-dfa.c: Update tree_pass descriptors.
7937         * except.c: Update tree_pass descriptors.
7938         * emit-rtl.c: Update tree_pass descriptors.
7939         * cfgexpand.c: Update tree_pass descriptors.
7940         * tree-cfgcleanup.c: Update tree_pass descriptors.
7941         * cfgcleanup.c: Update tree_pass descriptors.
7942         * tree-ssa-pre.c: Update tree_pass descriptors.
7943         * tree-sra.c: Update tree_pass descriptors.
7944         * tree-mudflap.c: Update tree_pass descriptors.
7945         * tree-ssa-copy.c: Update tree_pass descriptors.
7946         * cfglayout.c: Update tree_pass descriptors.
7947         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7948         * tree-ssa-dce.c: Update tree_pass descriptors.
7949         * tree-ssa.c: Update tree_pass descriptors.
7950         * regclass.c: Update tree_pass descriptors.
7951         * integrate.c: Update tree_pass descriptors.
7952         * tree-optimize.c: Update tree_pass descriptors.
7953         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7954         * tree-object-size.c: Update tree_pass descriptors.
7955         * combine.c: Update tree_pass descriptors.
7956         * tree-outof-ssa.c: Update tree_pass descriptors.
7957         * bb-reorder.c: Update tree_pass descriptors.
7958         * stack-ptr-mod.c: Update tree_pass descriptors.
7959         * var-tracking.c: Update tree_pass descriptors.
7960         * tree-profile.c: Update tree_pass descriptors.
7961         * tree-vect-generic.c: Update tree_pass descriptors.
7962         * reg-stack.c: Update tree_pass descriptors.
7963         * sched-rgn.c: Update tree_pass descriptors.
7964         * tree-ssa-structalias.c: Update tree_pass descriptors.
7965         * tree-cfg.c: Update tree_pass descriptors.
7966         * passes.c (current_pass): Update declaration.
7967         (finish_optimization_passes): Update.
7968         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7969         (register_one_dump_file, register_dump_files_1, next_pass_1):
7970         Update arguments.
7971         (init_optimization_passes): Update handling of new types.
7972         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7973         * ipa-struct-reorg.c: Update tree_pass descriptors.
7974         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7975         * combine-stack-adj.c: Update tree_pass descriptors.
7976         * cfgrtl.c: Update tree_pass descriptors.
7977         * dce.c: Update tree_pass descriptors.
7978         * tree-ssanames.c: Update tree_pass descriptors.
7979
7980 2008-03-19  Richard Guenther  <rguenther@suse.de>
7981
7982         PR middle-end/35609
7983         * tree-ssa.c (walk_data): New structure.
7984         (warn_uninitialized_var): If not always_executed warn with "maybe"
7985         instead of "is".
7986         (execute_early_warn_uninitialized): Compute post-dominators.
7987         Initialize always_executed before processing each basic block.
7988
7989 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7990
7991         PR target/35504
7992         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7993         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7994
7995 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7996
7997         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7998
7999 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
8000
8001         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
8002         is true.
8003         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
8004         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
8005         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
8006         target after ignore has been set, and move there also the commputation
8007         of subtarget and original_target.
8008         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8009         (LANG_HOOKS_INITIALIZER): Remove it.
8010         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
8011
8012 2008-03-18  Richard Guenther  <rguenther@suse.de>
8013
8014         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
8015         found an expression with constants, note that in the VN for the lhs.
8016         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
8017         fold them to constants if possible.  Run cleanup_cfg if done so.
8018         (execute_pre): Return todo.
8019         (do_pre): Likewise.
8020         (execute_fre): Likewise.
8021         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
8022         of constants.
8023         (get_prop_source_stmt): Look through pointer conversions.
8024
8025 2008-03-18  Jan Hubicka  <jh@suse.cz>
8026
8027         * tree-pretty-print.c: Include predict.h.
8028         (dump_generic_node): Dump predictor.
8029         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
8030         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
8031         * gimple-low.c (lower_stmt): Likewise.
8032         * expr.c (expand_expr_real): Likewise.
8033         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
8034         them.
8035         (build_predict_expr, build_predict_expr): New.
8036         * predict.h (predictor_name, build_predict_expr): Update.
8037         * c-typeck.c (c_finish_bc_stmt): Add prediction.
8038         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
8039         * predict.def (PRED_CONTINUE): Update hitrate.
8040         * tree.def (PREDICT_EXPR): Define.
8041         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
8042         do not handle BIND_EXPR.
8043         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
8044         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
8045         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
8046         operands.
8047
8048 2008-03-18  Michael Matz  <matz@suse.de>
8049
8050         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
8051
8052 2008-03-18  Richard Guenther  <rguenther@suse.de>
8053
8054         * tree-gimple.h (is_gimple_invariant_address): Declare.
8055         (is_gimple_constant): Likewise.
8056         * tree-gimple.c (is_gimple_constant): New function.
8057         (is_gimple_invariant_address): Likewise.
8058         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
8059         and is_gimple_invariant_address.
8060         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
8061         previous change.
8062         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
8063         an addressable base.
8064
8065 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
8066
8067         PR middle-end/35611
8068         * gimplify.c (gimplify_expr): Gimplify second operand of
8069         OMP_ATOMIC_LOAD.
8070
8071 2008-03-17  Richard Guenther  <rguenther@suse.de>
8072
8073         PR tree-optimization/19637
8074         * fold-const.c (fold_unary): Remove restrictions of removing
8075         intermediate pointer-conversions (P2)(P1)P0.
8076         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
8077         conversion to void pointer.
8078         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
8079
8080 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
8081
8082         PR debug/31510
8083         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
8084         emulated thread local variables.
8085
8086 2008-03-16  Richard Guenther  <rguenther@suse.de>
8087
8088         PR middle-end/35607
8089         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8090         expand TREE_INVARIANT operations that are not gimple invariant.
8091
8092 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
8093
8094         * doc/extend.texi (Alignment): Say that the ABI controls
8095         the __alignof__ for non-strict-alignment targets rather
8096         than being a recommendation.
8097
8098 2008-03-15  Paul Brook  <paul@codesourcery.com>
8099
8100         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
8101         annotations.
8102         (arm_output_fn_unwind): Mark functions that can not be unwound.
8103
8104 2008-03-15  Paul Brook  <paul@codesourcery.com>
8105
8106         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
8107         extension instructions.
8108
8109 2008-03-15  Richard Guenther  <rguenther@suse.de>
8110
8111         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
8112         and fold constant aggregate refs.
8113         (fold_const_aggregate_ref): Handle string constants
8114         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
8115         (evaluate_stmt): Simplify now that ccp_fold folds constant
8116         aggregate refs.
8117
8118 2008-03-15  Paul Brook  <paul@codesourcery.com>
8119
8120         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
8121         (extzv): Use gen_extzv_t2.
8122         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
8123
8124 2008-03-15  Richard Guenther  <rguenther@suse.de>
8125
8126         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
8127         (fold_const_aggregate_ref): Likewise.
8128         (get_value): Return NULL if we don't have any values.
8129         (ccp_finalize): Set const_val to NULL after freeing it.
8130         * tree-flow.h (get_symbol_constant_value): Declare.
8131         (fold_const_aggregate_ref): Likewise.
8132         * tree-ssa-sccvn.c (try_to_simplify): Use them.
8133
8134 2008-03-15  Richard Guenther  <rguenther@suse.de>
8135
8136         PR middle-end/35593
8137         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
8138         to not produce negative array indices if not allowed.  Add
8139         parameter to indicate that.
8140         (maybe_fold_offset_to_component_ref): Allow negative array
8141         indices only for the first member of a structure.
8142         (maybe_fold_offset_to_reference): Allow negative array indices.
8143         (maybe_fold_stmt_addition): Likewise.
8144
8145 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
8146             Anatoly Sokolov <aesok@post.ru>
8147
8148         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
8149         (avr_arch): Add ARCH_AVR6.
8150         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
8151         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
8152         instead of fixed value 2.
8153         (print_operand_address): Use gs() asm specifier instead of pm().
8154         (avr_assemble_integer): (Ditto.).
8155         (avr_output_addr_vec_elt): (Ditto.).
8156         (print_operand): Handle "!" code.
8157         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
8158         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
8159         (AVR_HAVE_EIJMP_EICALL): Define.
8160         (AVR_3_BYTE_PC): Redefine.
8161         (AVR_2_BYTE_PC): (Ditto.).
8162         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
8163         (LINK_SPEC): Add atmega2560 and atmega2561.
8164         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
8165         (crtm2561.o).
8166         * config/avr/avr.md (call_insn): Use eicall instead of icall 
8167         for 3 byte PC devices.
8168         (call_value_insn): (Ditto.).
8169         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
8170         (indirect_jump): Use only for for 2 byte PC devices.
8171         (*tablejump): (Ditto.).
8172         (*indirect_jump_avr6): Add insn.
8173         (*tablejump_rjmp): Don't use for 3 byte PC devices.
8174         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
8175         instead of ijmp for 3 byte PC devices.
8176         (__tablejump2__): (Ditto.).
8177         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
8178         (MULITLIB_DIRNAMES): (Ditto.). 
8179         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
8180
8181 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
8182
8183         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
8184         "sse2_umulsidi3".  Use V1DI mode for operand 0.
8185         ("mmx_psadbw"): Use V1DI mode for operand 0.
8186         * config/i386/i386-modes.def (V1SI): New vector mode.
8187         * config/i386/i386.c (struct builtin_description)
8188         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
8189         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
8190         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
8191         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
8192         v1di_ftype_v8qi_v8qi type.
8193         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
8194
8195         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
8196         __builtin_ia32_pmuludq]: Fix the mode of return value.
8197
8198 2008-03-15  Richard Guenther  <rguenther@suse.de>
8199
8200         PR middle-end/35595
8201         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
8202         being a PHI_NODE.
8203
8204 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
8205         
8206         * doc/invoke.texi (Option Summary, Xtensa Options): Document
8207         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
8208         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
8209         unless TARGET_SERIALIZE_VOLATILE is enabled.
8210         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
8211         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
8212         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
8213
8214 2008-03-14  Richard Guenther  <rguenther@suse.de>
8215
8216         PR tree-optimization/34172
8217         * tree-flow.h (refs_may_alias_p): Declare.
8218         (get_single_def_stmt): Likewise.
8219         (get_single_def_stmt_from_phi): Likewise.
8220         (get_single_def_stmt_with_phi): Likewise.
8221         * tree-dfa.c (refs_may_alias_p): New function.
8222         (get_single_def_stmt): Likewise.
8223         (get_single_def_stmt_from_phi): Likewise.
8224         (get_single_def_stmt_with_phi): Likewise.
8225         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
8226         (vn_reference_lookup_1): New helper function.
8227         (vn_reference_lookup): Walk the virtual use-def chain to
8228         continue searching for a match if the def does not alias the
8229         reference we are looking for.
8230
8231 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
8232
8233         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
8234         archive and Perzl.  Update The Written Word listing.
8235
8236 2008-03-14  Richard Guenther  <rguenther@suse.de>
8237
8238         PR tree-optimization/34043
8239         PR tree-optimization/33989
8240         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
8241         when doing FRE.
8242         (bitmap_find_leader): Use extra argument to verify dominance
8243         relationship inside a basic-block.
8244         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
8245         (find_leader_in_sets): Adjust.
8246         (create_component_ref_by_pieces): Take extra argument for
8247         dominance check, handle lookup failures.
8248         (find_or_generate_expression): Likewise.
8249         (create_expression_by_pieces): Likewise.
8250         (insert_into_preds_of_block): Adjust.
8251         (create_value_expr_from): If asked for, verify all operands
8252         are in the blocks AVAIL_OUT set.
8253         (make_values_for_stmt): Check for SSA_NAMEs that are life
8254         over an abnormal edge.
8255         (compute_avail): Remove such check.
8256         (do_SCCVN_insertion): New function.
8257         (eliminate): If we do not find a leader suitable for replacement
8258         insert a replacement expression from SCCVN if available.
8259         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
8260         (struct vn_ssa_aux): Add needs_insertion flag.
8261         * tree-ssa-sccvn.c (may_insert): New global flag.
8262         (copy_reference_ops_from_ref): Value-number union member access
8263         based on its size, not type and member if insertion is allowed.
8264         (visit_reference_op_load): For a weak match from union type
8265         punning lookup a view-converted value and insert a SSA_NAME
8266         for that value if that is not found.
8267         (visit_use): Make dumps shorter.  Do not disallow value numbering
8268         SSA_NAMEs that are life over an abnormal edge to constants.
8269         (free_scc_vn): Release inserted SSA_NAMEs.
8270         (run_scc_vn): New flag to specify whether insertion is allowed.
8271         Process SSA_NAMEs in forward order.
8272         * tree-ssa-loop-im.c (for_each_index): Handle invariant
8273         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
8274         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
8275         pointer type to/from integral types that do not change the
8276         precision to regular conversions.
8277
8278 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8279
8280         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8281         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8282         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
8283         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
8284         input arguments and the mode of return value.  Built-in functions
8285         that operate on whole 64-bit MMX register now use V1DI mode.
8286
8287 2008-03-13  Alon Dayan  <alond@il.ibm.com>
8288             Olga Golovanevsky  <olga@il.ibm.com>
8289
8290         PR tree-optimization/35041
8291         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
8292         to locate the right position in a statement.
8293
8294 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8295
8296         PR target/34000
8297         PR target/35553
8298         * config/i386/xmmintrin.h:  Change all static inline functions to
8299         extern inline and add __gnu_inline__ attribute.
8300         * config/i386/bmintrin.h: Ditto.
8301         * config/i386/smmintrin.h: Ditto.
8302         * config/i386/tmmintrin.h: Ditto.
8303         * config/i386/mmintrin-common.h: Ditto.
8304         * config/i386/ammintrin.h: Ditto.
8305         * config/i386/emmintrin.h: Ditto.
8306         * config/i386/pmmintrin.h: Ditto.
8307         * config/i386/mmintrin.h: Ditto.
8308         * config/i386/mm3dnow.h: Ditto.
8309
8310 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
8311
8312         PR middle-end/35185
8313         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
8314         (lower_omp_2): New function.
8315         (lower_omp_1, lower_omp): Rewritten.
8316
8317 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
8318
8319         PR 35054
8320         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
8321         with the phrase "Microsoft Windows compilers".
8322         (Push/Pop Macro Pragmas): New subsection. Document
8323         #pragma push_macro and pragma pop_macro.
8324
8325 2008-03-12  Paul Brook  <paul@codesourcery.com>
8326
8327         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
8328
8329 2008-03-12  Paul Brook  <paul@codesourcery.com>
8330
8331         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
8332         (thumb2_alusi3_short): Exclude PLUS and MINUS.
8333         (thumb2_addsi_shortim): Rename ...
8334         (thumb2_addsi_short): ... to this.  Allow register operands.
8335         (thumb2_subsi_short): New pattern.
8336         (thumb2_one_cmplsi2_short,
8337         thumb2_negsi2_short): New patterns and peepholes.
8338
8339 2008-03-12  Paul Brook  <paul@codesourcery.com>
8340
8341         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
8342
8343 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
8344
8345         * config/i386/i386.md (int_cond): New code iterator.
8346         (fp_cond): Ditto.
8347         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8348         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8349         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8350         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8351         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8352         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8353         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8354         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8355
8356 2008-03-12  Paul Brook  <paul@codesourcery.com>
8357
8358         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8359         instead of {arm,thumb}_compute_save_reg_mask.
8360         (output_return_instruction): Ditto.
8361         (thumb_unexpanded_epilogue): Ditto.
8362         (thumb1_expand_prologue): Ditto.
8363         (thumb1_output_function_prologue): Ditto.
8364         (arm_set_return_address): Ditto.
8365         (thumb_set_return_address): Ditto.
8366         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
8367         regs to achieve stack alignment.
8368         (thumb1_compute_save_reg_mask): Fix compiler warning.
8369         (arm_output_epilogue): Use offsets->saved_regs_mask.
8370         Adjust stack pointer by poping call clobered registers.
8371         (arm_expand_prologue): Use offsets->saved_regs_mask.
8372         Adjust stack pointer by pushing extra registers.
8373         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
8374
8375 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
8376
8377         PR tree-opt/35422
8378         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8379         conversion to the operands of a multiplication.
8380
8381 2008-03-12  Richard Guenther  <rguenther@suse.de>
8382
8383         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8384         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8385         * timevar.def (TV_TREE_PHIPROP): Add.
8386         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8387         pass description.  Use TV_TREE_PHIPROP.
8388         * tree-ssa-forwprop.c: Remove phiprop code.
8389
8390 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8391
8392         PR middle-end/35549
8393         * omp-low.c (maybe_lookup_decl): Constify first argument.
8394         (use_pointer_for_field): Change last argument from bool to
8395         omp_context *.  Disallow shared copy-in/out in nested
8396         parallel if decl is shared in outer parallel too.
8397         (build_outer_var_ref, scan_sharing_clauses,
8398         lower_rec_input_clauses, lower_copyprivate_clauses,
8399         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8400
8401 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8402             Ira Rosen  <irar@il.ibm.com>
8403
8404         * tree-vectorizer.c (free_stmt_vec_info): New function.
8405         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8406         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8407         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8408         * tree-vect-transform.c (vectorizable_conversion): Free
8409         vec_oprnds0 if it was allocated.
8410         (vect_permute_store_chain): Remove unused VECs.
8411         (vectorizable_store): Free VECs that are allocated in the..
8412         function.
8413         (vect_transform_strided_load, vectorizable_load): Likewise.
8414         (vect_remove_stores): Simplify the code.
8415         (vect_transform_loop): Move code to vect_remove_stores().
8416         Call vect_remove_stores() and free_stmt_vec_info().
8417
8418 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8419
8420         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8421         TARGET_HPUX.  Revise comment.
8422         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8423         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8424         Use sr4 variant of `be' instruction when not generating PIC code.
8425         (attr_length_call): Adjust for above change.
8426
8427 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8428
8429         * ipa-reference.c (static_execute): Remove module_statics_const and
8430         associated setting code.
8431
8432 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8433
8434         PR target/35540
8435         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8436         predicate for operand 1.
8437         (paritysi2_cmp): Use register_operand predicate for operand 2.
8438         Use earlyclobber modifier for operand 1.  Remove support for
8439         memory operands.
8440         (paritydi2_cmp): Use register_operand predicate for operand 3.
8441         Use earlyclobber modifier for operand 1.  Remove support for
8442         memory operands.
8443
8444 2008-03-11  Paul Brook  <paul@codesourcery.com>
8445             Vladimir Prus  <vladimir@codesourcery.com>
8446
8447         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8448         (arm_compute_save_reg0_reg12_mask): Always
8449         check if register 11 must be saved.  Always safe hard frame pointer
8450         when frame_pointer_needeed.
8451         (arm_compute_save_reg_mask): Save IP and PC
8452         only with apcs frames.
8453         (arm_output_epilogue): Adjust Thumb2 codepath to
8454         be also invoked and work for ARM non-apcs frames.
8455         (arm_expand_prologue): Don't bother saving IP
8456         for non-apcs frame, since it's not clobbered by
8457         prologue code.  Implement non-apcs frame
8458         layout.
8459
8460 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8461
8462         PR rtl-optimization/35281
8463         * expr.c (convert_move): Use a new pseudo for the intermediate
8464         from_mode->word_mode result.
8465
8466 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8467
8468         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8469         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8470         * toplev.c (compile_file): Don't call it.
8471
8472 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8473
8474         PR middle-end/35526
8475         * expr.c (store_expr): Call emit_block_move if the mode
8476         of "temp" RTX is BLKmode.
8477
8478 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8479             Richard Guenther  <rguenther@suse.de>
8480
8481         PR tree-optimization/31358
8482         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8483         the step with a NULL_TREE.
8484         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8485         to sizetype if type is a pointer type.
8486         (add_candidate_1): Don't convert the base and step to
8487         the generic type if the orginal type is a pointer type.
8488         (add_iv_value_candidates): Use sizetype for the step
8489         if type is a pointer type.
8490         (cand_value_at): Likewise.
8491         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8492         for pointer types.
8493         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8494         Don't convert the tem affine to the type.
8495         (add_elt_to_tree): Use sizetype for the step if a pointer.
8496         Use POINTER_PLUS_EXPR for pointers.
8497         (aff_combination_to_tree): Use sizetype for the step if a
8498         pointer.
8499
8500 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8501
8502         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8503         Remove commutativity hint.
8504
8505 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8506
8507         PR c/35438
8508         PR c/35439
8509         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8510         errorneous type.  Check that v is a VAR_DECL.
8511
8512         PR middle-end/35099
8513         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8514
8515 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8516
8517         PR tree-optimization/35494
8518         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8519         may be overriden at link and run time.
8520
8521 2008-03-10  Richard Guenther  <rguenther@suse.de>
8522
8523         PR tree-optimization/34677
8524         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8525         (poolify_tree): Likewise.
8526         (modify_expr_template): Likewise.
8527         (poolify_modify_stmt): Likewise.
8528         (insert_fake_stores): Handle all component-ref style stores
8529         in addition to INDIRECT_REF.  Also handle complex types.
8530         Do not poolify the inserted load.
8531         (realify_fake_stores): Do not rebuild the tree but only
8532         make it a SSA_NAME copy.
8533         (init_pre): Remove initialzation of modify_expr_template.
8534         Do not allocate modify_expr_node_pool.
8535         (fini_pre): Do not free modify_expr_node_pool.
8536
8537 2008-03-10  Paul Brook  <paul@codesourcery.com>
8538
8539         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8540         to avoid conflicts.
8541
8542 2008-03-10  Paul Brook  <paul@codesourcery.com>
8543             Mark Shinwell  <shinwell@codesourcery.com>
8544
8545         * config/arm/cortex-r4.md: New.
8546         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8547         insn attributes.
8548         * config/arm/arm.md: Include cortex-r4.md.
8549         (insn): Add smmls, sdiv and udiv values.
8550         (generic_sched): Don't use generic scheduling for Cortex-R4.
8551         (arm_issue_rate): New function.
8552         (TARGET_SCHED_ISSUE_RATE): Define.
8553
8554 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8555
8556         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8557
8558 2008-03-10  Richard Guenther  <rguenther@suse.de>
8559
8560         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8561         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8562
8563 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8564
8565         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8566         Set default to true.
8567
8568 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8569
8570         * c.opt (Wsynth): Deprecate.
8571         * doc/invoke.texi (Option Summary, Warning Options): Document
8572         -Wno-format-contains-nul.
8573
8574 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8575
8576         PR target/35496
8577         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8578         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8579
8580 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8581
8582         * config/rs6000/rs6000.c (builtin_description): Rename vector
8583         left shift operations.
8584         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8585         (altivec_vsl<VI_char>): Rename to ...
8586         (ashl<mode>3): ... new name.
8587         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8588         gen_ashlv4si3.
8589         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8590
8591 2008-03-08  Richard Guenther  <rguenther@suse.de>
8592
8593         * coverage.h (tree_coverage_counter_addr): Declare.
8594         * coverage.c (tree_coverage_counter_addr): New function.
8595         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8596         before using again.
8597         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8598         (tree_gen_one_value_profiler): Likewise.
8599         (tree_gen_ic_profiler): Likewise.
8600         (tree_gen_average_profiler): Likewise.
8601         (tree_gen_ior_profiler): Likewise.
8602
8603 2008-03-08  Richard Guenther  <rguenther@suse.de>
8604
8605         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8606         (vn_binary_op_insert): Likewise.
8607         (vn_unary_op_lookup): Likewise.
8608         (vn_unary_op_insert): Likewise.
8609         (vn_nary_op_lookup): Declare.
8610         (vn_nary_op_insert): Likewise.
8611         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8612         and binary hashes, use a single obstack for unary_op_pool
8613         and binary_op_pool.
8614         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8615         a single struct vn_nary_op_s.  Store tree code length and
8616         a variable number of operands.
8617         (struct vn_reference_op_struct): Remove unused op2.
8618         (vn_reference_op_eq): Do not compare op2.
8619         (vn_reference_op_compute_hash): Do not compute hash of op2.
8620         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8621         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8622         with vn_nary_op_compute_hash.
8623         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8624         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8625         vn_nary_op_lookup.
8626         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8627         vn_nary_op_insert.
8628         (visit_unary_op): Call nary functions.
8629         (visit_binary_op): Likewise.
8630         (process_scc): Adjust for struct vn_tables_s changes.
8631         (allocate_vn_table): Likewise.
8632         (free_vn_table): Likewise.
8633         * tree-vn.c (vn_add): Call nary functions.
8634         (vn_lookup): Likewise.
8635
8636 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8637
8638         PR target/35498
8639         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8640         wdst back after sync_compare_and_swapqhi_internal.
8641
8642 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8643
8644         PR target/22152
8645         * config/i386/i386-modes.def (V1DI): New vector mode.
8646         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8647         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8648         (MMXMODE248): Ditto.
8649         (MMXMODE): Add V1DI mode.
8650         (mmxvecsize): Change DI mode to V1DI mode.
8651         ("mov<mode>): Use MMXMODEI8 mode iterator.
8652         ("*mov<mode>_internal_rex64"): Ditto.
8653         ("*mov<mode>_internal"): Ditto.
8654         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8655         ("mmx_sub<mode>3"): Ditto.
8656         ("mmx_adddi3"): Remove insn pattern.
8657         ("mmx_subdi3"): Ditto.
8658         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8659         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8660         ("mmx_ashl<mode>3"): Ditto.
8661         ("mmx_lshrdi3"): Remove insn pattern.
8662         ("mmx_ashldi3"): Ditto.
8663         * config/i386/i386.c (classify_argument): Handle V1DImode.
8664         (function_arg_advance_32): Ditto.
8665         (function_arg_32): Ditto.
8666         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8667         mmx_addv1di3 insn pattern.
8668         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8669         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8670         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8671         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8672         Remove definitions of built-in functions.
8673         (V1DI_type_node): New node.
8674         (v1di_ftype_v1di_int): Ditto.
8675         (v1di_ftype_v1di_v1di): Ditto.
8676         (v2si_ftype_v2si_si): Ditto.
8677         (v4hi_ftype_v4hi_di): Remove node.
8678         (v2si_ftype_v2si_di): Ditto.
8679         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8680         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8681         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8682         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8683         Add new builtins using def_builtin_const.
8684         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8685         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8686         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8687         * config/i386/mmintrin.h (__v1di): New typedef.
8688         (_mm_add_si64): Cast arguments to __v1di type.
8689         (_mm_sub_si64): Ditto.
8690         (_mm_sll_pi16): Cast __count to __v4hi type.
8691         (_mm_sll_pi32): Cast __count to __v2si type.
8692         (_mm_sll_si64): Cast arguments to __v1di type.
8693         (_mm_srl_pi16): Cast __count to __v4hi type.
8694         (_mm_srl_pi32): Cast __count to __v2si type.
8695         (_mm_srl_si64): Cast arguments to __v1di type.
8696         (_mm_sra_pi16): Cast __count to __v4hi type.
8697         (_mm_sra_pi32): Cast __count to __v2si type.
8698         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8699         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8700         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8701         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8702         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8703         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8704         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8705         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8706         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8707         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8708         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8709         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8710
8711 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8712
8713         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8714
8715 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8716
8717         PR target/35373
8718         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8719         reg+const addressing for Altivec modes.  Don't generate reg+reg
8720         addressing for TFmode or TDmode quantities.
8721
8722 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8723
8724         * c-common.c (vector_types_convertible_p): Call langhook
8725         instead of comptypes.
8726
8727 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8728
8729         PR tree-opt/35402
8730         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8731         integral and scalar float variables which have a
8732         NULL DECL_INITIAL.
8733
8734 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8735
8736         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8737         dwarf_register_span hook when emitting unwind information for
8738         register-to-memory saves.
8739         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8740         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8741
8742 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8743
8744         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8745         for the same VAR_DECL.
8746
8747 2008-03-06  Tom Tromey  <tromey@redhat.com>
8748
8749         * treelang: Delete.
8750         * doc/standards.texi (Standards): Don't mention treelang.
8751         * doc/invoke.texi (Overall Options): Don't mention treelang.
8752         * doc/install.texi (Prerequisites): Don't mention bison or
8753         treelang.
8754         (Configuration): Don't mention treelang.
8755         (Building): Likewise.
8756         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8757
8758 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8759
8760         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8761         word-extractions out of a multi-word object.
8762
8763 2008-03-06  Richard Guenther  <rguenther@suse.de>
8764
8765         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8766         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8767         result type and precision.
8768         * expr.c (get_inner_reference): Set unsignedp based on the result
8769         type of BIT_FIELD_REF.
8770         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8771         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8772         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8773         for BIT_FIELD_REF.
8774         (sra_build_assignment): Likewise.
8775         (sra_build_elt_assignment): Likewise.
8776         (sra_explode_bitfield_assignment): Likewise.
8777         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8778         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8779         set BIT_FIELD_REF_UNSIGNED.
8780         (vectorizable_load): Likewise.
8781
8782 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8783
8784         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8785         at bb start.
8786
8787 2008-03-06  Richard Guenther  <rguenther@suse.de>
8788
8789         * alias.c (struct alias_set_entry): Move has_zero_child field
8790         to pack with alias_set.
8791
8792 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8793
8794         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8795         32bit host.
8796
8797 2008-03-05  Ian Lance Taylor  <iant@google.com>
8798
8799         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8800
8801 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8802
8803         * fwprop.c (update_df): Support width and offset parameters of
8804         df_ref_create.
8805         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8806         global_conflicts): Change DF_REF_EXTRACT to either
8807         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8808         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8809         * df-scan.c (df_ref_record, df_defs_record,
8810         df_ref_create_structure, df_def_record_1, df_uses_record,
8811         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8812         df_bb_refs_collect, df_entry_block_defs_collect,
8813         df_exit_block_uses_collect): Support new width and offset fields.
8814         (ref_extract_pool): New storage pool.
8815         (df_free_ref): New function.
8816         (df_reg_chain_unlink, df_free_collection_rec,
8817         df_sort_and_compress_refs): Call df_free_ref.
8818         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8819         of df_ref_extract.
8820         (df_ref_create_structure): Allocate df_ref_extract if offset and
8821         width fields are used.
8822         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8823         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8824         and SIGN_EXTRACT.
8825         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8826         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8827         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8828         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8829         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8830         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8831         (df_ref_extract): New structure.
8832         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8833         (df_ref_create): Add width and offset parameters.
8834         
8835 2008-03-05  Richard Guenther  <rguenther@suse.de>
8836
8837         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8838         Use ranges_overlap_p.
8839         (offset_overlaps_with_access): Rename
8840         to ranges_overlap_p and move ...
8841         * tree-flow-inline.h (ranges_overlap_p): ... here.
8842
8843         * tree.h (get_inner_reference, handled_component_p): Update
8844         comments.
8845
8846         * tree.h (record_component_aliases, get_alias_set,
8847         alias_sets_conflict_p, alias_sets_must_conflict_p,
8848         objects_must_conflict_p): Move declarations ...
8849         * alias.h (record_component_aliases, get_alias_set,
8850         alias_sets_conflict_p, alias_sets_must_conflict_p,
8851         objects_must_conflict_p): ... here.
8852         Include coretypes.h.
8853         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8854
8855 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8856
8857         * cfg.c: Include tree-flow.h.
8858         (remove_edge_raw): Call redirect_edge_var_map_clear.
8859         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8860         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8861         (redirect_edge_var_map_result): New.
8862         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8863         PENDING_STMT use with redirect_edge_var_map_*.
8864         * tree-ssa.c (edge_var_maps): New definition.
8865         (redirect_edge_var_map_add): New.
8866         (redirect_edge_var_map_clear): New.
8867         (redirect_edge_var_map_dup): New.
8868         (redirect_edge_var_map_vector): New.
8869         (redirect_edge_var_map_destroy): New.
8870         (ssa_redirect_edge): Replace PENDING_STMT use with
8871         redirect_edge_var_map_*.
8872         (flush_pending_stmts): Same.
8873         (delete_tree_ssa): Destroy edge var map.
8874         * tree-flow.h (struct _edge_var_map): New.
8875         Define edge_var_map vector type.
8876         Declare redirect_edge_var_map_* prototypes.
8877         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8878         * tree-cfg.c (reinstall_phi_args): Replace
8879         PENDING_STMT use with redirect_edge_var_map_*.
8880
8881 2008-03-05  Richard Guenther  <rguenther@suse.de>
8882
8883         PR tree-optimization/35472
8884         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8885         whose single use_stmt has a overlapping set of loaded and
8886         stored symbols as that use_stmt might be a noop assignment then.
8887
8888 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8889
8890         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8891
8892 2008-03-05  Richard Guenther  <rguenther@suse.de>
8893
8894         PR c++/35336
8895         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8896         should be constants.
8897         * tree-cfg.c (verify_expr): Verify it.
8898         * fold-const.c (fold_truthop): Remove code generating
8899         BIT_FIELD_REFs of structure bases.
8900         (fold_binary): Likewise.
8901         (fold_ternary): Position and size of BIT_FIELD_REFs are
8902         always host integers.
8903         (make_bit_field_ref): Remove.
8904         (optimize_bit_field_compare): Remove.
8905         (all_ones_mask_p): Remove.
8906
8907 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8908
8909         PR gcc/33009
8910         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8911         (split_block_and_df_analyze): New. Split basic block and rebuild
8912         dataflow.
8913         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8914         SPLIT_BLOCK.
8915         (split_pattern_seq): Likewise.
8916         (erase_matching_seqs): Likewise.
8917         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8918
8919 2008-03-04  Geoff Keating  <geoffk@apple.com>
8920
8921         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8922         declaration and code.
8923         (tree_invalid_nonnegative_warnv_p): Likewise.
8924
8925 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8926
8927         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8928         examples.  Truncate option-names then causing overfull hbox.
8929
8930 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8931
8932         PR target/35222
8933         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8934         on hpux10.
8935         * configure: Rebuilt.
8936
8937 2008-03-04  Rafael Espindola  <espindola@google.com>
8938
8939         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8940         (tree_unary_nonnegative_warnv_p): New.
8941         (tree_binary_nonnegative_warnv_p): New.
8942         (tree_single_nonnegative_warnv_p): New.
8943         (tree_invalid_nonnegative_warnv_p): New.
8944         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8945
8946 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8947
8948         PR 28322
8949         * opts.c (handle_option): Postpone 'unknown option' errors only for
8950         warning options.
8951
8952 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8953
8954         PR target/35453
8955         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8956         (_SIDD_XXX): This.
8957
8958 2008-03-04  Rafael Espindola  <espindola@google.com>
8959
8960         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8961         (tree_binary_nonzero_warnv_p): New.
8962         (tree_single_nonzero_warnv_p): New.
8963         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8964
8965 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8966
8967         PR middle-end/35456
8968         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8969         transformations for modes that have signed zeros.
8970         * ifcvt.c (noce_try_abs): Ditto.
8971
8972 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8973
8974         * config/i386/i386.c (override_options): Force
8975         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8976
8977 2008-03-04  Jan Hubicka  <jh@suse.cz>
8978
8979         PR c++/35262
8980         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8981         in last commit.
8982
8983 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8984
8985         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8986         label to probe the stack.
8987
8988 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8989
8990         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8991         (__gthr_win32_mutex_destroy): Declare.
8992         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8993         __gthr_win32_mutex_destroy.
8994         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8995
8996 2008-03-03  Jan Hubicka  <jh@suse.cz>
8997
8998         PR c++/35262
8999         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
9000         aggressive on inlining cold calls.
9001
9002 2008-03-03  Richard Guenther  <rguenther@suse.de>
9003
9004         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
9005         struct copies into the expression table.
9006         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
9007         (try_to_simplify): Likewise.
9008         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
9009         integral and pointer arguments which do not change the
9010         precision to NOP_EXPRs.
9011         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
9012         VIEW_CONVERT_EXPR case.
9013
9014 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9015
9016         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
9017         defined in a loop at depth 0 is invariant.
9018         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9019         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
9020         be called at loop depth 0.
9021
9022 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
9023
9024         PR driver/35420
9025         * gcc.c (process_command): Update copyright notice dates.
9026         * gcov.c (print_version): Likewise.
9027         * gcov-dump.c (print_version): Likewise.
9028         * mips-tfile.c (main): Likewise.
9029         * mips-tdump.c (main): Likewise.
9030
9031 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9032
9033         PR 24924
9034         * c-common.c (flag_permissive): Delete.
9035         (constant_expression_warnings): Check flags first.
9036         (constant_expression_error): New.
9037         * c-common.h (flag_permissive): Delete.
9038         (constant_expression_error): Declare.
9039         * flags.h (flag_permissive): Declare. Update description.
9040         * diagnostic.c (pedwarn): Update.
9041         (permerror): New.
9042         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
9043         (permissive_error_kind): New.
9044         * toplev.c (flag_permissive): Define. Update description.
9045         * toplev.h (permissive_error_kind): Declare.
9046         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
9047         (pedwarn_c90): Use pedantic_warning_kind.
9048         * c-opts.c (c_common_post_options): flag_permissive does not affect
9049         flag_pedantic_errors.
9050
9051 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
9052
9053         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
9054         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
9055         __absvsi2, __absvDI2): Use unsigned arithmetic.
9056
9057 2008-03-02  Andi Kleen  <ak@suse.de>
9058             Richard Guenther  <rguenther@suse.de>
9059
9060         * struct-equiv.c: Remove file.
9061         * cfg_cleanup.c (condjump_equiv_p): Remove.
9062         * Makefile.in (OBJS-common): Remove struct-equiv.o.
9063         (struct-equiv.o): Remove rule.
9064         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
9065         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
9066         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
9067
9068 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9069
9070         * ifcvt.c (noce_process_if_block): Try to handle only the then
9071         block if the else block exists but isn't suitable.
9072
9073 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9074
9075         PR gcc/35063
9076         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
9077         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
9078         regression from previous patch.
9079
9080 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9081
9082         PR gcc/35063
9083         * gthr.h: Add __gthread_mutex_destroy as a function that must be
9084         implemented.
9085         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
9086         * gthr-single.h (__gthread_mutex_destroy): Likewise.
9087         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
9088         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
9089         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
9090         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
9091         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
9092         (__gthread_mutex_destroy_function): Rename to
9093         __gthread_mutex_destroy.
9094         * gthr-dce.h (__gthread_mutex_destroy): Call
9095         pthread_mutex_destroy.
9096         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
9097         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
9098         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
9099
9100 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9101
9102         * df-scan.c (df_ref_chain_change_bb): Simplify.
9103         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
9104         set_block_for_insn if there's any change.
9105         * df.h ((df_insn_change_bb): Fix prototype.
9106         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
9107         df_insn_change_bb, don't call set_block_for_insn.
9108         * emit-rtl.c (reorder_insns): Likewise.
9109         * haifa-sched.c (move_insn): Likewise.
9110
9111 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9112
9113         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
9114
9115 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9116
9117         * tree-flow-inline.h (next_readonly_imm_use): Return
9118         NULL_USE_OPERAND_P after the end.
9119
9120 2008-03-01  Richard Guenther  <rguenther@suse.de>
9121
9122         PR tree-optimization/35411
9123         * tree-sra.c (sra_build_assignment): Split conversion to
9124         final type to a separate statement if we are not assigning
9125         to a register.
9126
9127 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9128
9129         * fold-const.c (fold_convertible_p): Correct the logic to follow
9130         that in fold_convert().
9131
9132 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
9133
9134         PR c++/35315
9135         * tree-inline.c (build_duplicate_type): When we make a
9136         duplicate type, make it unique in the canonical types system.
9137
9138 2008-02-29  Tom Tromey  <tromey@redhat.com>
9139
9140         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
9141         input_file_stack_history, input_file_stack_restored): Remove.
9142         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9143         * input.h (struct file_stack): Remove.
9144         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9145         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
9146         Likewise.
9147         * diagnostic.h (struct diagnostic_context) <last_module>: Change
9148         type.
9149         (diagnostic_last_module_changed): Add 'map' argument.
9150         (diagnostic_set_last_function): Likewise.
9151         * diagnostic.c (undiagnostic_report_current_module): Iterate using
9152         line map, not input_file_stack.
9153         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
9154
9155 2008-02-29  Paul Brook  <paul@codesourcery.com>
9156
9157         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
9158
9159 2008-02-29  Paul Brook  <paul@codesourcery.com>
9160
9161         * config/arm/ieee754-df.S (muldf3): Use RET macros.
9162
9163 2008-02-29  Richard Guenther  <rguenther@suse.de>
9164
9165         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
9166         vn_lookup_or_add.
9167         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
9168         value for comparing for a store match.
9169         (simplify_unary_expression): Do nothing for SSA_NAMEs.
9170         (try_to_simplify): Do not do a full-blown reference lookup.
9171
9172 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9173
9174         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
9175         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9176
9177         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
9178
9179 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
9180
9181         * tree-loop-linear.c (try_interchange_loops): Compare memory access
9182         strides against cache sizes.
9183
9184 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9185
9186         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
9187         constant to fpul.
9188
9189 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
9190
9191         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
9192         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
9193         is smaller than the original promoted value.
9194         (simplify_subreg): If OP is a SUBREG, try to preserve its
9195         SUBREG_PROMOTED_VAR_P information.
9196
9197 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
9198
9199         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
9200         (VN_INFO_GET): Allocate new objects on the obstack.
9201         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
9202         for rpo_numbers_temp, for consistency.
9203         (free_scc_vn): Free the obstack.
9204
9205 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
9206
9207         * doc/invoke.texi: Document -ftree-loop-distribution.
9208         * tree-loop-distribution.c: New.
9209         * tree-pass.h (pass_loop_distribution): New.
9210         * graphds.h (struct graph): Add htab_t indices.
9211         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
9212         * tree-vectorizer.c (rename_variables_in_loop): Extern.
9213         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
9214         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
9215         * tree-data-ref.c (debug_data_dependence_relations): New.
9216         (dump_data_dependence_relation): Also print data references.
9217         (free_data_ref): Extern.
9218         (same_access_functions): Moved...
9219         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
9220         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9221         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
9222         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
9223         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
9224         (stmts_from_loop): Skip LABEL_EXPR.
9225         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
9226         New.
9227         (build_rdg): Initialize rdg->indices htab.
9228         (free_rdg, stores_from_loop, ref_base_address,
9229         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
9230         have_similar_memory_accesses_1, ref_base_address_1,
9231         remove_similar_memory_refs): New.
9232         * tree-data-ref.h: Depend on tree-chrec.h.
9233         (debug_data_dependence_relations, free_data_ref): Declared.
9234         (same_access_functions): ... here.
9235         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
9236         New.
9237         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
9238         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
9239         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
9240         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9241         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
9242         rdg_vertex_for_stmt): Declared.
9243         (struct rdg_edge): Add level.
9244         (RDGE_LEVEL): New.
9245         (free_rdg, stores_from_loop, remove_similar_memory_refs,
9246         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
9247         Declared.
9248         (rdg_has_similar_memory_accesses): New.
9249         * tree-vect-analyze.c: Remove unused static decls.
9250         * lambda.h (dependence_level): New.
9251         * common.opt (ftree-loop-distribution): New.
9252         * tree-flow.h (mark_virtual_ops_in_bb, 
9253         slpeel_tree_duplicate_loop_to_edge_cfg,
9254         rename_variables_in_loop): Declared.
9255         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
9256         (OBJS-common): Add tree-loop-distribution.o.
9257         (tree-loop-distribution.o): New rule.
9258         * tree-cfg.c (mark_virtual_ops_in_bb): New.
9259         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
9260         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
9261
9262 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
9263
9264         PR target/33963
9265         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
9266         other than structures and unions.
9267
9268 2008-02-28  Richard Guenther  <rguenther@suse.de>
9269
9270         Revert:
9271         2008-02-26  Richard Guenther  <rguenther@suse.de>
9272
9273         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9274         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9275         (lookup_decl_from_uid): Declare.
9276         (remove_decl_from_map): Likewise.
9277         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9278         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9279         (decl_for_uid_map): New global hashtable mapping DECL_UID
9280         to the decl tree.
9281         (init_ttree): Allocate it.
9282         (insert_decl_to_uid_decl_map): New helper function.
9283         (make_node_stat): Insert new decls into the map.
9284         (copy_node_stat): Likewise.
9285         (lookup_decl_from_uid): New function.
9286         (remove_decl_from_map): Likewise.
9287         (print_decl_for_uid_map_statistics): New helper.
9288         (dump_tree_statistics): Call it.
9289
9290         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9291         (referenced_var_iterator): Adjust.
9292         (FOR_EACH_REFERENCED_VAR): Adjust.
9293         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9294         (num_referenced_vars): Adjust.
9295         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9296         (first_referenced_var): Remove.
9297         (end_referenced_vars_p): Likewise.
9298         (next_referenced_var): Likewise.
9299         (referenced_var_iterator_set): New helper function.
9300         * tree-dfa.c (referenced_var_lookup): Adjust.
9301         (referenced_var_check_and_insert): Likewise.
9302         (remove_referenced_var): Likewise.
9303         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9304         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9305         (verify_call_clobbering): Likewise.
9306         (verify_memory_partitions): Likewise.
9307         (init_tree_ssa): Allocate bitmap instead of hashtable for
9308         referenced_vars.
9309         (delete_tree_ssa): Adjust.
9310         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9311         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9312         (compute_tag_properties): Likewise.
9313         (set_initial_properties): Likewise.
9314         (find_partition_for): Likewise.
9315         (update_reference_counts): Likewise.
9316         (dump_may_aliases_for): Likewise.
9317         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9318         (add_call_clobber_ops): Likewise.
9319         (add_call_read_ops): Likewise.
9320         (get_asm_expr_operands): Likewise.
9321         * tree-into-ssa.c (dump_decl_set): Likewise.
9322         (update_ssa): Likewise.
9323         * tree-sra.c (scan_function): Likewise.
9324         (decide_instantiations): Likewise.
9325         (scalarize_parms): Likewise.
9326         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9327         (dsa_named_for): Likewise.
9328         * tree-ssa-structalias.c (update_alias_info): Likewise.
9329         (merge_smts_into): Likewise.
9330
9331 2008-02-27  David Daney  <ddaney@avtrex.com>
9332
9333         PR target/34409
9334         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
9335         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
9336         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
9337         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
9338         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
9339
9340 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
9341
9342         PR target/25477
9343         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9344         (BUILT_IN_NEXTTOWARD): Remove.
9345         (BUILT_IN_NEXTTOWARDF): Ditto.
9346         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9347         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
9348
9349 2008-02-27  Tom Tromey  <tromey@redhat.com>
9350
9351         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9352         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9353
9354 2008-02-27  Jan Beulich  <jbeulich@novell.com>
9355
9356         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9357         update the respective field on newdecl.
9358
9359 2008-02-27  Revital Eres  <eres@il.ibm.com>
9360
9361         PR rtl-optimization/34999
9362         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9363         crossing edges that ends with a call insn.
9364         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9365         call insn and clear the EDGE_CROSSING flag of the crossing edge
9366         when fixing fallthru edges.
9367
9368 2008-02-27  Richard Guenther  <rguenther@suse.de>
9369
9370         PR middle-end/35390
9371         * fold-const.c (fold_unary): Return the correct argument,
9372         converted to the result type.
9373
9374 2008-02-27  Richard Guenther  <rguenther@suse.de>
9375
9376         PR middle-end/34971
9377         * expr.c (expand_expr_real_1): Assert on rotates that operate
9378         on partial modes.
9379         * fold-const.c (fold_binary): Use the types precision, not the
9380         bitsize of the mode if folding rotate expressions.  Build rotates
9381         only for full modes.
9382
9383 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
9384
9385         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9386         and CPP_PRAGMA_EOL.
9387         * c-pragma.c (pragma_ns_name): New typedef.
9388         (registered_pp_pragmas): New variable.
9389         (c_pp_lookup_pragma): New function.
9390         (c_register_pragma_1): If flag_preprocess_only, do nothing
9391         for non-expanded pragmas, for expanded ones push pragma's
9392         namespace and name into registered_pp_pragmas vector.
9393         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9394         flag_preprocess_only, don't register GCC pch_preprocess
9395         pragma if flag_preprocess_only.
9396         * c-opts.c (c_common_init): Call init_pragma even if
9397         flag_preprocess_only.
9398         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9399         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9400         cpp_register_pragma if flag_preprocess_only.
9401
9402 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9403
9404         PR c/28800
9405         * c-parser.c (c_parser_translation_unit): Warn for empty
9406         translation unit, not empty source file.
9407
9408 2008-02-26  Paul Brook  <paul@codesourcery.com>
9409
9410         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9411         operand for Thumb-2.
9412         * config/arm/arm.h (reg_class): Add CORE_REGS.
9413         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9414         (BASE_REG_CLASS): Use CORE_REGS.
9415         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9416         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9417         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9418         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9419         ARM_REGNO_OK_FOR_INDEX_P.
9420         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9421         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9422         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9423         (ldm/stm peepholes): Ditto.
9424         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9425         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9426         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9427         * config/arm/constraints.md: Enable "k" constraint on ARM.
9428
9429 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9430
9431         * config/rs6000/rs6000.c: Annotate cache line size field in all
9432         instances of struct processor_costs.
9433
9434 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9435
9436         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9437         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9438         jump_bypass): New counters.
9439         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9440         * dce.c (gate_ud_dce): Same.
9441         (gate_fast_dce): Same.
9442         * dse.c (gate_dse1): New function.
9443         (gate_dse2): New function.
9444         (gate_dse): Merge results of new gate functions.
9445         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9446         (gate_handle_jump_bypass): Add dbg_cnt.
9447         (gate_handle_gcse): Add dbg_cnt.
9448         * ifcvt.c (gate_handle_if_conversion): Same.
9449         (gate_handle_if_after_combine): Same.
9450         (gate_handle_if_after_reload): Same.
9451         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9452
9453 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9454
9455         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9456         line sizes.
9457         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9458
9459 2008-02-26  Jason Merrill  <jason@redhat.com>
9460
9461         PR c++/35315
9462         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9463         alone if it's the naming decl for the type's main variant.
9464
9465 2008-02-26  Tom Tromey  <tromey@redhat.com>
9466
9467         * system.h (USE_MAPPED_LOCATION): Poison.
9468         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9469         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9470         (make_goto_expr_edges): Likewise.
9471         (remove_bb): Likewise.
9472         (execute_warn_function_return): Likewise.
9473         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9474         location_t.
9475         * c-common.c (fname_decl): Remove old location code.
9476         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9477         location code.
9478         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9479         variant.
9480         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9481         (gen_rtx_ASM_INPUT): Likewise.
9482         (gen_rtx_ASM_INPUT_loc): Likewise.
9483         (get_rtx_asm_OPERANDS): Remove.
9484         * cfglayout.c (insn_locators_alloc): Remove old location code.
9485         (set_curr_insn_source_location): Likewise.
9486         (curr_insn_locator): Likewise.
9487         * print-tree.c (print_node): Remove old location code.
9488         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9489         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9490         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9491         location_from_locus.
9492         (construct_exit_block): Remove old location code.
9493         * emit-rtl.c (force_next_line_note): Remove old location code.
9494         * profile.c (branch_prob): Remove old location code.
9495         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9496         LOC_LINE): Remove old-location variants.
9497         * langhooks.c (lhd_print_error_function): Remove old location
9498         code.
9499         * configure, config.in: Rebuilt.
9500         * configure.ac (--enable-mapped-location): Remove.
9501         * c-decl.c (c_init_decl_processing): Remove old location code.
9502         (finish_function): Likewise.
9503         * recog.c (decode_asm_operands): Remove old location code.
9504         * c-pch.c (c_common_read_pch): Remove old location code.
9505         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9506         variants.
9507         * gimple-low.c (lower_function_body): Remove old location code.
9508         * toplev.c (unknown_location): Remove.
9509         (push_srcloc): Remove old-location variant.
9510         (process_options): Remove old location code.
9511         (lang_dependent_init): Likewise.
9512         * input.h (UNKNOWN_LOCATION): Move definition.
9513         (location_t): Undeprecate.
9514         (source_locus): Remove.
9515         (location_from_locus): Remove.
9516         (struct location_s): Remove.
9517         Remove all old-location code.
9518         (input_line, input_filename): Remove.
9519         * final.c (final_scan_insn): Remove old location code.
9520         * diagnostic.c (diagnostic_build_prefix): Remove
9521         USE_MAPPED_LOCATION test.
9522         * tree.h (gimple_stmt) <locus>: Now a location_t.
9523         (tree_exp) <locus>: Likewise.
9524         (DECL_IS_BUILTIN): Remove old-location variant.
9525         (annotate_with_file_line, annotate_with_locus): Likewise.
9526         (expr_locus, set_expr_locus): Update.
9527         * tree.c (build1_stat): Remove old location code.
9528         (last_annotated_node): Remove.
9529         (annotate_with_file_line): Remove old-location variant.
9530         (annotate_with_locus): Likewise.
9531         (expr_location): Remove old location code.
9532         (set_expr_location): Likewise.
9533         (expr_has_location): Likewise.
9534         (expr_locus): Likewise.
9535         (set_expr_locus): Likewise.
9536         (expr_filename): Don't use location_from_locus.
9537         (expr_lineno): Likewise.
9538         * rtl-error.c (location_for_asm): Remove old location code.
9539         * c-lex.c (cb_line_change): Remove old location code.
9540         (fe_file_change): Likewise.
9541         (cb_def_pragma): Likewise.
9542         (c_lex_with_flags): Likewise.
9543         * gengtype.c (do_typedef): Don't special-case location types.
9544         (define_location_structures): Remove.
9545         (main): Don't call define_location_structures.
9546         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9547         code.
9548
9549 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9550
9551         PR 26264
9552         * builtins.def (BUILT_IN_STDARG_START): Remove.
9553         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9554         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9555         * tree-inline.c (inline_forbidden_p_1): Likewise.
9556         
9557 2008-02-26  Richard Guenther  <rguenther@suse.de>
9558
9559         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9560         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9561         (lookup_decl_from_uid): Declare.
9562         (remove_decl_from_map): Likewise.
9563         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9564         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9565         (decl_for_uid_map): New global hashtable mapping DECL_UID
9566         to the decl tree.
9567         (init_ttree): Allocate it.
9568         (insert_decl_to_uid_decl_map): New helper function.
9569         (make_node_stat): Insert new decls into the map.
9570         (copy_node_stat): Likewise.
9571         (lookup_decl_from_uid): New function.
9572         (remove_decl_from_map): Likewise.
9573         (print_decl_for_uid_map_statistics): New helper.
9574         (dump_tree_statistics): Call it.
9575
9576         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9577         (referenced_var_iterator): Adjust.
9578         (FOR_EACH_REFERENCED_VAR): Adjust.
9579         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9580         (num_referenced_vars): Adjust.
9581         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9582         (first_referenced_var): Remove.
9583         (end_referenced_vars_p): Likewise.
9584         (next_referenced_var): Likewise.
9585         (referenced_var_iterator_set): New helper function.
9586         * tree-dfa.c (referenced_var_lookup): Adjust.
9587         (referenced_var_check_and_insert): Likewise.
9588         (remove_referenced_var): Likewise.
9589         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9590         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9591         (verify_call_clobbering): Likewise.
9592         (verify_memory_partitions): Likewise.
9593         (init_tree_ssa): Allocate bitmap instead of hashtable for
9594         referenced_vars.
9595         (delete_tree_ssa): Adjust.
9596         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9597         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9598         (compute_tag_properties): Likewise.
9599         (set_initial_properties): Likewise.
9600         (find_partition_for): Likewise.
9601         (update_reference_counts): Likewise.
9602         (dump_may_aliases_for): Likewise.
9603         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9604         (add_call_clobber_ops): Likewise.
9605         (add_call_read_ops): Likewise.
9606         (get_asm_expr_operands): Likewise.
9607         * tree-into-ssa.c (dump_decl_set): Likewise.
9608         (update_ssa): Likewise.
9609         * tree-sra.c (scan_function): Likewise.
9610         (decide_instantiations): Likewise.
9611         (scalarize_parms): Likewise.
9612         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9613         (dsa_named_for): Likewise.
9614         * tree-ssa-structalias.c (update_alias_info): Likewise.
9615         (merge_smts_into): Likewise.
9616
9617 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9618
9619         PR 34351
9620         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9621         * c-opts.c (c_common_handle_option): Wall enables
9622         Wvolatile-register-var.
9623         * common.opt: Move Wvolatile-register-var to...
9624         * c.opt: ...here.
9625         
9626 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9627
9628         * common.opt (Wlarger-than=): New.
9629         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9630         -Wlarger-than=.
9631         * opts.c (common_handle_option): Handle -Wlarger-than=.
9632         * optc-gen.awk: Likewise.
9633         * opth-gen.awk: Likewise.
9634         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9635         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9636         
9637 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9638
9639         * c-common.c (match_case_to_enum_1): Add appropriate
9640         OPT_W* parameter to warning.
9641         (c_do_switch_warnings): Likewise.
9642         * c-typeck.c (warning_init): Add one more parameter following
9643         'warning' function.
9644         (push_init_level): Update call to warning_init.
9645         (pop_init_level): Likewise.
9646         (add_pending_init): Likewise.
9647         (output_init_element: Likewise.
9648
9649 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9650
9651         PR 28322
9652         * toplev.c (toplev_main): If there are warnings or error, print
9653         errors for ignored options.
9654         * opts.c (ignored_options): New static variable.
9655         (postpone_unknown_option_error): New.
9656         (print_ignored_options): New.
9657         (handle_option): Postpone errors for unknown -Wno-* options.
9658         * opts.h (print_ignored_options): Declare.
9659         
9660 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9661
9662         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9663         to "ghost".
9664
9665 2008-02-25  Richard Guenther  <rguenther@suse.de>
9666
9667         Revert:
9668         2008-02-25  Richard Guenther  <rguenther@suse.de>
9669
9670         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9671         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9672         (lookup_decl_from_uid): Declare.
9673         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9674         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9675         (decl_for_uid_map): New global hashtable mapping DECL_UID
9676         to the decl tree.
9677         (init_ttree): Allocate it.
9678         (insert_decl_to_uid_decl_map): New helper function.
9679         (make_node_stat): Insert new decls into the map.
9680         (copy_node_stat): Likewise.
9681         (lookup_decl_from_uid): New function.
9682         (print_decl_for_uid_map_statistics): New helper.
9683         (dump_tree_statistics): Call it.
9684
9685         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9686         (referenced_var_iterator): Adjust.
9687         (FOR_EACH_REFERENCED_VAR): Adjust.
9688         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9689         (num_referenced_vars): Adjust.
9690         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9691         (first_referenced_var): Remove.
9692         (end_referenced_vars_p): Likewise.
9693         (next_referenced_var): Likewise.
9694         (referenced_var_iterator_set): New helper function.
9695         * tree-dfa.c (referenced_var_lookup): Adjust.
9696         (referenced_var_check_and_insert): Likewise.
9697         (remove_referenced_var): Likewise.
9698         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9699         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9700         (verify_call_clobbering): Likewise.
9701         (verify_memory_partitions): Likewise.
9702         (init_tree_ssa): Allocate bitmap instead of hashtable for
9703         referenced_vars.
9704         (delete_tree_ssa): Adjust.
9705         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9706         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9707         (compute_tag_properties): Likewise.
9708         (set_initial_properties): Likewise.
9709         (find_partition_for): Likewise.
9710         (update_reference_counts): Likewise.
9711         (dump_may_aliases_for): Likewise.
9712         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9713         (add_call_clobber_ops): Likewise.
9714         (add_call_read_ops): Likewise.
9715         (get_asm_expr_operands): Likewise.
9716         * tree-into-ssa.c (dump_decl_set): Likewise.
9717         (update_ssa): Likewise.
9718         * tree-sra.c (scan_function): Likewise.
9719         (decide_instantiations): Likewise.
9720         (scalarize_parms): Likewise.
9721         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9722         (dsa_named_for): Likewise.
9723         * tree-ssa-structalias.c (update_alias_info): Likewise.
9724         (merge_smts_into): Likewise.
9725
9726 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9727
9728         PR fortran/29549
9729         * doc/invoke.texi (-fcx-limited-range): Document new option.
9730         * toplev.c (process_options): Handle -fcx-fortran-rules.
9731         * common.opt: Add documentation for -fcx-fortran-rules.
9732
9733 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9734
9735         PR c/35162
9736         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9737         actual behaviour and C99.
9738         
9739 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9740
9741         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9742         (ASM_CPU_POWER6_SPEC): Likewise.
9743         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9744         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9745         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9746
9747 2008-02-25  Richard Guenther  <rguenther@suse.de>
9748
9749         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9750         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9751         (lookup_decl_from_uid): Declare.
9752         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9753         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9754         (decl_for_uid_map): New global hashtable mapping DECL_UID
9755         to the decl tree.
9756         (init_ttree): Allocate it.
9757         (insert_decl_to_uid_decl_map): New helper function.
9758         (make_node_stat): Insert new decls into the map.
9759         (copy_node_stat): Likewise.
9760         (lookup_decl_from_uid): New function.
9761         (print_decl_for_uid_map_statistics): New helper.
9762         (dump_tree_statistics): Call it.
9763
9764         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9765         (referenced_var_iterator): Adjust.
9766         (FOR_EACH_REFERENCED_VAR): Adjust.
9767         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9768         (num_referenced_vars): Adjust.
9769         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9770         (first_referenced_var): Remove.
9771         (end_referenced_vars_p): Likewise.
9772         (next_referenced_var): Likewise.
9773         (referenced_var_iterator_set): New helper function.
9774         * tree-dfa.c (referenced_var_lookup): Adjust.
9775         (referenced_var_check_and_insert): Likewise.
9776         (remove_referenced_var): Likewise.
9777         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9778         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9779         (verify_call_clobbering): Likewise.
9780         (verify_memory_partitions): Likewise.
9781         (init_tree_ssa): Allocate bitmap instead of hashtable for
9782         referenced_vars.
9783         (delete_tree_ssa): Adjust.
9784         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9785         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9786         (compute_tag_properties): Likewise.
9787         (set_initial_properties): Likewise.
9788         (find_partition_for): Likewise.
9789         (update_reference_counts): Likewise.
9790         (dump_may_aliases_for): Likewise.
9791         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9792         (add_call_clobber_ops): Likewise.
9793         (add_call_read_ops): Likewise.
9794         (get_asm_expr_operands): Likewise.
9795         * tree-into-ssa.c (dump_decl_set): Likewise.
9796         (update_ssa): Likewise.
9797         * tree-sra.c (scan_function): Likewise.
9798         (decide_instantiations): Likewise.
9799         (scalarize_parms): Likewise.
9800         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9801         (dsa_named_for): Likewise.
9802         * tree-ssa-structalias.c (update_alias_info): Likewise.
9803         (merge_smts_into): Likewise.
9804
9805 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9806
9807         PR target/35258
9808         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9809         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9810         * alias.h (nonoverlapping_memrefs_p): Likewise.
9811
9812 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9813
9814         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9815         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9816         __emultls_get_address, __emultls_register_common,
9817         __floatundi?f, and _Unwind_GetIPInfo.
9818         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9819         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9820         (gen_regparm_prefix): Likewise.
9821         (i386_nlm_encode_section_info): Sync with
9822         config/i386/winnt.c:i386_pe_encode_section_info().
9823         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9824         i386_nlm_mangle_decl_assembler_name): New.
9825         (netware_override_options): New.
9826         * config/i386/netware.h (netware_override_options): Declare.
9827         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9828         (i386_nlm_mangle_decl_assembler_name): Declare.
9829         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9830
9831 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9832
9833         PR other/32948
9834         * c-decl.c (grokdeclarator): Remove unused local variables
9835         `typedef_type' and `type_as_written'.
9836         * bb-reorder.c
9837         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9838         unused local variable `has_hot_blocks'.
9839         (fix_crossing_conditional_branches): Remove unused local variable
9840         `prev_bb'.
9841         
9842 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9843
9844         PR middle-end/19984
9845         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9846         using DEF_C99_BUILTIN.
9847         (BUILT_IN_NANF): Ditto.
9848         (BUILT_IN_NANL): Ditto.
9849
9850 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9851             Revital Eres  <eres@il.ibm.com>
9852
9853         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9854         regarding the order of two dependent insns in the same row.
9855
9856 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9857
9858         * stor-layout.c (layout_decl): Do not bump the alignment of a
9859         bit-field to more than byte alignment if it is packed.
9860
9861 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9862
9863         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9864         e300c2 and e300c3.
9865
9866 2008-02-24  Diego Novillo  <dnovillo@google.com>
9867
9868         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9869
9870         PR 33738
9871         * tree-vrp.c (vrp_evaluate_conditional): With
9872         -Wtype-limits, emit a warning when comparing against a
9873         constant outside the natural range of OP0's type.
9874         * c.opt (Wtype-limits): Move ...
9875         * common.opt (Wtype-limits): ... here.
9876
9877 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9878
9879         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9880         * config/rs6000/e300c2c3.md: New file.
9881         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9882         e300c2 and e300c3.
9883         (rs6000_override_options): Add e300c2 and e300c3 cases to
9884         processor_target_table. Do not allow usage of Altivec or Spe
9885         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9886         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9887         * config/rs6000/rs6000.h (processor_type): Add
9888         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9889         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9890         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9891         and ppce300c3. Include e300c2c3.md.
9892
9893 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9894
9895         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9896         instead of TARGET_STRICT_ALIGN.
9897
9898 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9899
9900         * explow.c (memory_address): Assert that the generated address is
9901         valid.
9902
9903 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9904
9905         PR target/25477
9906         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9907         * config/darwin-ppc-ldouble-patch.def: New file.
9908         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9909         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9910         SUBTARGET_INIT_BUILTINS if defined.
9911         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9912         New functions.
9913
9914 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9915
9916         PR rtl-opt/33512
9917         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9918         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9919
9920 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9921
9922         PR pch/35027
9923         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9924         file" warning condtional on -Winvalid-PCH.
9925
9926 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9927
9928         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9929
9930 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9931
9932         PR target/22076
9933         PR target/34256 
9934         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9935         prevent reload from using MMX registers.
9936         (*mov<mode>_internal): Ditto.
9937         (*movv2sf_internal_rex64): Ditto.
9938         (*movv2sf_internal): Ditto.
9939
9940 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9941
9942         PR documentation/31569
9943         * doc/install.texi2html: Use makeinfo --no-number-sections.
9944
9945 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9946
9947         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9948         ensure that we can address an entire entity > 8 bytes.  Don't
9949         generate reg+reg addressing for such data.
9950
9951 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9952
9953         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9954         strings when optimizing for size, unless the target cares about
9955         alignment.
9956
9957 2008-02-22  Tom Tromey  <tromey@redhat.com>
9958
9959         * regclass.c (current_pass): Remove declaration.
9960
9961 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9962
9963         * config/avr/libgcc.S (__RAMPZ__): Define.
9964         (__do_copy_data): Add for devices with 128KB code memory.
9965
9966 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9967
9968         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9969         Use spe_abi.
9970         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9971
9972 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9973
9974         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9975         GENNONACR_REGS.
9976
9977 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9978
9979         PR c/19999
9980         * c-typeck.c (build_binary_op): Warn about floating point
9981         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9982
9983 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9984
9985         PR target/34526
9986         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9987         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9988         add vrsave.
9989         (rs6000_override_options): Set altivec_abi as default, not override,
9990         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9991         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9992         is used; use new member spe_abi.
9993         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9994         spe_abi and altivec_abi.
9995
9996 2008-02-22  Tomas Bily  <tbily@suse.cz>
9997
9998         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9999
10000 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10001
10002         PR bootstrap/35273
10003         * config.build (build_file_translate): Set to `CMD //c' only if
10004         it works.
10005         * Makefile.in (build_file_translate): Improve comment.
10006
10007 2008-02-21  Jan Hubicka  <jh@suse.cz>
10008
10009         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
10010         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
10011         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
10012
10013 2008-02-21  Michael Matz  <matz@suse.de>
10014
10015         PR target/35264
10016         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
10017
10018 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
10019
10020         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
10021         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
10022         as insn constraint.
10023         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
10024         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
10025         SSE_VEC_FLOAT_MODE_P as insn constraint.
10026         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
10027         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
10028         sse4a_movntdf using MODEF mode iterator.
10029         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
10030         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
10031         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
10032         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
10033         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
10034         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
10035         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
10036
10037 2008-02-21  Richard Guenther  <rguenther@suse.de>
10038
10039         * tree.def (PAREN_EXPR): New tree code.
10040         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
10041         and PAREN_EXPR.
10042         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
10043         * expr.c (expand_expr_real_1): Likewise.
10044         * tree-inline.c (estimate_num_insns_1): Likewise.
10045         * tree-complex.c (expand_complex_move): Likewise.
10046         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
10047         as plain x.
10048
10049 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10050
10051         PR target/35225
10052         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
10053
10054 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10055
10056         PR target/35190
10057         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
10058
10059         * config/sh/sh.c (find_barrier): Don't go past
10060         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
10061
10062 2008-02-20  DJ Delorie  <dj@redhat.com>
10063
10064         * config/h8300/h8300.md (insv): Force source operand to be a register.
10065
10066         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
10067         as a jump, not as a plain insn.
10068         
10069 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
10070
10071         * doc/invoke.texi (Warning Options): Add new option
10072         -Wframe-larger-than=.
10073         (-Wframe-larger-than): Document.
10074
10075         * flags.h (warn_frame_larger_than, frame_larger_than_size):
10076         Add declarations for new option variables.
10077
10078         * final.c (final_start_function): Check the frame size
10079         before emission and issue a Wframe-larger-than warning.
10080
10081         * opts.c (warn_frame_larger_than, frame_larger_than_size):
10082         Add definitions for new option variables.
10083         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
10084
10085         * common.opt (Wframe-larger-than=): New option.
10086
10087 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10088
10089         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
10090         (<sse>_div<mode>3): Ditto.
10091         (<sse>_vmdiv<mode>3): Ditto.
10092         (<sse>_vmsqrt<mode>2): Ditto.
10093         (*smax<mode>3): Ditto.
10094         (sse5_frcz<mode>2): Ditto.
10095         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
10096         as insn constraint.
10097
10098 2008-02-20  Richard Guenther  <rguenther@suse.de>
10099
10100         PR middle-end/35265
10101         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
10102         be happy with INTEGRAL_TYPE_P.
10103
10104 2008-02-20  Richard Guenther  <rguenther@suse.de>
10105
10106         * fold-const.c (split_tree): Associate floatig-point expressions
10107         if flag_associative_math is set.
10108
10109 2008-02-20  Richard Guenther  <rguenther@suse.de>
10110
10111         * tree.h (fold_real_zero_addition_p): Declare.
10112         * fold-const.c (fold_real_zero_addition_p): Export.
10113         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
10114         floating-point operations with zero and one.
10115
10116 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
10117
10118         * doc/install.texi: Correct references to CFLAGS, replacing them
10119         with BOOT_CFLAGS.  Document flags used during bootstrap for
10120         target libraries.
10121                                 
10122 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10123
10124         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
10125         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
10126         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
10127         insn constraint.
10128         (smin<mode>3): Ditto from similar patterns.
10129         (smax<mode>3): Ditto.
10130         (*ieee_smin<mode>3): Ditto.
10131         (*ieee_smax<mode>3): Ditto.
10132         * config/i386/sse.md (sse): New mode attribute.
10133         (mov<mode>): Macroize expander from movv4sf and movv2df using
10134         SSEMODEF2P mode iterator.
10135         (<sse>_movnt<mode>): Ditto from similar patterns. Use
10136         SSE_VEC_FLOAT_MODE_P as insn constraint.
10137         (storent<mode>): Ditto.
10138         (storent<mode>): Macroize expander from storentsf and storentdf using
10139         MODEF mode iterator.
10140         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
10141         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
10142         (abs<mode>2): Ditto from similar patterns.
10143         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
10144         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
10145         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
10146         (<sse>_vmsqrt<mode>2): Ditto.
10147         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
10148         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
10149         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
10150         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
10151         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
10152         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
10153         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
10154         insn constraint.
10155         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
10156         iterator and SSE_FLOAT_MODE_P as insn constraint.
10157         (<sse>_ucomi): Ditto from similar patterns.
10158         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
10159         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
10160         SSE_VEC_FLOAT_MODE_P as insn constraint.
10161         (vcond<mode>): Ditto from similar patterns.
10162         (and<mode>3, *and<mode>3): Ditto.
10163         (<sse>_nand<mode>3): Ditto.
10164         (ior<mode>3, *ior<mode>3): Ditto.
10165         (xor<mode>3, *xor<mode>3): Ditto.
10166         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
10167         iterator and SSE_FLOAT_MODE_P as insn constraint.
10168         (*nand<mode>3): Ditto from similar patterns.
10169         (*ior<mode>3): Ditto.
10170         (*xor<mode>3): Ditto.
10171
10172 2008-02-20  Ira Rosen  <irar@il.ibm.com>
10173
10174         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
10175         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
10176         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
10177
10178 2008-02-19  Jan Hubicka  <jh@suse.cz>
10179
10180         * predict.c (tree_bb_level_predictions): Remove variable next
10181         mistakely introduced by previous commit.
10182
10183 2008-02-19  Jan Hubicka  <jh@suse.cz>
10184
10185         * predict.c (predict_paths_leading_to): Rewrite.
10186         (predict_paths_for_bb): New.
10187         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
10188
10189 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10190
10191         PR bootstrap/35218
10192         * Makefile.in (build_file_translate): New.
10193         (gcc-vers.texi): Use it for translating $(abs_srcdir).
10194         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
10195         * configure.ac (build_file_translate): Substitute it.
10196         * configure: Regenerate.
10197
10198 2008-02-19  Jan Hubicka  <jh@suse.cz>
10199
10200         PR rtl-optimization/34408
10201         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
10202         invalid sharing.
10203
10204 2008-02-19  Jan Hubicka  <jh@suse.cz>
10205
10206         PR middle-end/28779
10207         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
10208         call_expr.
10209
10210 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
10211
10212         PR Ada/35186
10213         * config/i386/i386-modes.def: Revert the last DI alignment
10214         change until Ada people can look into it.
10215
10216 2008-02-19  Nick Clifton  <nickc@redhat.com>
10217
10218         * opts.c (print_specific_help): Fix typo in --help text.
10219
10220 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
10221
10222         PR target/35239
10223         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
10224         32-bit inline asm without asm alternatives for host GCC < 3.0.
10225
10226 2008-02-19  Richard Guenther  <rguenther@suse.de>
10227
10228         PR tree-optimization/34989
10229         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
10230         Allow propagation to INDIRECT_REF if we can simplify only.
10231
10232 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10233
10234         * c-common.c (warn_for_collisions_1): Use appropriate option when
10235         warning.
10236
10237 2008-02-19  Nick Clifton  <nickc@redhat.com>
10238
10239         PR other/31349
10240         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
10241         (handle_options): Fix indentation.
10242         (print_filtered_help): If no language-specific options were
10243         displayed tell the user how to list all the options supported by
10244         the language's front-end.
10245         (print_specific_help): Fix indentation and remove duplicate line.
10246         (common_handle_option): Handle the -v option.
10247         For --help enable the display of undocumented options if the -v
10248         switch has been included on the command line.
10249         For --help= check for overlaps in the arguments between the option
10250         classes and the language names and issue a warning when they
10251         cannot be disambiguated.
10252         * c.opt (v): Pass on to the common option handler.
10253
10254 2008-02-19  Revital Eres  <eres@il.ibm.com> 
10255
10256         * modulo-sched.c (sms_schedule): Change dump message when
10257         create_ddg function fails.
10258         (try_scheduling_node_in_cycle): Rename row to cycle.
10259         (print_partial_schedule): Rename CYCLE to ROW.
10260
10261 2008-02-19  Christian Bruel  <christian.bruel@st.com>
10262             Zdenek Dvorak  <ook@ucw.cz>
10263
10264         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
10265
10266 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10267
10268         PR target/33555
10269         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
10270         (*x86_movdicc_0_m1_se): Ditto.
10271
10272 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10273
10274         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
10275         (CMPtype): Define as __gcc_CMPtype.
10276         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
10277         (CMPtype): Define as __gcc_CMPtype.
10278
10279 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
10280
10281         Support valgrind 3.3 for --enable-checking=valgrind.
10282         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
10283         here.
10284         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
10285         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
10286         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
10287         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
10288         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
10289         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
10290         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
10291         respectively.
10292         * ggc-zone.c: Similar.
10293         * ggc-page.c: Similar.
10294
10295 2008-02-19  Paul Brook  <paul@codesourcery.com>
10296
10297         PR target/35071
10298         * config/arm/ieee754-df.S: Fix do_it typo.
10299         * config/arm/ieee754-sf.S: Fix do_it typo.
10300
10301 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10302
10303         PR target/35189
10304         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
10305         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
10306         (OPTION_MASK_ISA_SSE_SET): Likewise.
10307         (OPTION_MASK_ISA_SSE2_SET): Likewise.
10308         (OPTION_MASK_ISA_SSE3_SET): Likewise.
10309         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
10310         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
10311         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
10312         (OPTION_MASK_ISA_SSE4_SET): Likewise.
10313         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
10314         (OPTION_MASK_ISA_SSE5_SET): Likewise.
10315         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
10316         (OPTION_MASK_ISA_MMX_UNSET): Updated.
10317         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
10318         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
10319         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
10320         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
10321         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
10322         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
10323         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
10324         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
10325         (OPTION_MASK_ISA_SSE4): Removed.
10326         (ix86_handle_option): Turn on bits in ix86_isa_flags and
10327         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
10328         (override_options): Don't turn on implied SSE/MMX bits in
10329         ix86_isa_flags.
10330
10331 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10332
10333         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10334         32bit host.
10335
10336 2008-02-18  Joey Ye  <joey.ye@intel.com>
10337
10338         PR middle-end/34921
10339         * tree-nested.c (insert_field_into_struct): Set type alignment
10340         to field alignment if the former is less than the latter.
10341
10342 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
10343
10344         * BASE-VER: Set to 4.4.0.
10345
10346 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10347
10348         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10349         * doc/cfg.texi: Likewise.
10350         * doc/extend.texi: Likewise.
10351         * doc/gty.texi: Likewise.
10352         * doc/invoke.texi: Likewise.
10353         * doc/loop.texi: Likewise.
10354         * doc/md.texi: Likewise.
10355         * doc/passes.texi: Likewise.
10356         * doc/rtl.texi: Likewise.
10357         * doc/sourcebuild.texi: Likewise.
10358         * doc/tm.texi: Likewise.
10359         * doc/tree-ssa.texi: Likewise.
10360
10361 2008-02-17  Richard Guenther  <rguenther@suse.de>
10362
10363         PR middle-end/35227
10364         * tree-complex.c (init_parameter_lattice_values): Handle parameters
10365         without default definition.
10366
10367 2008-02-17  Richard Guenther  <rguenther@suse.de>
10368
10369         PR tree-optimization/35231
10370         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10371         if A | B != 1.
10372
10373 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
10374
10375         Revert:
10376         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
10377         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10378         libgcc_cmp_return mode.
10379
10380 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10381
10382         PR c/28368
10383         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10384
10385 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
10386
10387         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10388         multilibs.
10389
10390 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10391
10392         * doc/c-tree.texi: Use `@.' where appropriate.
10393         * doc/extend.texi: Likewise.
10394         * doc/install.texi: Likewise.
10395         * doc/invoke.texi: Likewise.
10396         * doc/loop.texi: Likewise.
10397         * doc/makefile.texi: Likewise.
10398         * doc/md.texi: Likewise.
10399         * doc/passes.texi: Likewise.
10400         * doc/standards.texi: Likewise.
10401         * doc/tm.texi: Likewise.
10402
10403 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10404
10405         PR middle-end/35196
10406         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10407         in entry_bb.
10408         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10409         rather than in entry_bb.
10410
10411 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10412
10413         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10414         libgcc_cmp_return mode.
10415
10416 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10417
10418         PR middle-end/35130
10419         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10420         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10421
10422 2008-02-15  Richard Guenther  <rguenther@suse.de>
10423             Zdenek Dvorak  <ook@ucw.cz>
10424
10425         PR tree-optimization/35164
10426         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10427         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10428         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10429         Only propagate addresses which do not have abnormal SSA_NAMEs
10430         in their operands.
10431
10432 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10433
10434         PR target/35088
10435         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10436
10437 2008-02-15  Jan Hubicka  <jh@suse.cz>
10438
10439         PR middle-end/35149
10440         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10441
10442 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10443
10444         PR middle-end/34621
10445         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10446         when calculating alignment_pad.
10447
10448 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10449
10450         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10451         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10452         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10453         and STACK_BOUNDARY define.
10454
10455 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10456
10457         PR preprocessor/35061
10458         * c-pragma.c (handle_pragma_pop_macro): Check that
10459         pushed_macro_table has been allocated.
10460
10461 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10462
10463         PR middle-end/35136
10464         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10465         (force_gimple_operand): Likewise.
10466         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10467         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10468         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10469         (find_interesting_uses_address): Check addressability and alignment
10470         of the base expression only after substituting bases of IVs into it.
10471
10472 2008-02-14  Michael Matz  <matz@suse.de>
10473
10474         PR target/34930
10475         * function.c (instantiate_virtual_regs_in_insn): Reload address
10476         before falling back to reloading the whole operand.
10477
10478 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10479
10480         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10481         before the first section switch note.
10482
10483 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10484
10485         * doc/bugreport.texi: Update copyright years.
10486         * doc/c-tree.texi: Likewise.
10487         * doc/cfg.texi: Likewise.
10488         * doc/cpp.texi: Likewise.
10489         * doc/cppinternals.texi: Likewise.
10490         * doc/fragments.texi: Likewise.
10491         * doc/frontends.texi: Likewise.
10492         * doc/gcc.texi: Likewise.
10493         * doc/gty.texi: Likewise.
10494         * doc/hostconfig.texi: Likewise.
10495         * doc/implement-c.texi: Likewise.
10496         * doc/libgcc.texi: Likewise.
10497         * doc/loop.texi: Likewise.
10498         * doc/makefile.texi: Likewise.
10499         * doc/options.texi: Likewise.
10500         * doc/passes.texi: Likewise.
10501         * doc/rtl.texi: Likewise.
10502         * doc/sourcebuild.texi: Likewise.
10503         * doc/standards.texi: Likewise.
10504         * doc/tree-ssa.texi: Likewise.
10505         * doc/trouble.texi: Likewise.
10506
10507         * doc/extend.texi: Use @: or add comma where appropriate.
10508         * doc/invoke.texi: Likewise.
10509         * doc/tm.texi: Likewise.
10510
10511 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10512
10513         PR target/34393
10514         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10515         to a reg.
10516
10517 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10518
10519         * doc/md.texi (clz, ctz): Add reference.
10520         * doc/rtl.texi (clz, ctz): Likewise.
10521
10522 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10523
10524         PR other/35148
10525         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10526         srcdir.
10527
10528 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10529
10530         * config/s390/s390.c (struct constant_pool): New field
10531         emit_pool_after added.
10532         (s390_mainpool_start): Set the emit_pool_after flag according
10533         to the section switch notes.
10534         (s390_mainpool_finish): Consider emit_pool_after when emitting
10535         the literal pool at the end of the function.
10536         (s390_chunkify_start): Force literal pool splits at section
10537         switch notes.
10538
10539 2008-02-13  Michael Matz  <matz@suse.de>
10540
10541         PR debug/35065
10542         * var-tracking.c (clobber_variable_part): Correctly traverse the
10543         list.
10544
10545 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10546
10547         PR 29673
10548         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10549         Add -fdump-ipa-inline.
10550         * tree-dump.c (dump_files): Remove tree-inlined dump.
10551         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10552         
10553 2008-02-12  Richard Guenther  <rguenther@suse.de>
10554
10555         PR tree-optimization/35171
10556         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10557         default defs.
10558
10559 2008-02-12  Richard Guenther  <rguenther@suse.de>
10560
10561         PR middle-end/35163
10562         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10563         value-preserving mode.  Disallow final truncation.
10564
10565 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10566
10567         PR middle-end/35136
10568         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10569         code from here to...
10570         (force_gimple_operand): ...here.
10571
10572 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10573
10574         PR c++/35144
10575         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10576         non-compatible pointers.
10577         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10578         different FIELD_DECLs, try harder by comparing field offsets, sizes
10579         and types.
10580
10581         PR inline-asm/35160
10582         * function.c (match_asm_constraints_1): Don't replace the same input
10583         multiple times.
10584
10585 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10586
10587         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10588         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10589         (expand_epilogue): Restore RAMPZ register.
10590         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10591
10592 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10593
10594         * config/i386/cygwin.asm: (__alloca): Correct calling
10595         convention and alignment.
10596         (__chkstk): Force 8 byte stack alignment.
10597
10598 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10599             Richard Guenther  <rguenther@suse.de>
10600
10601         PR tree-optimization/33992
10602         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10603         the zero we compare against.
10604
10605 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10606
10607         PR libfortran/35063
10608         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10609         to CloseHandle after unlocking to prevent accumulation of handle
10610         count.
10611
10612 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10613
10614         PR middle_end/34150
10615         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10616         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10617         and update LABEL_NUSES during and after reload.
10618
10619 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10620
10621         PR middle-end/34627
10622         * combine.c (simplify_if_then_else): Make sure the comparison is
10623         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10624
10625 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10626
10627         PR bootstrap/35051
10628         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10629         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10630         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10631         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10632         * tree.h (get_type_static_bounds): Likewise.
10633
10634 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10635
10636         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10637         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10638         Make -Wfoo language annotations match what the compiler outputs.
10639
10640 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10641
10642         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10643         intrinsics spu_convts, spu_convtu, spu_convtf.
10644
10645 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10646
10647         * doc/extend.texi (Function Attributes) <noinline>: Mention
10648         asm ("") as method to keep calls.
10649
10650 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10651
10652         PR other/32754
10653         * doc/options.texi (Options): Replace references to opts.sh with
10654         optc-gen.awk.
10655         * opts-common.c: Likewise.
10656         * optc-gen.awk: Likewise.
10657         
10658 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10659
10660         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10661
10662 2008-02-07  Richard Henderson  <rth@redhat.com>
10663
10664         PR rtl-opt/33410
10665         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10666         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10667         funny mode.
10668
10669 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10670
10671         PR tree-optimization/35085
10672         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10673         for operand entry oe2 in addition to operand entry oe3 in order to
10674         expose more opportunities for vectorizer sum reduction.
10675
10676 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10677
10678         PR other/35107
10679         * Makefile.in (LIBS): Remove $(GMPLIBS).
10680         (cc1-dummy, cc1): Add $(GMPLIBS).
10681
10682 2008-02-06  Jan Hubicka  <jh@suse.cz>
10683
10684         PR target/23322
10685         * i386.md (moddf_integer): Do not produce partial memory stalls for
10686         targets where it hurts.
10687
10688 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10689
10690         PR target/35083
10691         * optabs.c (expand_float): Do not check for decimal modes when
10692         expanding unsigned integer through signed conversion.
10693
10694 2008-02-06  Nick Clifton  <nickc@redhat.com>
10695
10696         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10697         inside the clobber with a match_operand and duplicated operand
10698         number in the constraint.
10699         (ineqbranchsi): Delete redundant comment.
10700
10701 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10702
10703         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10704         builtin_define ("__USE_INIT_FINI__").
10705         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10706         -msx multilibs.
10707         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10708
10709 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10710
10711         PR documentation/30330
10712         * doc/invoke.texi (C++ Dialect Options)
10713         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10714         For each warning option -Wfoo that allows -Wno-foo, ensure both
10715         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10716         entry of -Wswitch-default, index -Wnormalized= including the
10717         `=', and -Wlarger-than-@var{len} including @var{len}.
10718
10719 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10720
10721         * config/i386/i386.md (floatunssisf2): Use
10722         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10723         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10724         Macroize expander using MODEF mode iterator.
10725
10726 2008-02-05  Diego Novillo  <dnovillo@google.com>
10727
10728         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10729
10730         PR 33738
10731         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10732
10733 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10734
10735         PR other/35070
10736         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10737
10738 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10739
10740         PR target/35084
10741         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10742         to indicate if a message should be generated.
10743         (init_cumulative_args): Updated.
10744         (function_value_32): Likewise.
10745
10746 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10747
10748         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10749
10750 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10751
10752         PR target/35083
10753         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10754         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10755
10756 2008-02-04  Diego Novillo  <dnovillo@google.com>
10757
10758         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10759
10760         PR 33738
10761         * tree-vrp.c (vrp_evaluate_conditional): With
10762         -Wtype-limits, emit a warning when comparing against a
10763         constant outside the natural range of OP0's type.
10764
10765 2008-02-04  Richard Guenther  <rguenther@suse.de>
10766
10767         PR middle-end/33631
10768         * expr.c (count_type_elements): Give for unions instead of
10769         guessing.
10770
10771 2008-02-04  Richard Guenther  <rguenther@suse.de>
10772
10773         PR middle-end/35043
10774         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10775         to TYPE_DOMAINs base type instead of using bitsizetype here.
10776
10777 2008-02-03  Jason Merrill  <jason@redhat.com>
10778
10779         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10780
10781 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10782
10783         PR other/29972
10784         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10785         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10786         (RS/6000 and PowerPC Options): Fix typos and markup.
10787         * doc/passes.texi (Tree-SSA passes): Likewise.
10788
10789 2008-02-02  Michael Matz  <matz@suse.de>
10790
10791         PR target/35045
10792         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10793         from record_last_reg_set_info.
10794         (record_last_reg_set_info): Take an RTX argument, iterate over all
10795         constituent hardregs.
10796         (record_last_set_info, record_opr_changes): Change calls to
10797         new signature or to record_last_reg_set_info_regno.
10798
10799 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10800
10801         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10802
10803 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10804
10805         PR rtl-optimization/34773
10806         * reg-notes.def (EQUAL): Mention significance of combination of
10807         REG_EQUAL and REG_RETVAL.
10808         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10809         insn that has a REG_RETVAL.
10810
10811 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10812
10813         PR bootstrap/33781
10814         * configure.ac (--enable-fixed-point): Disable unless explicitly
10815         requested on IRIX.
10816         * configure: Regenerate.
10817
10818 2008-02-01  Richard Guenther  <rguenther@suse.de>
10819
10820         PR other/35042
10821         * invoke.texi (-finline-limit): Remove no longer true parts
10822         of the documentation.  Note that there is no default value.
10823
10824 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10825             Mark Mitchell  <mark@codesourcery.com>
10826             Ben Elliston  <bje@au.ibm.com>
10827
10828         PR c/29326
10829         * doc/extend.texi (Other Builtins): Document.
10830
10831 2008-01-31  Tom Browder <tom.browder@gmail.com>
10832
10833         * doc/c-tree.texi (Types): Fix grammar.
10834         (Expression trees): Ditto.
10835         * doc/passes.texi (Tree-SSA passes): Ditto.
10836         
10837         * doc/configterms.texi (Configure Terms): Fix typo.
10838         * doc/cpp.texi (Common Predefined Macros): Ditto.
10839         * doc/md.texi (Machine Constraints): Ditto.
10840         
10841         * doc/makefile.texi (Makefile): Add comma.
10842
10843 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10844             Gerald Pfeifer  <gerald@pfeifer.com>
10845         
10846         * doc/sourcebuild.texi (Front End): Remove references to CVS
10847         and CVSROOT/modules.
10848         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10849         (Back End): Remove reference to CVS.
10850
10851 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10852
10853         PR target/34900
10854         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10855         comment from...
10856         (mips16_gp_pseudo_reg): ...here.
10857         * config/mips/mips.md (load_const_gp): Replace with...
10858         (load_const_gp_<mode>): ...this :P-based insn.
10859
10860 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10861
10862         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10863         options. Minor fixes.
10864         (-std): Move reference to standards closer to where language
10865         standards are first mentioned.
10866         
10867 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10868
10869         PR rtl-optimization/34995
10870         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10871         parameter and return a bool.  If the rtx parameter is nonnull,
10872         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10873         (find_reloads): Update call accordingly.  Pass the new operand
10874         if it needed no address reloads, otherwise pass null.
10875
10876 2008-01-30  Richard Henderson  <rth@redhat.com>
10877
10878         PR c/34993
10879         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10880         for unbounded arrays.
10881
10882 2008-01-30  Silvius Rus  <rus@google.com>
10883
10884         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10885
10886 2008-01-30  Jan Hubicka  <jh@suse.cz>
10887
10888         PR target/34982
10889         * i386.c (init_cumulative_args): Use real function declaration when
10890         calling locally.
10891
10892 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10893
10894         PR rtl-optimization/34998
10895         * global.c (build_insn_chain): Treat non-subreg_lowpart
10896         SUBREGs of pseudos as clobbering all the words covered by the
10897         SUBREG, not just all the bytes.
10898         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10899         original df_ref rather than an extract parameter.
10900         (global_conflicts): Update call accordingly.
10901
10902 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10903
10904         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10905         the overflow check to make it easier to read.
10906         (__fixtfdi): Change the type of the ll member in union
10907         long_double to UDItype_x.
10908
10909 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10910
10911         PR middle-end/34969
10912         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10913         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10914         * tree-inline.c (fold_marked_statements): Call
10915         cgraph_update_edges_for_call_stmt if folding a call statement.
10916         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10917         debug_generic_stmt calls, reset it back afterwards.
10918
10919         PR c/35017
10920         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10921         static decls.
10922         * c-typeck.c (build_external_ref): Don't pedwarn about
10923         static vars in current function's scope.
10924
10925 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10926
10927         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10928
10929 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10930
10931         PR c/35002
10932         * ipa-struct-reorg.c: Fix spelling.
10933         * params.def: Ditto.
10934
10935 2008-01-29  Richard Guenther  <rguenther@suse.de>
10936
10937         PR middle-end/35006
10938         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10939         field.
10940         * tree-inline.c (remap_type): Increment remapping_type_depth
10941         around remapping types.
10942         (copy_body_r): Only add referenced variables if they are referenced
10943         from code, not types.
10944
10945 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10946
10947         PR c++/34055
10948         PR c++/34103
10949         PR c++/34219
10950         PR c++/34606
10951         PR c++/34753
10952         PR c++/34754
10953         PR c++/34755
10954         PR c++/34919
10955         PR c++/34961
10956         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10957         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10958
10959 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10960
10961         PR target/34412
10962         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10963         pointer for tiny stack.
10964
10965 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10966
10967         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10968
10969 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10970
10971         * config/vx-common.h: Fix typo in comment.
10972
10973 2008-01-28  Ian Lance Taylor  <iant@google.com>
10974
10975         PR c++/34862
10976         PR c++/33407
10977         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10978         coalesce pointers if they have different DECL_NO_TBAA_P values.
10979         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10980         between variables with different DECL_NO_TBAA_P values.
10981
10982 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10983
10984         PR 31535
10985         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10986         are not legitimate small data references on SPE targets.
10987
10988 2008-01-28  David Daney  <ddaney@avtrex.com>
10989
10990         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10991
10992 2008-01-28  David Daney  <ddaney@avtrex.com>
10993
10994         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10995
10996 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10997
10998         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10999         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
11000         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
11001         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
11002         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
11003         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
11004         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
11005         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
11006
11007 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11008
11009         * basic-block.h (condjump_equiv_p): Fix comment.
11010
11011 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11012
11013         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
11014         print_generic_stmt_indented): Fix comment.
11015
11016 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11017
11018         * configure.ac (__stack_chk_fail): Add detecion for availability
11019         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
11020         * configure: Regenerate.
11021
11022 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
11023
11024         PR middle-end/34688
11025         * final.c (output_addr_const): Handle TRUNCATE.
11026
11027 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
11028
11029         PR target/34711
11030         * tree-ssa-loop-ivopts.c (comp_cost): New type.
11031         (zero_cost, infinite_cost): New constants.
11032         (struct cost_pair): Change type of cost to comp_cost.
11033         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
11034         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
11035         New functions.
11036         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
11037         split_address_cost, ptr_difference_cost, difference_cost,
11038         get_computation_cost_at, get_computation_cost,
11039         determine_use_iv_cost_generic, determine_use_iv_cost_address,
11040         determine_use_iv_cost_condition, determine_use_iv_costs,
11041         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
11042         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
11043         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
11044         Change type of cost to comp_cost.
11045         (determine_iv_cost): Increase cost of non-original ivs, instead
11046         of decreasing the cost of original ones.
11047         (get_address_cost): Indicate the complexity of the addressing mode 
11048         in comp_cost.
11049         (try_add_cand_for): Prefer using ivs not specific to some object.
11050         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
11051
11052 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
11053             Janis Johnson  <janis187@us.ibm.com>
11054
11055         PR target/34814
11056         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
11057         (TARGET_INSTANTIATE_DECLS): Likewise.
11058         * target.h (expand_to_rtl_hook): New target hook.
11059         (instantiate_decls): Likewise.
11060         * function.c (instantiate_decl): Make non-static.  Rename to...
11061         (instantiate_decl_rtl): ... this.
11062         (instantiate_expr): Use instantiate_decl_rtl.
11063         (instantiate_decls_1): Likewise.
11064         (instantiate_decls): Likewise.
11065         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
11066         * function.h (instantiate_decl_rtl): Add prototype.
11067         * cfgexpand.c (target.h): New include.
11068         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
11069         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
11070         (TARGET_INSTANTIATE_DECLS): Likewise.
11071         (TARGET_INITIALIZER): New target hooks added.
11072         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11073         New prototype.
11074         * config/rs6000/rs6000.c (tree-flow.h): New include.
11075         (machine_function): Add sdmode_stack_slot field.
11076         (rs6000_alloc_sdmode_stack_slot): New function.
11077         (rs6000_instantiate_decls): Likewise.
11078         (rs6000_secondary_memory_needed_rtx): Likewise.
11079         (rs6000_check_sdmode): Likewise.
11080         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
11081         (TARGET_INSTANTIATE_DECLS): Likewise.
11082         (rs6000_hard_regno_mode_ok): Allow SDmode.
11083         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
11084         (rs6000_emit_move): Handle SDmode.
11085         (function_arg_advance): Likewise.
11086         (function_arg): Likewise.
11087         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
11088         SDmode var args for 32-bit compiles.
11089         (rs6000_secondary_reload_class): Handle SDmode.
11090         (rs6000_output_function_epilogue): Likewise.
11091         (rs6000_function_value): Simplify if statement.
11092         (rs6000_libcall_value): Likewise.
11093         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
11094         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
11095         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
11096         (movsd_hardfloat): New define_insn.
11097         (movsd_softfloat): Likewise.
11098         (movsd_store): Likewise.
11099         (movsd_load): Likewise.
11100         (extendsddd2): Likewise.
11101         (extendsdtd2): Likewise.
11102         (truncddsd2): Likewise.
11103         (movdd_hardfloat64): Fixup comment.
11104         (UNSPEC_MOVSD_LOAD): New constant.
11105         (UNSPEC_MOVSD_STORE): Likewise.
11106
11107 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
11108
11109         PR c++/34965
11110         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
11111         TRUTH_XOR_EXPR.
11112         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
11113         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
11114         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
11115         and TRUTH_XOR_EXPR.
11116
11117 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
11118
11119         PR target/34794
11120         * config.gcc: Separate AIX 5.3 from AIX 6.1.
11121         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11122         __LONGDOUBLE128 too.
11123         * config/rs6000/aix61.h: New file.
11124
11125 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11126
11127         PR rtl-optimization/34959
11128         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
11129         popcount and parity rtxes the same mode as their operand.
11130         Truncate or extend the result to the return value's mode
11131         if necessary.
11132
11133 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11134
11135         PR target/34981
11136         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
11137         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
11138         to GOT_VERSION_REGNUM.
11139         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
11140         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
11141         * config/mips/mips.c (mips_emit_call_insn): New function.
11142         (mips_call_tls_get_addr): Call mips_expand_call directly.
11143         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
11144         emit_call_insn.
11145         (mips16_build_call_stub): Likewise.  Return the call insn or null.
11146         (mips_expand_call): Update the call to mips16_build_call_stub
11147         accordingly and a remove redundant condition.  Assert that MIPS16
11148         stubs do not use lazy binding.  Use mips_emit_call_insn and return
11149         the call insn.
11150         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
11151         TARGET_USE_GOT.
11152         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
11153         (mips_avoid_hazard): Remove hazard_set handling.
11154         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
11155         (UNSPEC_RESTORE_GP): ...this.
11156         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
11157         (FAKE_CALL_REGNO): Rename to...
11158         (GOT_VERSION_REGNUM): ...this.
11159         (type): Add "ghost" value.  Add an associated insn reservation.
11160         (hazard_set): Remove.
11161         (exception_receiver): Rename to...
11162         (restore_gp): ...this and update the unspec identifier accordingly.
11163         (exception_receiver, nonlocal_got_receiver): New expanders.
11164         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
11165         FAKE_CALL_REGNO.  Remove hazard_set attribute.
11166         (set_got_version, update_got_version): New patterns.
11167
11168 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
11169
11170         PR target/34970
11171         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
11172
11173 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11174
11175         PR other/31955
11176         * doc/install.texi2html: Generate gcc-vers.texi.
11177
11178 2008-01-25  DJ Delorie  <dj@redhat.com>
11179
11180         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11181
11182 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11183
11184         * config/c4x: Remove directory.
11185         * config.gcc (crx-*, mt-*): Mark obsolete.
11186         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
11187         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
11188         sh-*-rtemscoff*): Remove cases.
11189         * defaults.h (C4X_FLOAT_FORMAT): Remove.
11190         * real.c (encode_c4x_single, decode_c4x_single,
11191         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
11192         c4x_extended_format): Remove.
11193         * real.h (c4x_single_format, c4x_extended_format): Remove.
11194         * doc/extend.texi (interrupt, naked): Remove mention of attributes
11195         on C4x.
11196         (Pragmas): Remove comment about c4x pragmas.
11197         * doc/install.texi (c4x): Remove target-specific instructions.
11198         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
11199         * doc/md.texi (Machine Constraints): Remove C4x documentation.
11200         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
11201         refer to C4x source files as examples.
11202         (C4X_FLOAT_FORMAT): Remove documentation.
11203
11204 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
11205
11206         * config/bfin/bfin.c (override_options): Reorder tests so that
11207         flag_pic gets enabled for -msep-data.
11208
11209 2008-01-25  Richard Guenther  <rguenther@suse.de>
11210
11211         PR middle-end/32244
11212         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
11213         to its bitfield precision if required.
11214
11215 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11216
11217         PR middle-end/33880
11218         * tree-nested.c (walk_omp_for): New function.
11219         (convert_nonlocal_reference, convert_local_reference): Call
11220         walk_omp_for on OMP_FOR.
11221         (convert_call_expr): Call walk_body on OMP_FOR's
11222         OMP_FOR_PRE_INIT_BODY.
11223
11224 2008-01-25  Richard Guenther  <rguenther@suse.de>
11225
11226         PR tree-optimization/34966
11227         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
11228         default defs and PHI_NODEs we have to insert after the
11229         defining statement.
11230
11231 2008-01-24  Nick Clifton  <nickc@redhat.com>
11232
11233         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
11234         Provide a default definition.
11235         (LIBGCC2_UNITS_PER_WORD): Likewise.
11236
11237         * config/stormy16/stormy16.c: Include df.h for the prototype
11238         for df_regs_ever_live_p.
11239         (xstormy16_expand_builtin_va_start): Convert the stack offset
11240         into a component_ref and then use POINTER_PLUS_EXPR to add it
11241         to the incoming_virtual_args_rtx.
11242         (xstormy16_gimplify_va_arg_expr): Rename to
11243         xstormy16_gimplify_va_arg_expr.
11244         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
11245         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
11246         xstormy16_gimplify_va_arg_expr.
11247         Fix up some formatting issues.
11248
11249         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
11250         Move to predicates.md.
11251         (xs_hi_general_operand): Likewise.
11252         (xs_hi_nonmemory_operand): Likewise.
11253         * config/stormy16/predicates.md:
11254         (xstormy16_carry_plus_operand): New predicate.
11255         (xs_hi_general_operand): New predicate.
11256         (xs_hi_nonmemory_operand): New predicate.
11257         * config/stormy16/stormy16-protos.h:
11258         (xstormy16_carry_plus_operand): Delete prototype.
11259         (xs_hi_general_operand): Likewise.
11260         (xs_hi_nonmemory_operand): Likewise.
11261
11262         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
11263         modifiers as they are no longer needed and they can trigger
11264         reload spill failures.
11265
11266         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
11267         with a match_operand in order to help reload.
11268
11269         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
11270         constraint with 'e' for the 8th alternative as this version of
11271         the mov.w instruction only accepts the lower 8 registers.
11272
11273 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
11274
11275         PR target/34856
11276         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
11277         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
11278         vector elements.
11279
11280 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11281
11282         PR middle-end/33333
11283         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
11284
11285 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11286
11287         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
11288         New functions.
11289         (remove_structure): Update allocations list before removing structure.
11290         
11291 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11292
11293         * ipa-struct-reorg.c (is_safe_cond_expr, 
11294         create_new_stmts_for_cond_expr): Use integer_zerop function,
11295         that recognize not only zero-pointer, but zero-integer too.
11296
11297 2008-01-25  Ben Elliston  <bje@au.ibm.com>
11298
11299         PR other/22232
11300         * fixproto: Escape "." in sed expression that strips leading "./".
11301
11302 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11303
11304         PR driver/34904
11305         * gcc.c (SWITCH_OK): Removed.
11306         (SWITCH_LIVE): Changed to bit.
11307         (SWITCH_FALSE): Likewise.
11308         (SWITCH_IGNORE): Likewise.
11309         (switchstr): Change live_cond to unsigned int.
11310         (process_command): Replace SWITCH_OK with 0.
11311         (do_self_spec): Likewise.
11312         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
11313         (give_switch): Likewise.
11314         (used_arg): Likewise.
11315         (do_spec_1): Set the SWITCH_IGNORE bit.
11316         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
11317         bits.  Set the SWITCH_LIVE bit.
11318
11319 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
11320
11321         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
11322
11323 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
11324
11325         PR tree-optimization/34472
11326         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
11327         parameter to a "bool *" and set *DATA to false if there is
11328         an unsafe access.  Do not delete the structure here.
11329         (check_cond_exprs): Delete it here instead.
11330         (check_cond_exprs, exclude_cold_structs): Do not increase
11331         I when removing a structure.
11332
11333 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
11334
11335         PR target/34856
11336         * config/i386/i386.c (ix86_expand_vector_init): Consider only
11337         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
11338
11339 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
11340
11341         PR middle-end/34934
11342         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
11343         a fixed vector for stack.
11344
11345 2008-01-24  Ben Elliston  <bje@au.ibm.com>
11346
11347         PR c++/25701
11348         * doc/gcc.texi (Software development): Add a direntry for g++.
11349         
11350 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
11351
11352         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11353         stale and straggling -fforce-addr comments above.
11354
11355         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11356         define.
11357         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11358         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11359
11360 2008-01-23  Michael Matz  <matz@suse.de>
11361
11362         PR debug/34895
11363         * dwarf2out.c (force_type_die): Use modified_type_die instead of
11364         gen_type_die.
11365
11366 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
11367
11368         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11369         malloc result type.
11370
11371 2008-01-23 Anatoly Sokolov <aesok@post.ru>
11372
11373         * config/avr/avr.c (avr_current_arch): New variable.
11374         (avr_arch_types): Add 'avr31' and 'avr51' entries.
11375         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11376         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11377         (avr_override_options): Init 'avr_current_arch'. 
11378         (base_arch_s): Move from here...
11379         * config/avr/avr.h (base_arch_s): ... here. Add new members 
11380         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
11381         'mega' to 'have_jmp_call'.
11382         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
11383         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
11384         macros.
11385         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
11386         architectures.
11387         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
11388         MULTILIB_MATCHES): (Ditto.).
11389
11390 2008-01-23  Richard Guenther  <rguenther@suse.de>
11391
11392         PR middle-end/31529
11393         * cgraphunit.c (cgraph_reset_node): Always mark the node
11394         not reachable if it is not queued already.
11395
11396 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11397
11398         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11399         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11400         (cputype_selected): New static variable.
11401         (bfin_handle_option): Set it if -mcpu is used.
11402         (override_option): Select default set of workarounds if no cpu type
11403         selected on the command line.
11404         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11405
11406         From  Michael Frysinger  <michael.frysinger@analog.com>
11407         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11408         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11409
11410         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11411         for bf547, bf523, bf524, and bf526.
11412         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11413         bf526.
11414         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11415         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11416         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11417         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11418         * doc/invoke.texi (Blackfin Options): Document that
11419         -mcpu now accept bf547, bf523, bf524, and bf526.
11420
11421 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11422
11423         PR rtl-optimization/34628
11424         * combine.c (try_combine): Stop and undo after the first combination
11425         if an autoincrement side-effect on the first insn has effectively
11426         been lost.
11427
11428 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11429
11430         PR target/34529
11431         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11432         Offset addresses are not valid for Altivec or paired float modes.
11433
11434 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11435
11436         PR c++/34607
11437         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11438         if DECL_INITIAL (decl) is error_mark_node.
11439
11440         PR c++/34914
11441         * c-common.c (handle_vector_size_attribute): Only allow
11442         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11443         the same way as pointer, array etc. types.
11444         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11445
11446         PR c++/34917
11447         * tree.c (build_type_attribute_qual_variant): Call
11448         build_qualified_type if attributes are equal, but quals are not.
11449
11450 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11451
11452         PR 32102
11453         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11454         * flags.h (warn_strict_aliasing): Remove.
11455         (warn_strict_overflow): Remove.
11456         * opts.c (warn_strict_aliasing): Remove.
11457         (warn_strict_overflow): Remove.
11458         * c-opts.c (c_common_handle_option): -Wall only sets
11459         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11460         (c_common_post_options): Give default values to -Wstrict-aliasing
11461         and -Wstrict-overflow if they are uninitialized.
11462         * common.opt (Wstrict-aliasing): Specify Var and Init.
11463         (Wstrict-overflow): Likewise.
11464
11465 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11466
11467         PR rtl-optimization/26854
11468         PR rtl-optimization/34400
11469         PR rtl-optimization/34884
11470         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11471         DF_RD->gen.
11472         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11473         (df_rd_bb_info.expanded_lr_out): Deleted
11474         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11475         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11476         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11477         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11478         Removed code to allocate, initialize or free expanded_lr_out.
11479         (df_rd_bb_local_compute_process_def): Restructured to make more
11480         understandable.
11481         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11482         sets if the sets are being trimmed.
11483
11484 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11485
11486         PR bootstrap/32287
11487         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11488         (as_vers): Likewise.
11489         * configure: Regenerated.
11490
11491 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11492
11493         PR middle-end/33092
11494         * tree-pass.h (pass_build_alias): New pass.
11495         * tree-ssa-alias.c (gate_build_alias): New.
11496         (pass_build_alias): New.
11497         * passes.c (init_optimization_passes): Add pass_build_alias after
11498         pass_create_structure_vars.
11499
11500 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11501
11502         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11503         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11504         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11505         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11506         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11507         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11508         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11509         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11510         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11511         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11512         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11513         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11514         * config/s390/s390.md (FP_ALL): New mode iterator.
11515         (_d): New mode attribute.
11516         ("*signbit<mode>2>"): Changed mode of first operand.
11517         ("isinf<mode>2"): Changed mode of first operand.
11518         ("*TDC_insn"): Adaptation for DFP modes.
11519
11520 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11521
11522         * tree.c (check_qualified_type): Improve function description.
11523
11524 2008-01-21  Jason Merrill  <jason@redhat.com>
11525
11526         PR c++/34196
11527         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11528         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11529         if it is set.
11530
11531 2008-01-21  DJ Delorie  <dj@redhat.com>
11532
11533         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11534         return zero.
11535
11536 2008-01-21  Richard Guenther  <rguenther@suse.de>
11537
11538         PR middle-end/34856
11539         * tree-cfg.c (verify_expr): Allow all invariant expressions
11540         instead of just constant class ones as reference argument.
11541         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11542         like any other constant.
11543         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11544
11545 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11546
11547         * regmove.c (fixup_match_1): Update call crossed frequencies.
11548
11549 2008-01-21  Richard Guenther  <rguenther@suse.de>
11550
11551         PR c/34885
11552         * tree-inline.c (setup_one_parameter): Deal with mismatched
11553         types using a VIEW_CONVERT_EXPR.
11554
11555 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11556             Olga Golovanevsky  <olga@il.ibm.com>
11557         
11558         PR tree-optimization/34701
11559         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11560         when the structure size is not a power of 2.
11561
11562 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11563
11564         * doc/install.texi: Add doc for --enable-checking=df.
11565         
11566 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11567
11568         PR rtl-optimization/34808
11569         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11570
11571 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11572
11573         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11574         input.
11575
11576 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11577
11578         PR rtl-optimization/26854
11579         PR rtl-optimization/34400
11580         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11581         DF_RD->gen.
11582         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11583         (df_rd_bb_info.expanded_lr_out): New.
11584         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11585         * loop_iv.c (iv_analysis_loop_init): Ditto.
11586         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11587         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11588         Added code to allocate, initialize or free expanded_lr_out.
11589         (df_rd_bb_local_compute_process_def): Restructured to make
11590         more understandable.
11591         (df_rd_confluence_n): Add code to do nothing with fake edges and
11592         code to no apply invalidate_by_call sets if the sets are being trimmed.
11593         (df_lr_local_finalize): Renamed to df_lr_finalize.
11594         (df_live_local_finalize): Renamed to df_live_finalize.
11595
11596 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11597
11598         PR target/34831
11599         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11600         deciding whether to use reciprocal instructions.
11601
11602 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11603
11604         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11605         dwarf2out_note_section_used if cold_text_section is NULL.
11606
11607 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11608
11609         PR gcov-profile/34610
11610         * tree-cfg.c (make_edges): Mark both outgoing edges from
11611         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11612         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11613         from OMP_FOR and OMP_CONTINUE outgoing edges.
11614
11615         * tree-profile.c (tree_profiling): Return early if
11616         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11617         at the end.
11618         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11619         from cfun to child_cfun.
11620         * function.h (struct function): Add after_tree_profile bit.
11621
11622 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11623
11624         * config/avr/avr.S (_exit): Disable interrupt.
11625
11626 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11627             Steven Bosscher  <stevenb.gcc@gmail.com>
11628
11629         PR rtl-optimization/26854
11630         PR rtl-optimization/34400
11631         * df-problems.c (df_live_scratch): New scratch bitmap.
11632         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11633         (df_live_reset): Clear the proper bitmaps.
11634         (df_live_bb_local_compute): Only process the artificial defs once
11635         since the order is not important.
11636         (df_live_init): Init the df_live sets only with the variables
11637         found live by df_lr.
11638         (df_live_transfer_function): Use the df_lr sets to prune the
11639         df_live sets as they are being computed.  
11640         (df_live_free): Free df_live_scratch.
11641
11642 2008-01-18  Ian Lance Taylor  <iant@google.com>
11643
11644         * common.opt: Add fmerge-debug-strings.
11645         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11646         flag_merge_debug_strings rather than flag_merge_constants.
11647         * doc/invoke.texi (Option Summary): Mention
11648         -fmerge-debug-strings.
11649         (Debugging Options): Document -fmerge-debug-strings.
11650
11651 2008-01-18  Ian Lance Taylor  <iant@google.com>
11652
11653         PR c++/33407
11654         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11655         (struct tree_function_decl): Add new field operator_new_flag.
11656         * tree-inline.c (expand_call_inline): When inlining a call to
11657         operator new, force the return value to go into a variable, and
11658         set DECL_NO_TBAA_P on that variable.
11659         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11660
11661 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11662
11663         PR debug/34484
11664         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11665         DWARF2_DEBUGGING_INFO.
11666         (dwarf2out_note_section_used): Ditto.  Add prototype.
11667         (have_multiple_function_sections, text_section_used,
11668         cold_text_section_used, *cold_text_sections): Move declarations
11669         before their uses.
11670
11671 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11672
11673         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11674         field and add signal_ra.
11675         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11676         assignments to frame state pc.  Move end of stack check after
11677         MD_FALLBACK_FRAME_STATE_FOR.
11678         (uw_update_context_1): Use frame state signal_regs if set, instead
11679         of checking signal_frame flag.
11680         (uw_update_context): Use frame state signal_ra if set.
11681         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11682         * config/xtensa/linux-unwind.h: New file.
11683
11684 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11685
11686         * modulo-sched.c (get_sched_window): Fix comment typo.
11687
11688 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11689
11690         PR tree-optimization/34648
11691         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11692
11693 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11694
11695         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11696         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11697
11698 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11699
11700         PR rtl-optimization/34400
11701         * df-core.c (df_worklist_dataflow_overeager,
11702         df_worklist_dataflow_doublequeue): New functions.
11703         (df_worklist_dataflow): Two different worklist solvers.
11704         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11705         New param.
11706
11707 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11708
11709         PR testsuite/34821
11710         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11711         and ftree-parallelize-loops.
11712
11713 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11714
11715         PR rtl-optimization/34826
11716         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11717
11718 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11719
11720         * global.c (find_reg): Mark the eh regs as used if necessary.
11721         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11722         * ra.h (struct allocno): no_eh_reg field added.  Changed
11723         no_stack_reg type to bitfield.
11724
11725 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11726
11727         * tree.c (substitute_in_expr): Add missing 'break'.
11728
11729 2008-01-17  Richard Guenther  <rguenther@suse.de>
11730
11731         PR tree-optimization/34825
11732         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11733         x / x as division to handle.
11734
11735 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11736
11737         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11738         "-pthread" is specified.
11739         * pa-hpux11.h (LIB_SPEC): Likewise.
11740
11741 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11742             Peter Bergner  <bergner@vnet.ibm.com>
11743
11744         PR rtl-optimization/33796
11745         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11746
11747 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11748
11749         PR libgfortran/34699
11750         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11751         static links.
11752         * pa-hpux10.h (LINK_SPEC): Likewise.
11753         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11754
11755 2008-01-16  Richard Guenther  <rguenther@suse.de>
11756
11757         PR middle-end/32628
11758         * fold-const.c (fold_convert_const_int_from_int): Do not
11759         set overflow if that occured only because of a sign extension
11760         change when converting from/to a sizetype with the same
11761         precision and signedness.
11762
11763 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11764
11765         PR debug/34249
11766         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11767         location address to the correct place.  Update copyright year.
11768
11769 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11770
11771         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11772         no dependences in the dependence_relations vector.
11773
11774 2008-01-16  Jan Hubicka  <jh@suse.cz>
11775
11776         PR rtl-optimization/31396
11777         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11778         * cfg.c (dump_reg_info): Print it.
11779         * regs.h (struct reg_info_t): add freq_calls_crossed.
11780         (REG_FREQ_CALLS_CROSSED): New macro.
11781         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11782         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11783         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11784         regmove_optimize): Update call crossed frequencies.
11785         * local-alloc.c (struct qty): Add freq_calls_crossed.
11786         (alloc_qty): Copute freq_calls_crossed.
11787         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11788         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11789         * ra.h (struct allocno): Add freq_calls_crossed.
11790
11791 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11792
11793         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11794         libgomp when compiling with ftree-parallelize-loops.
11795         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11796
11797 2008-01-16  Richard Guenther  <rguenther@suse.de>
11798
11799         PR tree-optimization/34769
11800         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11801         * tree.c (int_cst_value): Instead make this function more
11802         permissive in what it accepts as valid input.  Document this
11803         function always sign-extends the value.
11804
11805 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11806             Richard Guenther  <rguenther@suse.de>
11807
11808         PR c/34668
11809         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11810         (gimple_fold_indirect_ref_rhs): ... this.
11811         (gimple_fold_indirect_ref): New function with foldings
11812         that preserve lvalueness.
11813         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11814         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11815         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11816         to fold an INDIRECT_REF, fall back to the old use of
11817         fold_indirect_ref_1.
11818
11819 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11820
11821         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11822         free_conflict_function.
11823         (compute_self_dependence): Same.
11824
11825 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11826
11827         PR debug/34249
11828         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11829         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11830         function global.
11831         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11832         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11833         for DWARF2_UNWIND_INFO targets.
11834
11835 2008-01-16  Richard Guenther  <rguenther@suse.de>
11836
11837         PR c/34768
11838         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11839         type qualifiers for function types.
11840
11841 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11842
11843         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11844         loop_iterator li from previous commit.
11845
11846 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11847
11848         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11849
11850 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11851
11852         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11853         (parallelize_loops): Don't parallelize irreducible components.
11854
11855 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11856
11857         PR c++/24924
11858         * c-opts (c_common_post_options): Do not enable CPP
11859         flag_pedantic_errors by default.
11860         
11861 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11862
11863         PR rtl-optimization/31944
11864         * cse.c (remove_pseudo_from_table): New function.
11865         (merge_equiv_classes): Use above function to remove pseudo-registers.
11866         (invalidate): Likewise.
11867
11868 2008-01-13  Richard Guenther  <rguenther@suse.de>
11869
11870         PR middle-end/34601
11871         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11872         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11873
11874 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11875
11876         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11877         validate_change to unshare the source of the PC set.
11878
11879 2008-01-12  Jan Hubicka  <jh@suse.cz>
11880
11881         PR middle-end/32135
11882         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11883         references above array bounds.  This might trigger bounds checks for
11884         pointers to arrays.
11885
11886 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11887
11888         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11889         new_replaceable_dependencies.
11890
11891 2008-01-12  Doug Kwan  <dougkwan@google.com>
11892
11893         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11894         instead of OPT_Wreturn_type in warning due to ignored return type
11895         qualifiers.
11896         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11897         options included in -Wextra.
11898         * c.opt: New option -Wignored_qualifiers.
11899         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11900         -Wignore_qualifiers.
11901         (-Wignored-qualifiers): Document.
11902         (-Wreturn-type): Remove description of functionality now handled
11903         by -Wignored-qualifiers.
11904
11905 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11906
11907         PR ada/33788
11908         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11909         NOP_EXPR if it is between integral types with the same precision.
11910
11911 2008-01-12  Jan Hubicka  <jh@suse.cz>
11912
11913         PR other/28023
11914         * invoke.texi (max-inline-recursive-depth): Fix default value.
11915
11916 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11917
11918         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11919         correct type.
11920
11921 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11922         
11923         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11924         
11925 2008-01-11  James E. Wilson  <wilson@specifix.com>
11926
11927         PR target/26015
11928         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11929
11930 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11931
11932         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11933         save/restore frame pointer register and don't use 'call-prologues' 
11934         optimization in function with "OS_task" attribute.
11935
11936 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11937
11938         PR middle-end/31309
11939         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11940         when copying to memory.
11941
11942 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11943
11944         PR rtl-optimization/30905
11945         * cfgcleanup.c: Include dce.h
11946         (crossjumps_occured): New global variable.
11947         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11948         If something changed, set crossjumps_occured to true.
11949         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11950         Don't add/remove fake edges to exit here...
11951         (cleanup_cfg): ...but do it here, when crossjumping.
11952         Run a fast DCE when successful crossjumps occured in the latest
11953         iteration of try_optimize_cfg.
11954
11955 2008-01-11  Richard Guenther  <rguenther@suse.de>
11956
11957         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11958         (struct vn_unary_op_s): Likewise.
11959         (vn_reference_insert): Free old reference on hash collision.
11960
11961 2008-01-10  Raksit Ashok  <raksit@google.com>
11962
11963         PR rtl-optimization/27971
11964         * combine.c (find_split_point): Split PLUS expressions which are
11965         inside a MEM rtx, and whose first operand is complex.
11966
11967 2008-01-10  DJ Delorie  <dj@redhat.com>
11968
11969         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11970         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11971         (m32c_hard_regno_ok): Call the underlying function.
11972
11973 2008-01-10  Richard Guenther  <rguenther@suse.de>
11974
11975         PR middle-end/34683
11976         * tree-cfg.c (tree_merge_blocks): Do not go through the
11977         full-blown folding and stmt updating path if we just deal
11978         with virtual operands.
11979         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11980         test for abnormal SSA_NAMEs.
11981
11982 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11983
11984         PR middle-end/34641
11985         * reload.c (push_reload): Add assertions.  All constants from
11986         reg_equiv_constant should have been used for replacing the respective
11987         pseudo earlier.
11988         (find_reloads_address): Invoke find_reloads_address_part for
11989         constant taken from the reg_equiv_constant array.
11990
11991 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11992
11993         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11994         field (valnum) the first in the struct.  Replace bools with
11995         unit bit fields.
11996
11997 2008-01-10  Richard Guenther  <rguenther@suse.de>
11998
11999         PR tree-optimization/34651
12000         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
12001         types and ordering for masking and converting.
12002
12003 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
12004
12005         PR tree-optimization/34017
12006         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
12007         also for PHI_NODE expressions.
12008
12009 2008-01-09  Jan Hubicka  <jh@suse.cz>
12010
12011         PR tree-optimization/34708
12012         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
12013         based on number of case labels.
12014         (init_inline_once): Remove switch_cost.
12015         * tree-inline.h (eni_weights_d): Remove switch_cost.
12016
12017 2008-01-09  Richard Guenther  <rguenther@suse.de>
12018         Andrew Pinski  <andrew_pinski@playstation.sony.com>
12019
12020         PR middle-end/30132
12021         * gimplify.c (gimplify_cond_expr): Do not create an addressable
12022         temporary if an rvalue is ok or an lvalue is not required.
12023
12024 2008-01-09  Richard Guenther  <rguenther@suse.de>
12025
12026         PR middle-end/34458
12027         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
12028         adjust return type.
12029
12030 2008-01-09  Richard Guenther  <rguenther@suse.de>
12031
12032         PR middle-end/34679
12033         * tree.c (host_integerp): Check for sizetype only if the
12034         type is an integer type.
12035
12036 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
12037
12038         PR debug/26364
12039         * opts.c (decode_options): Disable inlining of functions called
12040         once if not in unit-at-a-time mode.
12041
12042 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
12043
12044         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
12045
12046 2008-01-08  Richard Guenther  <rguenther@suse.de>
12047
12048         PR middle-end/31863
12049         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
12050         out early if the result will be unused.
12051
12052 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12053
12054         PR target/34709
12055         Revert:
12056
12057         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12058         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12059         for TARGET_RECIP.       
12060         
12061 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
12062         
12063         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
12064         for vectorization tuned.
12065         
12066 2008-01-08  Richard Guenther  <rguenther@suse.de>
12067
12068         PR tree-optimization/34683
12069         * tree-ssa-operands.c (operand_build_cmp): Export.
12070         * tree-ssa-operands.h (operand_build_cmp): Declare.
12071         * tree-vn.c (vuses_compare): Remove.
12072         (sort_vuses): Use operand_build_cmp.
12073         (sort_vuses_heap): Likewise.
12074         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
12075         to re-use old VEC if available.  Do not sort already sorted VUSEs.
12076         (vdefs_to_vec): Do not sort already sorted VDEFs.
12077
12078 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
12079
12080         PR middle-end/34694
12081         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
12082
12083 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12084
12085         PR target/34702
12086         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
12087         limitations of reciprocal sequences on x86 targets.
12088
12089 2008-01-08  Richard Guenther  <rguenther@suse.de>
12090
12091         PR tree-optimization/34683
12092         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
12093
12094 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
12095
12096         PR target/34622
12097         * config/darwin.c (darwin_mergeable_string_section): Don't use
12098         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
12099
12100 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
12101
12102         PR target/34682
12103         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
12104         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
12105         predicates of op0 and op1 to register_operand.
12106         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
12107         expander using X87MODEF mode iterator.  Change predicates of
12108         op0 and op1 to register_operand.
12109         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
12110         corresponding patterns and macroize using MODEF macro.  Change
12111         predicates of op0 and op1 to register_operand and remove
12112         "m" constraint. Disparage "r" alternative with "!".
12113         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
12114         macroize using X87MODEF macro.  Change predicates of op0 and op1
12115         to register_operand and remove "m" constraint.  Disparage "r"
12116         alternative with "!".
12117         (absneg splitter with memory operands): Remove.
12118         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
12119         patterns and macroize using X87MODEF mode iterator.
12120         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
12121         Change predicate of op1 to register_operand.
12122         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
12123         for memory operands.
12124
12125 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
12126
12127         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
12128
12129 2008-01-07  Richard Guenther  <rguenther@suse.de>
12130
12131         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
12132         fields.
12133
12134 2008-01-07  Richard Guenther  <rguenther@suse.de>
12135
12136         PR tree-optimization/34683
12137         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
12138         VOPs of the needed size to save memory.  Use VEC_quick_push
12139         to save compile-time.
12140         (vdefs_to_vec): Likewise.
12141
12142 2008-01-07  Sa Liu  <saliu@de.ibm.com>
12143
12144         * config/spu/spu.md (divdf3): Genetate inline code for double
12145         division.  The implementation doesn't handle INF or NAN, therefore it
12146         only applies when -ffinite-math-only is given.
12147
12148 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
12149
12150         PR libstdc++/34680
12151         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
12152         * doc/cpp.texi ([Common Predefined Macros]): Document.
12153
12154 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
12155
12156         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
12157         order to use commutative addition instead of subtraction.
12158
12159 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12160             Mircea Namolaru  <namolaru@il.ibm.com>
12161             Vladimir Yanovsky  <yanov@il.ibm.com>
12162             Revital Eres  <eres@il.ibm.com>
12163
12164         PR tree-optimization/34263
12165         * tree-outof-ssa.c (process_single_block_loop_latch,
12166         contains_tree_r): New functions.
12167         (analyze_edges_for_bb): Call process_single_block_loop_latch
12168         function to empty single-basic-block latch block if possible.
12169
12170 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12171
12172         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12173         for TARGET_RECIP.
12174         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
12175
12176 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12177
12178         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
12179
12180 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12181
12182         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
12183
12184 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
12185
12186         PR tree-optimization/34618
12187         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
12188         flag from T.
12189
12190 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12191
12192         PR target/34673
12193         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
12194         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
12195         Update copyright year.
12196
12197         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
12198         Update copyright year.
12199         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
12200         using NR fixup.
12201
12202 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
12203
12204         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
12205         edge does not point to current bb before changing need_assert.
12206
12207 2008-01-04  Richard Guenther  <rguenther@suse.de>
12208
12209         PR middle-end/34029
12210         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
12211         for verifying purposes if they are is_gimple_min_invariant.
12212
12213 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
12214
12215         PR tree-optimization/34448
12216         PR tree-optimization/34465
12217         * gimplify.c (gimplify_init_constructor): Add new parameter
12218         notify_temp_creation.  Use it.
12219         (gimplify_modify_expr_rhs): Take volatiles into account when
12220         optimizing constructors.
12221         Do not optimize constructors if gimplify_init_constructor will dump to
12222         memory.
12223         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
12224         * gcc.c-torture/compile/pr34448.c: New.
12225
12226 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
12227
12228         PR gcov-profile/34609
12229         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
12230         return_slot if result is TREE_ADDRESSABLE.
12231
12232 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
12233
12234         * config/mips/mips.md (sqrt_condition): Tweak comment.
12235         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
12236
12237 2008-01-03  Tom Tromey  <tromey@redhat.com>
12238
12239         PR c/34457
12240         * c-common.c (c_type_hash): Handle VLAs.
12241
12242 2008-01-03  Jan Hubicka  <jh@suse.cz>
12243
12244         PR tree-optimization/31081
12245         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
12246         0 when inlining and not inlining to first basic block.
12247         (remap_decl): When var is initialized to 0, don't set default_def.
12248         (expand_call_inline): Set entry_bb.
12249         * tree-inline.h (copy_body_data): Add entry_bb.
12250
12251 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12252
12253         PR c++/34619
12254         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
12255         before returning.
12256
12257         PR tree-optimization/29484
12258         * tree-inline.c (inline_forbidden_p_2): New function.
12259         (inline_forbidden_p): Disallow inlining if some static var
12260         has an address of a local LABEL_DECL in its initializer.
12261         * doc/extend.texi (Labels as Values): Document &&foo behaviour
12262         vs. inlining.
12263
12264 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
12265
12266         PR tree-optimization/34635
12267         * tree-data-ref.c (add_other_self_distances): Make sure that the
12268         evolution step is constant.
12269
12270 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12271
12272         PR middle-end/34608
12273         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
12274
12275 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
12276
12277         * tree-sra.c (scalarize_init): Insert the generate_element_init
12278         statements after the generate_element_zero statements.
12279
12280 2008-01-02  Richard Guenther  <rguenther@suse.de>
12281
12282         PR middle-end/34093
12283         PR middle-end/31976
12284         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
12285         for very large number of operands instead of ICEing.
12286
12287 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
12288
12289         PR target/34013
12290         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
12291         while stack probing.
12292
12293 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
12294
12295         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12296         in C++0x mode.
12297
12298 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
12299
12300         PR libmudflap/26442
12301         * tree-mudflap.c (mx_register_decls): Guard warning by
12302         !DECL_ARTIFICIAL check.
12303
12304 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
12305
12306         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
12307         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
12308         sse5_perm<mode>): Fix constraints.