OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2
3         * omp-low.c (extract_omp_for_data): Fix comment typo.
4         * c.opt: Fix typo.
5
6 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7
8         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
9         FIXME note about gcc/config.guess.
10         * doc/options.texi (Option file format): Remove non-ASCII bytes.
11         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
12         * doc/cppopts.texi: Likewise.
13         * doc/extend.texi: Likewise.
14         * doc/gcc.texi: Likewise.
15         * doc/gccint.texi: Likewise.
16         * doc/gcov.texi: Likewise.
17         * doc/gty.texi: Likewise.
18         * doc/hostconfig.texi: Likewise.
19         * doc/install.texi: Likewise.
20         * doc/invoke.texi: Likewise.
21         * doc/loop.texi: Likewise.
22         * doc/makefile.texi: Likewise.
23         * doc/md.texi: Likewise.
24         * doc/passes.texi: Likewise.
25         * doc/tm.texi: Likewise.
26         * doc/tree-ssa.texi: Likewise.
27         * doc/trouble.texi: Likewise.
28
29 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
30             Nathan Sidwell  <nathan@codesourcery.com>
31             Maxim Kuvyrkov  <maxim@codesourcery.com>
32             Richard Sandiford  <rdsandiford@googlemail.com>
33         
34         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
35         * config/mips/mips-protos.h (mips_expand_vector_init): New.
36         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
37         builtins.
38         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
39         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
40         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
41         V8QImode cases.
42         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
43         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
44         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
45         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
46         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
47         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
48         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
49         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
50         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
51         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
52         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
53         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
54         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
55         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
56         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
57         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
58         (mips_builtins): Add Loongson builtins.
59         (mips_loongson_2ef_bdesc): New.
60         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
61         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
62         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
63         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
64         New.
65         (mips_expand_vector_init): New.
66         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
67         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
68         if appropriate.
69         * config/mips/mips.md: Add unspec numbers for Loongson
70         builtins.  Include loongson.md.
71         (MOVE64): Include Loongson vector modes.
72         (SPLITF): Include Loongson vector modes.
73         (HALFMODE): Handle Loongson vector modes.
74         * config/mips/loongson.md: New.
75         * config/mips/loongson.h: New.
76         * config.gcc: Add loongson.h header for mips*-*-* targets.
77         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
78
79 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
80
81         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
82         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
83         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
84         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
85         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
86         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
87         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
88         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
89         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
90         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
91         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
92         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
93         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
94         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
95         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
96         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
97         Remove use_fixproto=yes.
98         (ia64*-*-hpux*): Remove comment about using fixproto.
99         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
100
101 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
102
103         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
104         library rebuilds.
105         * configure: Regenerate.
106
107 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
108
109         PR middle-end/36520
110         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
111         before evaluating it.
112
113 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
114
115         PR c/36507
116         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
117         nested inline functions.
118         (start_decl, start_function): Don't invert DECL_EXTERNAL
119         for nested inline functions.
120
121 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
122
123         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
124         splits that must be made for correctness.
125
126 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
127
128         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
129         (AVAIL_NON_MIPS16): Likewise.
130         (mips_builtin_description): Replace target_flags with a predicate.
131         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
132         (dspr2_32): New availability predicates.
133         (MIPS_BUILTIN): New macro.
134         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
135         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
136         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
137         Replace the TARGET_FLAGS parameters with AVAIL parameters.
138         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
139         (mips_dsp_32only_bdesc): Merge into...
140         (mips_builtins): ...this new array.
141         (mips_bdesc_map, mips_bdesc_arrays): Delete.
142         (mips_init_builtins): Update after above changes.
143         (mips_expand_builtin_1): Merge into...
144         (mips_expand_builtin): ...here and update after above changes.
145
146 2008-06-12  Paul Brook  <paul@codesourcery.com>
147
148         * longlong.h (__arm__): Define count_leading_zeros.
149         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
150         (clzsi2, clzdi2): New functions.
151         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
152         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
153         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
154         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
155         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
156         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
157         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
158         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
159         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
160         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
161
162 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
163
164         * config/m68k/m68k.c (m68k_tune_flags): New.
165         (override_options): Compute m68k_tune_flags.
166         (MULL_COST, MULW_COST): Update for various variants of CFV2.
167         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
168
169 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
170
171         PR middle-end/36506
172         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
173         warning.
174
175 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
176
177         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
178         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
179
180 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
181
182         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
183         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
184
185 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
186
187         PR middle-end/36506
188         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
189         reductions.
190
191 2008-06-12  Richard Guenther  <rguenther@suse.de>
192
193         PR tree-optimization/36345
194         * tree-flow.h (struct ptr_info_def): Align escape_mask,
195         add memory_tag_needed flag.
196         (may_alias_p): Declare.
197         * tree-ssa-alias.c (may_alias_p): Export.
198         (set_initial_properties): Use memory_tag_needed flag.
199         (update_reference_counts): Likewise.
200         (reset_alias_info): Reset memory_tag_needed flag.
201         (create_name_tags): Check memory_tag_needed flag.
202         (dump_points_to_info_for): Dump it.
203         * tree-ssa-structalias.c (struct variable_info): Remove
204         directly_dereferenced flag.
205         (new_var_info): Do not initialize it.
206         (process_constraint_1): Do not set it.
207         (update_alias_info): Set is_dereferenced flag.
208         (set_uids_in_ptset): Use may_alias_p.
209         (set_used_smts): Check memory_tag_needed flag.
210         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
211         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
212         memory_tag_needed flag.
213         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
214         from broken design.
215
216 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
217
218         * config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
219         w64 abi.
220         (ix86_expand_prologue): Likewise.
221         (ix86_force_to_memory): Likewise.
222         (ix86_free_from_memory): Likewise.
223
224 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
225
226         PR target/36425
227         * config/rs6000/rs6000.c (rs6000_override_options): Set
228         rs6000_isel conditionally to the absence of comand line
229         override.
230         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
231         Remove duplicate rs6000_isel setting.
232         * config/rs6000/eabispe.h: Ditto.
233
234 2008-06-11  Richard Guenther  <rguenther@suse.de>
235
236         * alias.c (get_alias_set): Use the element alias-set for arrays.
237         (record_component_aliases): For arrays and vectors do nothing.
238         * c-common.c (strict_aliasing_warning): Handle the cases
239         of alias set zero explicitly.
240         * Makefile.in (dfp.o-warn): Add -Wno-error.
241
242 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
243
244         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
245         tune_32 tune_64.
246         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
247         tune_32 tune_64 to supported_defaults.  Allow values not
248         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
249         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
250         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
251         with_cpu_64 to generic for 64-bit-supporting configurations, not
252         with_cpu.  Remove FIXMEs.
253         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
254         --with-arch-64, --with-tune-32, --with-tune-64): Document.
255         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
256         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
257         arch_32 and arch_64.
258
259 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
260             Olivier Hainque  <hainque@adacore.com>
261
262         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
263         Use DECL_SIZE_UNIT to retrieve the size of the field.
264
265 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
266
267         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
268         with function calls after declarations.  Lay out
269         neon_float_type_node before further use.
270
271 2008-06-11  Richard Guenther  <rguenther@suse.de>
272
273         * tree-flow.h (may_point_to_global_var): Declare.
274         * tree-ssa-alias.c (may_point_to_global_var): New function.
275         * tree-ssa-sink.c (is_hidden_global_store): Use it.
276
277 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
278
279         * configure.ac: Teach that fido supports .debug_line.
280         * configure: Regenerate.
281
282 2008-06-10  Tom Tromey  <tromey@redhat.com>
283
284         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
285         debug hook.
286
287 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
288
289         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
290         (encode_decimal64, decode_decimal64, encode_decimal128,
291         decode_decimal128): Reverse order of 32-bit parts of value if host
292         and target endianness differ.
293
294 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
295         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
296         Avoid division by 0.
297         (tree_mod_pow2_value_transform): Likewise.
298         (tree_ic_transform): Likewise.
299         (tree_stringops_transform): Likewise.
300         (tree_mod_subtract_transform): Likewise.
301         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
302         (copy_edges_for_bb): Likewise.
303         (initialize_cfun): Likewise.
304
305 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
306
307         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
308         nonmemory_operand. Add "N" operand constraint.
309         (*btsi): Ditto.
310         (*jcc_btdi_mask_rex64): New instruction and split pattern.
311         (*jcc_btsi_mask): Ditto.
312         (*jcc_btsi_mask_1): Ditto.
313
314 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
315
316         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
317         TYPE_CANONICAL for copied element type.
318
319 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
320
321         PR target/36473
322         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
323         Add m_CORE2 and m_GENERIC.
324         * config/i386/predicates.md (bt_comparison_operator): New predicate.
325         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
326         (*btsi): Ditto.
327         (*jcc_btdi_rex64): New instruction and split pattern.
328         (*jcc_btsi): Ditto.
329         (*jcc_btsi_1): Ditto.
330         (*btsq): Fix Intel asm dialect operand order.
331         (*btrq): Ditto.
332         (*btcq): Ditto.
333
334 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
335
336         PR middle-end/36447
337         * simplify-rtx.c (simplify_subreg): Add check for shift count 
338         greater than size.
339
340 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
341
342         * doc/md.texi: Synchronize with later constraints.md change.
343         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
344         with a C implementation.
345         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
346         MFLO handling.
347         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
348         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
349         when moving to and from MD_REGNUM.
350         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
351         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
352         Handle byte and halfword moves.
353         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
354         separately.
355         * config/mips/constraints.md (h): Turn into NO_REGS.
356         (l, x): Update documentation.
357         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
358         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
359         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
360         (HILO): New mode iterator.
361         (MOVE128): Add TI.
362         (any_div): New code iterator.
363         (u): Extend code attribute to div and udiv.
364         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
365         d_operand in the splitters.  Remove redundant CONST_INT checks.
366         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
367         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
368         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
369         accordingly, using normal moves instead of unspecs to move LO into
370         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
371         (<u>mulsidi3): Handle expansion in C code.
372         (<u>mulsidi3_32bit_internal): Rename to...
373         (<u>mulsidi3_32bit): ...this.
374         (<u>mulsidi3_32bit_r4000): Fix insn separator.
375         (*<u>mulsidi3_64bit): Rename to...
376         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
377         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
378         to set LO and HI to the multiplication result.  Use a normal move
379         for MFLO and an unspec for MFHI.
380         (*<u>mulsidi3_64bit_parts): Replace with...
381         (<u>mulsidi3_64bit_hilo): ...this new instruction.
382         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
383         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
384         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
385         instead of HI.  Split the instruction into a separate multiplication
386         and MFHI if !TARGET_FIX_R4000.
387         (<su>muldi3_highpart): Likewise.
388         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
389         and the "=h" clobber.
390         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
391         (<u>mulditi3): New expander.
392         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
393         (madsi): Remove "=h" clobber.
394         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
395         Force the modulus result to be a GPR and split the instruction into
396         a division followed by an MFHI after reload.
397         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
398         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
399         the MIPS16 HIGH define_split.
400         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
401         of acc<->gpr moves to "multi".
402         (*movdi_64bit): Replace the single "x" alternative with
403         alternatives for moving into and out of "a".
404         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
405         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
406         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
407         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
408         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
409         (movti): New expander.
410         (*movti, *movti_mips16): New insns.
411         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
412         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
413         (mthi<GPR:mode>_<HILO:mode>): Likewise.
414         * config/mips/predicates.md (fpr_operand): Delete.
415         (d_operand): New predicate.
416
417 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
418
419         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
420         failure on some Bourne shells.
421         (x86_64-*-*): Ditto.
422
423 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
424
425         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
426
427 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
428
429         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
430         (sparc-sun-solaris2*): Likewise.
431
432 2008-06-09  Arnaud Charlet  <charlet@adacore.com
433
434         * doc/install.texi: Update requirements to build the Ada compiler.
435
436 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
437
438         * df-scan.c (struct df_scan_problem_data): Remove the
439         mw_link_pool alloc pool.
440         (df_scan_free_internal): Don't free it.
441         (df_scan_alloc): Don't allocate it.
442         * df.h (struct df_link): Update comment.
443
444 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
445
446         * except.h: Correct checks for when SJLJ exceptions must be used.
447
448 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
449
450         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
451         default.
452         
453 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
454
455         PR tree-optimization/36218
456         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
457         configure for the build system.
458         (BUILD_LDFLAGS): Define.
459         * configure: Regenerate.
460         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
461
462 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
463
464         PR target/36424
465         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
466         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
467         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
468
469 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
470
471         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
472
473 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
474
475         * config.gcc (Obsolete configurations): Remove list of
476         configurations.
477         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
478         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
479         targets matched by those patterns.
480         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
481         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
482         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
483         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
484         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
485         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
486         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
487         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
488         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
489         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
490         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
491         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
492         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
493         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
494         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
495         Make code for Solaris 7 and greater unconditional for Solaris.
496         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
497         Remove --with-* handling.
498         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
499         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
500         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
501         LINK_OS_WINDISS_SPEC): Remove.
502         * config/rs6000/sysv4.opt (mwindiss): Remove.
503         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
504         * configure: Regenerate.
505         * doc/cpp.texi: Don't mention BeOS.
506         * doc/extend.texi (interrupt): Don't mention MS1.
507         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
508         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
509         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
510         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
511         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
512         Remove.
513         * doc/invoke.texi (MT Options): Remove.
514         (-mwindiss): Remove.
515         (CRIS Options): Remove cris-axis-aout references.
516         (HPPA Options): Don't mention hppa1.1-*-pro.
517         * doc/md.texi: (MorphoTech family): Remove.
518         * libgcc2.c: Don't handle UWIN.
519         * config/alpha/t-unicosmk: Remove.
520         * config/alpha/unicosmk.h: Remove.
521         * config/arm/kaos-arm.h: Remove.
522         * config/arm/kaos-strongarm.h: Remove.
523         * config/arm/strongarm-coff.h: Remove.
524         * config/arm/strongarm-elf.h: Remove.
525         * config/arm/strongarm-pe.h: Remove.
526         * config/arm/t-strongarm-pe: Remove.
527         * config/arm/t-xscale-coff: Remove.
528         * config/arm/t-xscale-elf: Remove.
529         * config/arm/xscale-coff.h: Remove.
530         * config/arm/xscale-elf.h: Remove.
531         * config/chorus.h: Remove.
532         * config/cris/aout.h: Remove.
533         * config/cris/aout.opt: Remove.
534         * config/cris/t-aout: Remove.
535         * config/i386/beos-elf.h: Remove.
536         * config/i386/kaos-i386.h: Remove.
537         * config/i386/ptx4-i.h: Remove.
538         * config/i386/sco5.h: Remove.
539         * config/i386/sco5.opt: Remove.
540         * config/i386/sysv4-cpp.h: Remove.
541         * config/i386/sysv5.h: Remove.
542         * config/i386/t-beos: Remove.
543         * config/i386/t-sco5: Remove.
544         * config/i386/t-uwin: Remove.
545         * config/i386/uwin.asm: Remove.
546         * config/i386/uwin.h: Remove.
547         * config/kaos.h: Remove.
548         * config/mips/windiss.h: Remove.
549         * config/mt: Remove directory.
550         * config/pa/pa-osf.h: Remove.
551         * config/pa/pa-pro-end.h: Remove.
552         * config/pa/t-pro: Remove.
553         * config/ptx4.h: Remove.
554         * config/rs6000/beos.h: Remove.
555         * config/rs6000/kaos-ppc.h: Remove.
556         * config/rs6000/t-beos: Remove.
557         * config/rs6000/windiss.h: Remove.
558         * config/sh/kaos-sh.h: Remove.
559         * config/sol2-6.h: Remove.
560         * config/sparc/sol26-sld.h: Remove.
561         * config/sparc/sysv4-only.h: Remove.
562         * config/vax/bsd.h: Remove.
563         * config/vax/t-memfuncs: Remove.
564         * config/vax/ultrix.h: Remove.
565         * config/vax/vaxv.h: Remove.
566         * config/windiss.h: Remove.
567
568 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
569
570         PR rtl-optimization/36438
571         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
572         for vector shifts with constant scalar shift operands.
573
574 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
575
576         * doc/invoke.texi: Document -march=xlr.
577         * config/mips/xlr.md: New file.
578         * config/mips/mips.md: Include it.
579         (cpu): Add "xlr".
580         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
581         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
582         (mips_rtx_cost_data): Likewise.
583
584 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
585
586         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
587         PRE_INC and PRE_DEC cases.
588
589 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
590
591         PR rtl-optimization/36419
592         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
593         the emitting jump insn.
594
595         PR target/36362
596         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
597         is not bool, boolify the whole *expr_p and convert to the desired type.
598
599 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
600
601         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
602         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
603         Add omp_private_outer_ref hook, add another argument to
604         omp_clause_default_ctor hook.
605         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
606         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
607         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
608         hook_tree_tree_tree_tree_null.
609         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
610         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
611         * hooks.c (hook_tree_tree_tree_tree_null): New function.
612         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
613         * tree.def (OMP_TASK): New tree code.
614         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
615         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
616         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
617         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
618         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
619         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
620         OMP_CLAUSE_COLLAPSE_EXPR): Define.
621         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
622         (OMP_DIRECTIVE_P): Add OMP_TASK.
623         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
624         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
625         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
626         and OMP_CLAUSE_UNTIED entries.
627         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
628         num_ops to 2.
629         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
630         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
631         * tree-pretty-print.c (dump_omp_clause): Handle
632         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
633         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
634         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
635         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
636         warning about unsigned iterators.  Change decl/init/cond/incr
637         arguments to TREE_VECs, check arguments for all collapsed loops.
638         (c_finish_omp_taskwait): New function.
639         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
640         ws_clauses.
641         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
642         default_function_array_conversion on init.  Add par_clauses argument.
643         If decl is present in parallel's lastprivate clause, change it to
644         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
645         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
646         collapse count in clauses.
647         (c_parser_omp_for, c_parser_omp_parallel): Adjust
648         c_parser_omp_for_loop callers.
649         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
650         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
651         (c_parser_omp_clause_name): Handle collapse and untied clauses.
652         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
653         functions.
654         (c_parser_omp_clause_schedule): Handle schedule(auto).
655         Include correct location in the error message.
656         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
657         and PRAGMA_OMP_CLAUSE_UNTIED.
658         (OMP_TASK_CLAUSE_MASK): Define.
659         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
660         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
661         * tree-nested.c (convert_nonlocal_omp_clauses,
662         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
663         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
664         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
665         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
666         OMP_CLAUSE_DECL.
667         (conver_nonlocal_reference, convert_local_reference,
668         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
669         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
670         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
671         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
672         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
673         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
674         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
675         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
676         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
677         OMP_CLAUSE_UNTIED.
678         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
679         * c-common.h (c_finish_omp_taskwait): New prototype.
680         * gimple-low.c (lower_stmt): Handle OMP_TASK.
681         * tree-parloops.c (create_parallel_loop): Create 1 entry
682         vectors for OMP_FOR_{INIT,COND,INCR}.
683         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
684         (make_edges): Handle OMP_TASK.
685         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
686         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
687         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
688         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
689         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
690         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
691         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
692         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
693         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
694         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
695         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
696         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
697         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
698         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
699         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
700         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
701         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
702         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
703         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
704         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
705         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
706         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
707         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
708         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
709         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
710         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
711         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
712         original iterator is present in lastprivate clause or if
713         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
714         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
715         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
716         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
717         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
718         if it is set, lookup var in outer contexts too.  Handle
719         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
720         to be implicitly determined firstprivate for task regions.
721         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
722         if it is set, lookup var in outer contexts too.  Set
723         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
724         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
725         OMP_CLAUSE_UNTIED.  Take region_type as last argument
726         instead of in_parallel and in_combined_parallel.
727         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
728         Adjust callers.
729         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
730         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
731         (new_omp_context): Set default_kind to
732         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
733         (omp_region_type): New enum.
734         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
735         fields, add region_type.
736         (new_omp_context): Take region_type as argument instead of is_parallel
737         and is_combined_parallel.
738         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
739         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
740         ctx->is_combined_parallel checks.
741         (gimplify_omp_task): New function.
742         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
743         OMP_CLAUSE_UNTIED.
744         * omp-low.c (extract_omp_for_data): Use schedule(static)
745         for schedule(auto).  Handle pointer and unsigned iterators.
746         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
747         Add loops argument.  Extract data for collapsed OMP_FOR loops.
748         (expand_parallel_call): Assert sched_kind isn't auto,
749         map runtime schedule to index 3.
750         (struct omp_for_data_loop): New type.
751         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
752         Add loop, loops, collapse and iter_type fields.
753         (workshare_safe_to_combine_p): Disallow combined for if
754         iter_type is unsigned long long.  Don't combine collapse > 1 loops
755         unless all bounds and steps are constant.  Adjust extract_omp_for_data
756         caller.
757         (expand_omp_for_generic): Handle pointer, unsigned and long long
758         iterators.  Handle collapsed OMP_FOR loops.  Adjust
759         for struct omp_for_data changes.  If libgomp function doesn't return
760         boolean_type_node, add comparison of the return value with 0.
761         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
762         pointer, unsigned and long long iterators.  Adjust for struct
763         omp_for_data changes.
764         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
765         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
766         unsigned long long.  Allocate loops array, pass it to
767         extract_omp_for_data.  For collapse > 1 loops use always
768         expand_omp_for_generic.
769         (omp_context): Add sfield_map and srecord_type fields.
770         (is_task_ctx, lookup_sfield): New functions.
771         (use_pointer_for_field): Use is_task_ctx helper.  Change first
772         argument's type from const_tree to tree.  Clarify comment.
773         In OMP_TASK disallow copy-in/out sharing.
774         (build_sender_ref): Call lookup_sfield instead of lookup_field.
775         (install_var_field): Add mask argument.  Populate both record_type
776         and srecord_type if needed.
777         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
778         in srecord_type.
779         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
780         and DECL_FIELD_OFFSET.
781         (scan_sharing_clauses): Adjust install_var_field callers.  For
782         firstprivate clauses on explicit tasks allocate the var by value in
783         record_type unconditionally, rather than by reference.
784         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
785         Use is_taskreg_ctx instead of is_parallel_ctx.
786         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
787         (create_omp_child_function_name): Add task_copy argument, use
788         *_omp_cpyfn* names if it is true.
789         (create_omp_child_function): Add task_copy argument, if true create
790         *_omp_cpyfn* helper function.
791         (scan_omp_parallel): Adjust create_omp_child_function callers.
792         Rename parallel_nesting_level to taskreg_nesting_level.
793         (scan_omp_task): New function.
794         (lower_rec_input_clauses): Don't run constructors for firstprivate
795         explicit task vars which are initialized by *_omp_cpyfn*.  
796         Pass outer var ref to omp_clause_default_ctor hook if
797         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
798         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
799         OMP_CLAUSE_REDUCTION_INIT.
800         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
801         avoid duplicate setting of fields.  Handle
802         OMP_CLAUSE_PRIVATE_OUTER_REF.
803         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
804         copy-out if TREE_READONLY, only copy-in.
805         (expand_task_copyfn): New function.
806         (expand_task_call): New function.
807         (struct omp_taskcopy_context): New type.
808         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
809         New functions.
810         (lower_omp_parallel): Rename to...
811         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
812         Call create_task_copyfn if srecord_type is needed.  Adjust
813         sender_decl type.
814         (task_shared_vars): New variable.
815         (check_omp_nesting_restrictions): Warn if work-sharing,
816         barrier, master or ordered region is closely nested inside OMP_TASK.
817         Add warnings for barrier if closely nested inside of work-sharing,
818         ordered, or master region.
819         (scan_omp_1): Call check_omp_nesting_restrictions even for
820         GOMP_barrier calls.  Rename parallel_nesting_level to
821         taskreg_nesting_level.  Handle OMP_TASK.
822         (lower_lastprivate_clauses): Even if some lastprivate is found on a
823         work-sharing construct, continue looking for them on parent parallel
824         construct.
825         (lower_omp_for_lastprivate): Add lastprivate clauses
826         to the beginning of dlist rather than end.  Adjust for struct
827         omp_for_data changes.
828         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
829         not after it.  Handle collapsed OMP_FOR loops, adjust for
830         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
831         (get_ws_args_for): Adjust extract_omp_for_data caller.
832         (scan_omp_for): Handle collapsed OMP_FOR
833         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
834         (lower_omp_single_simple): If libgomp function doesn't return
835         boolean_type_node, add comparison of the return value with 0.
836         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
837         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
838         (parallel_nesting_level): Rename to...
839         (taskreg_nesting_level): ... this.
840         (is_taskreg_ctx): New function.
841         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
842         of is_parallel_ctx.
843         (execute_lower_omp): Rename parallel_nesting_level to
844         taskreg_nesting_level.
845         (expand_omp_parallel): Rename to...
846         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
847         Call omp_task_call for OMP_TASK regions.
848         (expand_omp): Adjust caller, handle OMP_TASK.
849         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
850
851         * bitmap.c (bitmap_default_obstack_depth): New variable.
852         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
853         if argument is NULL and bitmap_default_obstack is already initialized.
854         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
855         at the end.
856         * matrix-reorg.c (matrix_reorg): Likewise.
857
858 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
859
860         * config/i386/i386.md (*indirect_jump): Macroize using P
861         mode iterator.  Remove !TARGET_64BIT from insn constraints.
862         (*tablejump_1): Ditto.
863         (*indirect_jump_rex64): Remove insn pattern.
864         (*tablejump_1_rex64): Ditto.
865         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
866         and eh_return_si insn patterns.
867
868 2008-06-06  Richard Guenther  <rguenther@suse.de>
869
870         * tree-ssa-structalias.c (merge_smts_into): Remove.
871         (find_what_p_points_to): Do not bother to compute the
872         points-to set for pt_anything pointers.
873         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
874         for pt_anything pointers is ok.
875
876 2008-06-06  Jan Hubicka  <jh@suse.cz>
877
878         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
879
880 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
881
882         * cgraph.c: Fix typos in comments.
883         (cgraph_availability_names): Fix string typo.
884         * fold-const.c: Fix typos in comments.
885         (fold_binary): Fix typo in warning.
886         * genautomata.c: Fix typos in comments.
887         (check_presence_pattern_sets): Fix typo in local variable.
888         (output_description): Fix typo in output.
889         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
890         * hwint.h: Likewise.
891         * matrix-reorg.c (check_allocation_function): Likewise.
892         * omega.c (smooth_weird_equations): Likewise.
893         * auto-inc-dec.c: Fix typos in comments.
894         * bb-reorder.c: Likewise.
895         * builtins.c: Likewise.
896         * c-common.c: Likewise.
897         * c-cppbuiltin.c: Likewise.
898         * c-parser.c: Likewise.
899         * c-pretty-print.c: Likewise.
900         * cfgcleanup.c: Likewise.
901         * cfgexpand.c: Likewise.
902         * cfghooks.c: Likewise.
903         * cfglayout.c: Likewise.
904         * cfgloopmanip.c: Likewise.
905         * cgraphunit.c: Likewise.
906         * coverage.c: Likewise.
907         * dbxout.c: Likewise.
908         * df-byte-scan.c: Likewise.
909         * df-core.c: Likewise.
910         * df-problems.c: Likewise.
911         * df-scan.c: Likewise.
912         * dfp.c: Likewise.
913         * dominance.c: Likewise.
914         * domwalk.c: Likewise.
915         * dse.c: Likewise.
916         * dwarf2out.c: Likewise.
917         * emit-rtl.c: Likewise.
918         * et-forest.c: Likewise.
919         * function.c: Likewise.
920         * function.h: Likewise.
921         * gcc.c: Likewise.
922         * gcov-io.c: Likewise.
923         * gcov.c: Likewise.
924         * gcse.c: Likewise.
925         * genattrtab.c: Likewise.
926         * ggc-page.c: Likewise.
927         * gimplify.c: Likewise.
928         * gthr-lynx.h: Likewise.
929         * haifa-sched.c: Likewise.
930         * ipa-cp.c: Likewise.
931         * ipa-inline.c: Likewise.
932         * ipa-prop.h: Likewise.
933         * ipa-pure-const.c: Likewise.
934         * ipa-struct-reorg.c: Likewise.
935         * ipa-struct-reorg.h: Likewise.
936         * ipa-type-escape.c: Likewise.
937         * ipa.c: Likewise.
938         * loop-doloop.c: Likewise.
939         * mips-tfile.c: Likewise.
940         * mkmap-flat.awk: Likewise.
941         * mkmap-symver.awk: Likewise.
942         * modulo-sched.c: Likewise.
943         * omp-low.c: Likewise.
944         * optabs.c: Likewise.
945         * optabs.h: Likewise.
946         * opts.c: Likewise.
947         * passes.c: Likewise.
948         * postreload-gcse.c: Likewise.
949         * postreload.c: Likewise.
950         * predict.c: Likewise.
951         * pretty-print.h: Likewise.
952         * profile.c: Likewise.
953         * protoize.c: Likewise.
954         * ra-conflict.c: Likewise.
955         * real.c: Likewise.
956         * recog.c: Likewise.
957         * regclass.c: Likewise.
958         * regs.h: Likewise.
959         * reload.c: Likewise.
960         * rtl-error.c: Likewise.
961         * rtlanal.c: Likewise.
962         * scan.h: Likewise.
963         * sched-rgn.c: Likewise.
964         * see.c: Likewise.
965         * stmt.c: Likewise.
966         * target.h: Likewise.
967         * tree-dfa.c: Likewise.
968         * tree-eh.c: Likewise.
969         * tree-flow-inline.h: Likewise.
970         * tree-inline.c: Likewise.
971         * tree-into-ssa.c: Likewise.
972         * tree-loop-distribution.c: Likewise.
973         * tree-nested.c: Likewise.
974         * tree-parloops.c: Likewise.
975         * tree-pass.h: Likewise.
976         * tree-pretty-print.c: Likewise.
977         * tree-profile.c: Likewise.
978         * tree-scalar-evolution.c: Likewise.
979         * tree-sra.c: Likewise.
980         * tree-ssa-alias-warnings.c: Likewise.
981         * tree-ssa-ccp.c: Likewise.
982         * tree-ssa-coalesce.c: Likewise.
983         * tree-ssa-dom.c: Likewise.
984         * tree-ssa-dse.c: Likewise.
985         * tree-ssa-forwprop.c: Likewise.
986         * tree-ssa-live.c: Likewise.
987         * tree-ssa-live.h: Likewise.
988         * tree-ssa-loop-im.c: Likewise.
989         * tree-ssa-loop-ivopts.c: Likewise.
990         * tree-ssa-loop-niter.c: Likewise.
991         * tree-ssa-loop-prefetch.c: Likewise.
992         * tree-ssa-phiopt.c: Likewise.
993         * tree-ssa-phiprop.c: Likewise.
994         * tree-ssa-sccvn.c: Likewise.
995         * tree-ssa-ter.c: Likewise.
996         * tree-ssa-threadupdate.c: Likewise.
997         * tree-ssa.c: Likewise.
998         * tree-vect-analyze.c: Likewise.
999         * tree-vect-transform.c: Likewise.
1000         * tree-vectorizer.c: Likewise.
1001         * tree-vn.c: Likewise.
1002         * tree-vrp.c: Likewise.
1003         * tree.c: Likewise.
1004         * tree.def: Likewise.
1005         * tree.h: Likewise.
1006         * unwind-dw2-fde.c: Likewise.
1007         * unwind.inc: Likewise.
1008         * value-prof.c: Likewise.
1009         * vmsdbgout.c: Likewise.
1010
1011 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1012
1013         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1014         always place FP constants in the TOC for TARGET_POWERPC64.
1015         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1016
1017 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1018
1019         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1020         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1021         enable for TARGET_E500_DOUBLE.
1022         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1023         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1024         floating-point modes like integer modes for E500 double.
1025         (rs6000_legitimate_offset_address_p): Likewise.
1026         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1027         addressing for DDmode for E500 double.
1028         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1029         modes as using 64-bits of registers for E500 double.
1030         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1031         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1032         specially for E500 double.
1033         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1034         TDmode for E500 double.
1035         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1036         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1037         (rs6000_split_multireg_move): Do not handle TDmode specially for
1038         E500 double.
1039         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1040         using 64-bit registers for E500 double.
1041         (emit_frame_save): Do not handle DDmode specially for E500 double.
1042         (gen_frame_mem_offset): Likewise.
1043         (rs6000_function_value): Do not call spe_build_register_parallel
1044         for DDmode or TDmode.
1045         (rs6000_libcall_value): Likewise.
1046         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1047         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1048         for E500 double.
1049
1050 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1051
1052         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1053         in comments.
1054
1055 2008-06-04  Junjie Gu <jgu@tensilica.com>
1056
1057         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1058         comparison for frame pointers.
1059
1060 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1061
1062         PR target/27386
1063         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1064
1065 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1066
1067         PR target/30243
1068         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1069         register is already smaller or equal to required mode. 
1070
1071 2008-06-04  Xinliang David Li  <davidxl@google.com>
1072
1073         * tree-call-cdce.c: New file. 
1074         (cond_dead_built_in_calls): New static variable.
1075         (input_domain): New struct.
1076         (check_pow): New function.
1077         (check_builtin_call): Ditto.
1078         (check_target_format): Ditto.
1079         (is_call_dce_candidate): Ditto.
1080         (gen_one_condition): Ditto.
1081         (gen_conditions_for_domain): Ditto.
1082         (get_domain): Ditto.
1083         (gen_conditions_for_pow_cst_base): Ditto.
1084         (gen_conditions_for_pow_int_base): Ditto.
1085         (gen_conditions_for_pow): Ditto.
1086         (get_no_error_domain): Ditto.
1087         (gen_shrink_wrap_conditions): Ditto.
1088         (shrink_wrap_one_built_in_call): Ditto.
1089         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1090         (tree_call_cdce): Ditto.
1091         (gate_call_cdce): Ditto.
1092         (pass_call_cdce): New gimple pass.
1093         * passes.c: (init_optimization_passes): New pass.
1094         * tree-pass.h: New pass declaration.
1095         * opts.c (decode_options): New flag setting.
1096         * common.opt: Add -ftree-builtin-call-dce flag.
1097         * Makefile.in: Add new source file.
1098         * tempvar.def: New tv_id.
1099         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1100
1101 2008-06-04  Richard Guenther  <rguenther@suse.de>
1102
1103         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1104         (is_call_clobbered): Always check var_ann->call_clobbered.
1105         (mark_call_clobbered): Always set var_ann->call_clobbered.
1106         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1107         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1108         (reset_alias_info): Clear call clobbering info on MTAGs and
1109         globals as well.
1110         (set_pt_anything): Set pt_global_mem.
1111         (create_tag_raw): Adjust comment.
1112         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1113
1114 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1115             Maxim Kuvyrkov  <maxim@codesourcery.com>
1116
1117         * config/m68k/m68k.opt (mxgot): New option.
1118         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1119         (m68k_output_addr_const_extra): New.
1120         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1121         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1122         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1123         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1124
1125 2008-06-04  Richard Guenther  <rguenther@suse.de>
1126
1127         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1128         negative or non-representable offsets.
1129
1130 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1131
1132         * config/i386/i386.c (ix86_gen_leave): New.
1133         (ix86_gen_pop1): Likewise.
1134         (ix86_gen_add3): Likewise.
1135         (ix86_gen_sub3): Likewise.
1136         (ix86_gen_sub3_carry): Likewise.
1137         (ix86_gen_one_cmpl2): Likewise.
1138         (ix86_gen_monitor): Likewise.
1139         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1140         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1141         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1142         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1143         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1144         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1145         (ix86_expand_epilogue): Updated.
1146         (print_operand): Handle integer register operand for 'z'.
1147         (ix86_expand_strlensi_unroll_1): Likewise.
1148         (ix86_expand_strlen): Likewise.
1149         (ix86_expand_builtin): Likewise.
1150         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1151         mov{q}/mov{l} and add{q}/add{l}.
1152
1153 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1154
1155         * config/i386/i386.md (P): New mode iterator.
1156         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1157         using P mode iterator.
1158         (DFmode push_operand splitter): Ditto.
1159         (XFmode push_operand splitter): Ditto.
1160         (DFmode float_extend SFmode push_operand splitter): Ditto.
1161         (XFmode float_extend SFmode push_operand splitter): Do not generate
1162         SImode pushes for 64bit target.  Macroize Dimode and SImode
1163         pushes using P mode iterator.
1164         (XFmode float_extend DFmode push_operand splitter): Ditto.
1165
1166 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1167
1168         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1169         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1170         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1171         return type to int.
1172         (ix86_call_abi_override): Remove check for call_used_regs.
1173
1174 2008-06-03  Richard Guenther  <rguenther@suse.de>
1175
1176         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1177         for the lhs of calls if the return type contains pointers.
1178
1179 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1180
1181         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1182         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1183         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1184         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1185         of cfun and DEFAULT_ABI to deceide abi mode.
1186         (DEFAULT_ABI): New.
1187         (REG_PARM_STACK_SPACE): Removed.
1188         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1189         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1190         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1191         (ix86_function_abi): Likewise.
1192         (ix86_function_type_abi): Likewise.
1193         (ix86_call_abi_override): Likewise.
1194         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1195         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1196         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1197         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1198         specific defines.
1199         (X86_64_REGPARM_MAX): New.
1200         (X86_64_SSE_REGPARM_MAX): New.
1201         (X64_REGPARM_MAX): New.
1202         (X64_SSE_REGPARM_MAX): New.
1203         (X86_32_REGPARM_MAX): New.
1204         (X86_32_SSE_REGPARM_MAX): New.
1205         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1206         (ix86_function_regparm): Handle user calling abi.
1207         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1208         by DEFAULT_ABI versus SYSV_ABI check.
1209         (ix86_reg_parm_stack_space): New.
1210         (ix86_function_type_abi): New.
1211         (ix86_call_abi_override): New.
1212         (ix86_function_abi): New.
1213         (ix86_cfun_abi): New.
1214         (init_cumulative_args): Call abi specific initialization.
1215         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1216         (function_arg_64): Extend SSE_REGPARM_MAX check.
1217         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1218         (ix86_pass_by_reference): Likewise.
1219         (ix86_function_value_regno_p): Likewise.
1220         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1221         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1222         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1223         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1224         (setup_incoming_varargs_64): Adjust regparm for call abi.
1225         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1226         (ix86_va_start): Likewise.
1227         (ix86_gimplify_va_arg): Likewise.
1228         (ix86_expand_prologue): Likewise.
1229         (output_pic_addr_const): Likewise.
1230         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1231         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1232         (x86_output_mi_thunk): Likewise.
1233         (x86_function_profiler): Likewise.
1234         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1235         (SYSV_ABI, MS_ABI): New constants.
1236         (DEFAULT_ABI): New.
1237         (init_regs): Add prototype of function in regclass.c file.
1238         (OVERRIDE_ABI_FORMAT): New.
1239         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1240         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1241         (OUTGOING_REG_PARM_STACK_SPACE): New.
1242         (ix86_reg_parm_stack_space): New prototype.
1243         (CUMULATIVE_ARGS): Add call_abi member.
1244         (machine_function): Add call_abi member.
1245         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1246         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1247
1248 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1249
1250         PR target/34879
1251         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1252         (avr_builtin_setjmp_frame_value): New function.
1253         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1254         (nonlocal_goto): Define.
1255
1256 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1257
1258         * config/mips/mips.c (mips_emit_loadgp): Return early if
1259         there is nothing do to, otherwise emit a blockage if
1260         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1261         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1262
1263 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1264
1265         * configure.ac: Drop unneeded backslash ending up in config.in.
1266         * acinclude.m4: Likewise.
1267         * config.in: Regenerate.
1268
1269 2008-05-26  Jan Hubicka  <jh@suse.cz>
1270
1271         * predict.c (maybe_hot_frequency_p): Break out of...
1272         (maybe_hot_bb_p): ... here.
1273         (maybe_hot_edge_p): New.
1274         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1275         * basic-block.h (maybe_hot_edge_p): Declare.
1276
1277 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1278
1279         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1280         (*cmpfp_<mode>_cc): Ditto.
1281         (*fp_jcc_8<mode>_387): Ditto.
1282         (*fop_<MODEF:mode>_2_i387): Ditto.
1283         (*fop_<MODEF:mode>_3_i387): Ditto.
1284         (*fop_xf_2_i387): Ditto.
1285         (*fop_xf_3_i387): Ditto.
1286
1287 2008-06-02  Tomas Bily  <tbily@suse.cz>
1288
1289         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1290
1291 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1292
1293         * config/mips/mips.c (mips_valid_offset_p): New function.
1294         (mips_valid_lo_sum_p): Likewise.
1295         (mips_classify_address): Use them.
1296         (mips_force_address): New function.
1297         (mips_legitimize_address): Use it.
1298         * config/mips/mips.md (MOVE128): New mode iterator.
1299         (movtf): Require TARGET_64BIT.  Remove empty strings.
1300         (*movtf_internal): Rename to...
1301         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1302         of "R" and use {,fp}{load,store} attributes instead of "multi".
1303         Use a separate define_split.
1304         (*movtf_mips16): New pattern.
1305
1306 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1307
1308         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1309         * config/mips/mips.c (mips_expand_before_return): New function.
1310         (mips_expand_epilogue): Call it.
1311         * config/mips/mips.md (return): Turn into a define_expand.
1312         (*return): New insn.
1313
1314 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1315
1316         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1317         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1318         functions.  Do not emit uses and clobbers of CONCATs; individually
1319         use and clobber their operands.
1320         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1321         gen_clobber, emit_use and gen_use.
1322         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1323         (expand_builtin_return): Likewise.
1324         * cfgbuild.c (count_basic_blocks): Likewise.
1325         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1326         * explow.c (emit_stack_restore): Likewise.
1327         * expmed.c (extract_bit_field_1): Likewise.
1328         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1329         (emit_move_multi_word, store_constructor): Likewise.
1330         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1331         (thread_prologue_and_epilogue_insns): Likewise.
1332         * lower-subreg.c (resolve_simple_move): Likewise.
1333         * optabs.c (widen_operand, expand_binop): Likewise.
1334         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1335         * reload.c (find_reloads): Likewise.
1336         * reload1.c (eliminate_regs_in_insn): Likewise.
1337         * stmt.c (expand_nl_goto_receiver): Likewise.
1338         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1339         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1340         * config/arm/arm.c (arm_load_pic_register): Likewise.
1341         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1342         * config/arm/arm.md (untyped_return): Likewise.
1343         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1344         * config/avr/avr.c (expand_prologue): Likewise.
1345         * config/bfin/bfin.c (do_unlink): Likewise.
1346         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1347         * config/cris/cris.c (cris_expand_prologue): Likewise.
1348         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1349         (machopic_legitimize_pic_address): Likewise.
1350         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1351         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1352         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1353         (ix86_expand_convert_uns_didf_sse): Likewise.
1354         (ix86_expand_vector_init_general): Likewise.
1355         * config/ia64/ia64.md (eh_epilogue): Likewise.
1356         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1357         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1358         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1359         (config/iq2000/iq2000.c): Likewise.
1360         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1361         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1362         (builtin_longjmp): Likewise.
1363         * config/mn10300/mn10300.md (call, call_value): Likewise.
1364         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1365         * config/pdp11/pdp11.md (abshi2): Likewise.
1366         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1367         * config/s390/s390.c (s390_emit_prologue): Likewise.
1368         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1369         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1370         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1371         * config/sh/sh.c (prepare_move_operands): Likewise.
1372         (output_stack_adjust, sh_expand_epilogue): Likewise.
1373         (sh_set_return_address, sh_expand_t_scc): Likewise.
1374         * config/sparc/sparc.c (load_pic_register): Likewise.
1375         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1376         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1377         * config/v850/v850.c (expand_epilogue): Likewise.
1378
1379 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1380
1381         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1382         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1383         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1384         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1385         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1386         stack pointer register.
1387         (output_movhi): Remove code for interrupt specific writing to the 
1388         stack pointer register.
1389
1390 2008-05-31  Richard Guenther  <rguenther@suse.de>
1391
1392         PR tree-optimization/34244
1393         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1394         (tree_expr_nonzero_warnv_p): Likewise.
1395         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1396         ssa_name_nonnegative_p.
1397         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1398         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1399         not tree_expr_nonzero_warnv_p.
1400
1401         PR tree-optimization/36262
1402         Revert
1403         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1404
1405         PR tree-optimization/34244
1406         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1407         (record_numbers_of_iterations): New function.
1408         (execute_vrp): Cache the numbers of iterations of loops.
1409         * tree-scalar-evolution.c (scev_reset_except_niters):
1410         New function.
1411         (scev_reset): Use scev_reset_except_niters.
1412         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1413
1414 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1415
1416         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1417         __WORKAROUND_RETS when appropriate.
1418
1419 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1420
1421         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1422         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1423         mode iterator.
1424         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1425         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1426         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1427         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1428         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1429         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1430         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1431         *fop_df_1_sse insn patterns using MODEF mode iterator.
1432         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1433         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1434         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1435         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1436         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1437         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1438         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1439         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1440         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1441         (*fop_xf_5_i387): Ditto.
1442         (*fop_xf_6_i387): Ditto.
1443
1444 2008-05-30  Richard Guenther  <rguenther@suse.de>
1445
1446         * builtins.c (build_string_literal): Avoid generating
1447         a non-gimple_val result.
1448
1449 2008-05-30  DJ Delorie  <dj@redhat.com>
1450
1451         * exec-tool.in: Use an environment variable (private) instead of a
1452         file (shared) as a semaphore, so as to not break parallel builds.
1453
1454 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1455
1456         * optabs.c (maybe_encapsulate_block): Remove.
1457         (emit_libcall_block): Adjust accordingly.
1458         * optabs.h (maybe_encapsulate_block): Remove prototype.
1459
1460         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1461         Don't use maybe_encapsulate_block.
1462
1463 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1464
1465         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1466         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1467         rtx is a SYMBOL_REF before calling get_pool_constant.
1468
1469 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1470
1471         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1472
1473 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1474
1475         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1476         rather than OS names to choose INO_T_EQ definition.
1477         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1478         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1479
1480 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1481
1482         PR target/36348
1483         * config/darwin-f.c: New.
1484         * config/t-darwin: Added rule to build darwin-f.o.
1485         * config.gcc: Defined new variable, fortran_target_objs.
1486         (*-*-darwin*): Set fortran_target_objs.
1487         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1488         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1489         * configure: Regenerated.
1490
1491 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1492
1493         PR target/35771
1494         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1495         canonical type if needed.
1496
1497 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1498
1499         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1500
1501 2008-05-29  Richard Guenther  <rguenther@suse.de>
1502
1503         PR tree-optimization/36343
1504         PR tree-optimization/36346
1505         PR tree-optimization/36347
1506         * tree-flow.h (clobber_what_p_points_to): Declare.
1507         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1508         pointed-to variable is dereferenced is irrelevant to whether
1509         the pointer can access the pointed-to variable.
1510         (clobber_what_p_points_to): New function.
1511         * tree-ssa-alias.c (set_initial_properties): Use it.
1512         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1513         call clobber check for NMTs.
1514
1515 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1516         
1517         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1518         for printing gcov_type.
1519
1520 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1521
1522         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1523         and the eh region information.
1524         * value-prof.c (gimple_move_stmt_histograms): New function.
1525         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1526
1527 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1528
1529         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1530
1531 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1532
1533         * value-prof.c (tree_ic_transform): Print counts.
1534         * tree-profile.c (tree_gen_ic_func_profiler):
1535         Clear __gcov_indreict_call_callee variable to avoid misattribution
1536         of the profile.
1537
1538 2008-05-28  Rafael Espindola  <espindola@google.com>
1539
1540         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1541         invalid sharing.
1542
1543 2008-05-28  Richard Guenther  <rguenther@suse.de>
1544
1545         PR tree-optimization/36339
1546         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1547         and clobbering code out of the loop.
1548
1549 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1550
1551         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1552         letters defined.
1553
1554         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1555         s390_contiguous_bitmask_p, s390_symref_operand_p,
1556         s390_check_symref_alignment, s390_reload_larl_operand,
1557         s390_reload_symref_address): New functions.
1558         (s390_branch_condition_mnemonic): Support compare and branch
1559         instructions.
1560         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1561         and 'W' constraints.
1562         (s390_secondary_reload): Add secondary reloads for unaligned
1563         symbol refs or symbol refs to floating point or QI/TI mode
1564         integer values.
1565         (legitimate_address_p): Accept symbol references as addresses.
1566         (s390_expand_insv): Use rotate and insert selected bits
1567         instruction for insv when building for z10.
1568         (print_operand_address): Handle symbol ref addresses.
1569         (print_operand): Output modifier 'c' added for signed byte values.
1570         (s390_encode_section_info): Mark symbol refs with
1571         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1572
1573         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1574         (length attribute): RRF, RRR have 4 byte length.
1575         (FPALL, INTALL): New mode iterators added.
1576         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1577         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1578         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1579         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1580         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1581         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1582         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1583         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1584         instructions.
1585         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1586         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1587         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1588         reload<INTALL:mode><P:mode>_toreg_z10,
1589         reload<FPALL:mode><P:mode>_tomem_z10,
1590         reload<FPALL:mode><P:mode>_toreg_z10,
1591         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1592         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1593         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1594         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1595         definition.
1596         (movmem, clrmem, cmpmem): New splitters added.
1597
1598         * config/s390/predicates.md (larl_operand): Use
1599         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1600         SYMBOL_REF_ALIGN1_P.
1601         (s390_signed_integer_comparison,
1602         s390_unsigned_integer_comparison): New predicates.
1603
1604         * config/s390/s390-protos.h (s390_check_symref_alignment,
1605         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1606         s390_reload_symref_address,
1607         s390_compare_and_branch_condition_mask): Prototypes added.
1608
1609         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1610         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1611         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1612
1613 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1614
1615         * config/s390/s390.c (z10_cost): New cost function for z10.
1616         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1617         (s390_issue_rate): Adjust issue rate for z10.
1618         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1619         (processor_flags): Add PF_Z10.
1620         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1621         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1622         * gcc/config.gcc: Add z10.
1623
1624 2008-05-28  Richard Guenther  <rguenther@suse.de>
1625
1626         PR tree-optimization/36291
1627         * tree-flow. h (struct gimple_df): Remove var_anns member.
1628         * tree-flow-inline.h (gimple_var_anns): Remove.
1629         (var_ann): Simplify.
1630         * tree-dfa.c (create_var_ann): Simplify.
1631         (remove_referenced_var): Clear alias info from var_anns of globals.
1632         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1633         (delete_tree_ssa): Clear alias info from var_anns of globals.
1634         Do not free var_anns.
1635         (var_ann_eq): Remove.
1636         (var_ann_hash): Likewise.
1637
1638 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1639
1640         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1641         and loongson2f entries.
1642         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1643         * config/mips/mips.h (processor_type): Add Loongson-2E
1644         and Loongson-2F entries.
1645         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1646         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1647         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1648         * doc/invoke.texi (MIPS Options): Document loongson2e
1649         and loongson2f processor names.
1650
1651 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1652
1653         PR target/35767
1654         PR target/35771
1655         * config/i386/i386.c (ix86_function_arg_boundary): Use
1656         alignment of canonical type.
1657         (ix86_expand_vector_move): Check unaligned memory access for
1658         all SSE modes.
1659
1660 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1661
1662         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1663         Moved to the front of file.
1664
1665 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1666             H.J. Lu  <hongjiu.lu@intel.com>
1667
1668         * dwarf2out.c (current_fde): New.
1669         (add_cfi): Use it.
1670         (lookup_cfa:): Likewise.
1671         (dwarf2out_end_epilogue): Likewise.
1672         (dwarf2out_note_section_used): Likewise.
1673
1674 2008-05-27  Michael Matz  <matz@suse.de>
1675
1676         PR c++/27975
1677         * c.opt (Wenum-compare): New warning option.
1678         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1679
1680 2008-05-27  Michael Matz  <matz@suse.de>
1681
1682         PR middle-end/36326
1683         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1684         non-BLKmode types.
1685         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1686         into memory as tail calls.
1687
1688 2008-05-27  Richard Guenther  <rguenther@suse.de>
1689
1690         PR tree-optimization/36339
1691         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1692         pointers cause all addressable variables to be call clobbered.
1693
1694 2008-05-27  Richard Guenther  <rguenther@suse.de>
1695
1696         PR tree-optimization/36245
1697         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1698
1699 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1700
1701         * config/s390/s390.md: Replace all occurences of the 'm'
1702         constraint with 'RT'.
1703
1704 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1705
1706         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1707         definitions added.
1708         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1709         "*movdi_64".
1710         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1711         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1712         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1713
1714 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1715
1716         * reload.c: (find_reloads): Skip alternatives according to the
1717         "enabled" attribute. Constify the constraint variable.
1718         * recog.c (get_attr_enabled): Add default implementation.
1719         (extract_insn): Set the alternative_enabled_p array
1720         in the recog_data struct.
1721         (preprocess_constraints, constrain_operands): Skip
1722         alternatives according to the "enabled" attribute
1723         * recog.h (struct recog_data): New field alternative_enabled_p.
1724         (skip_alternative): New inline function.
1725         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1726         (record_reg_classes): Skip alternative according to the
1727         "enabled" attribute.
1728
1729         * doc/md.texi: Add documention for the "enabled" attribute.
1730
1731 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1732
1733         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1734         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1735         constraint with TARGET_MEM_CONSTRAINT.
1736         * recog.c (asm_operand_ok, preprocess_constraints,
1737         constrain_operands): Likewise.
1738         * regclass.c (record_reg_classes): Likewise.
1739         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1740         * reload1.c (maybe_fix_stack_asms): Likewise.
1741         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1742         * recog.h: Adjust comment.
1743         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1744         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1745         * doc/md.texi: Add a note to description of 'm' constraint.
1746         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1747
1748 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1749
1750         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1751         that the bitfield is of integral type before testing its precision.
1752
1753 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1754             Sa Liu  <saliu@de.ibm.com> 
1755
1756         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1757         __modti3, __udivti3, __umodti3 and __udivmodti4.
1758         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1759         that implement TImode mul and div functions.
1760         * config/spu/multi3.c: New. Implement __multi3.
1761         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1762         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1763         functions on SPU.
1764
1765 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1766
1767         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1768         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1769         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1770         tls_sysv_suffix): New mode and mode attribute iterators.
1771         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1772         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1773         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1774         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1775         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1776         iterators.
1777
1778 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1779
1780         PR tree-optimization/36329
1781         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1782         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1783         * cgraphbuild.c (initialize_inline_failed): Use the latter
1784         macro in lieu of the former.
1785         * ipa-inline.c (cgraph_mark_inline): Likewise.
1786         (cgraph_decide_inlining_of_small_function): Likewise.
1787         (cgraph_decide_inlining): Likewise.
1788         (cgraph_decide_inlining_incrementally): Likewise.
1789
1790 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1791             Anatoly Sokolov  <aesok@post.ru>
1792
1793         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1794         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1795         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1796         optimization for 'avr6' architecture.
1797
1798 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1799
1800         PR target/34932
1801         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1802
1803 2008-05-26  Richard Guenther  <rguenther@suse.de>
1804
1805         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1806         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1807
1808 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1809
1810         PR middle-end/36253
1811         * caller-save.c (insert_restore): Verify alignment of spill space.
1812         (insert_save): Likewise.
1813         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1814         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1815         (STACK_SLOT_ALIGNMENT): Likewise.
1816         * function.c (LOCAL_ALIGNMENT): Removed.
1817         (get_stack_local_alignment): New.
1818         (assign_stack_local): Use it.  Set alignment on stack slot.
1819         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1820         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1821         (STACK_SLOT_ALIGNMENT): New.
1822         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1823         stack slot in XFmode.
1824
1825         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1826
1827 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1828
1829         PR/36321
1830         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1831         argument operand in rax isn't removed.
1832
1833 2008-05-26  Richard Guenther  <rguenther@suse.de>
1834
1835         PR middle-end/36300
1836         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1837         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1838
1839 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1840
1841         PR bootstrap/36331
1842         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1843
1844 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1845
1846         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1847         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1848
1849 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1850
1851         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1852         build a trampoline if we don't want one.
1853         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1854         return zero for nested functions if we don't want a trampoline.
1855
1856 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1857
1858         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1859
1860 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1861
1862         PR fortran/18428
1863         * c.opt: Removed undocumented option '-lang-fortran'.
1864         * c-common.h: Removed global variable 'lang_fortran'.
1865         * c-opts.c (c_common_handle_option): Removed code to handle
1866         option '-lang-fortran'. Updated includes.
1867         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1868         definition of '__GFORTRAN__'.
1869         (define__GNUC__): Reimplemented to use BASEVER and
1870         cpp_define_formatted.
1871         (builtin_define_with_value_n): Removed.
1872         * c-incpath.h: Renamed to ...
1873         * incpath.h: ... this.
1874         * c-incpath.c: Renamed to ...
1875         * incpath.c: ... this. Updated includes.
1876         * fix-header.c: Updated includes.
1877         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1878         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1879         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1880
1881 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1882
1883         * tree.h: Update the table of flags used on tree nodes.
1884         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1885         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1886         (FORCED_LABEL): Add access check.
1887         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1888         (ASM_INPUT_P): Likewise.
1889         (ASM_VOLATILE_P): Likewise.
1890         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1891         (OMP_SECTION_LAST): Access private_flag directly.
1892         (OMP_RETURN_NOWAIT): Likewise.
1893         (OMP_PARALLEL_COMBINED): Likewise.
1894         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1895         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1896         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1897         deprecated_flag directly.
1898
1899 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1900
1901         * final.c (frame_pointer_needed): Removed.
1902         * flags.h (frame_pointer_needed): Likewise.
1903
1904         * function.h (rtl_data): Add frame_pointer_needed.
1905         (frame_pointer_needed): New.
1906
1907 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1908
1909         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1910
1911 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1912
1913         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1914         SRC is a REG.
1915
1916 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1917
1918         * c-common.c (strip_array_types): Move function to..
1919         * tree.c: ..here.
1920         (get_inner_array_type): Delete.
1921         * c-common.h (strip_array_types): Move declaration to..
1922         * tree.h: ..here.
1923         (get_inner_array_type): Delete.
1924         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1925         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1926         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1927         * config/pa/pa.c (emit_move_sequence): Likewise.
1928
1929 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1930
1931         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1932         attribute to 34.
1933
1934 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1935
1936         * function.c: Include target hook for nonlocal_goto frame value.
1937
1938 2008-05-24  Richard Guenther  <rguenther@suse.de>
1939
1940         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1941         variable can be only accessed through a pointer or a union.
1942
1943 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1944
1945         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1946         * doc/extend.texi: Likewise.
1947
1948 2008-05-23  DJ Delorie  <dj@redhat.com>
1949
1950         * config/m32c/jump.md (untyped_call): Add.
1951
1952         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1953         for A24 to PSImode.
1954         (m32c_address_cost): Detail costs for indirect offsets.
1955
1956 2008-05-23  Rafael Espindola  <espindola@google.com>
1957
1958         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1959         if a node is a SUBREG.
1960         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1961         is a SUBREG.
1962
1963 2008-05-23  Paul Brook  <paul@codesourcery.com>
1964             Carlos O'Donell  <carlos@codesourcery.com>
1965
1966         * doc/extend.texi: Clarify use of __attribute__((naked)).
1967         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1968         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1969         * function.c (use_register_for_decl): Use
1970         targetm.calls.allocate_stack_slots_for_args.
1971         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1972         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1973         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1974
1975 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1976
1977         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1978
1979 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1980
1981         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1982         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1983         is only rounded once.
1984
1985 2008-05-23  Richard Guenther  <rguenther@suse.de>
1986
1987         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1988
1989 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1990             Jakub Jelinek  <jakub@redhat.com>
1991
1992         PR target/36079
1993         * configure.ac: Handle --enable-cld.
1994         * configure: Regenerated.
1995         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1996         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1997         (ix86_current_function_needs_cld): New define.
1998         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1999         (cld): New isns pattern.
2000         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2001         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2002         * config/i386/i386.opt (mcld): New option.
2003         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2004         TARGET_CLD and ix86_current_function_needs_cld.
2005         (override_options): Use -mcld by default for 32-bit code if
2006         USE_IX86_CLD.
2007
2008         * doc/install.texi (Options specification): Document --enable-cld.
2009         * doc/invoke.texi (Machine Dependent Options)
2010         [i386 and x86-64 Options]: Add -mcld option.
2011         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2012
2013 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2014         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2015         (return_in_memory_64): Likewise.
2016         (return_in_memory_ms_64): Likewise.
2017
2018 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2019
2020         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2021         * builtins.c (fold_builtin_fpclassify): New.
2022         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2023         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2024         * c-common.c (handle_type_generic_attribute): Adjust to accept
2025         fixed arguments before an elipsis.
2026         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2027         * doc/extend.texi: Document __builtin_fpclassify.
2028
2029 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2030
2031         * omp-low.c (gate_expand_omp_ssa): Remove.
2032         (pass_expand_omp_ssa): Remove.
2033         (gate_expand_omp): Do not check for flag_openmp_ssa.
2034         * common.opt (-fopenmp-ssa): Remove.
2035         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2036
2037 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2038
2039         * config/sh/sh.opt (mfixed-range): New option.
2040         * config/sh/sh-protos.h (sh_fix_range): Declare.
2041         * config/sh/sh.c (sh_fix_range): New function.
2042         * config/sh/sh.h (sh_fixed_range_str): Declare.
2043         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2044         is not empty.
2045         * doc/invoke.texi (SH Options): Document -mfixed-range.
2046
2047 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2048
2049         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2050         it before the redeclaration.
2051
2052 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2053
2054         * config/avr/avr.c (get_sequence_length): Add new function.
2055         (expand_prologue, expand_epilogue): Remove duplicate code.
2056
2057 2008-05-22  Rafael Espindola  <espindola@google.com>
2058
2059         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2060         sharing.
2061
2062 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2063
2064         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2065         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2066
2067         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2068         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2069         (vect_update_misalignment_for_peel): Likewise.
2070         (vector_alignment_reachable_p): Likewise.
2071         * tree-vect-transform.c (vectorizable_load): Likewise.
2072         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2073         (get_vectype_for_scalar_type): Pass mode of scalar_type
2074         to UNITS_PER_SIMD_WORD.
2075
2076         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2077         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2078         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2079         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2080         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2081
2082 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2083
2084         PR tree-optimization/36293
2085         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2086         if the first load must be skipped because of a gap.
2087
2088 2008-05-22  Richard Guenther  <rguenther@suse.de>
2089
2090         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2091         more cases of offset disambiguation that is possible if
2092         strict-aliasing rules apply.
2093         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2094         for basic offset and type-based disambiguation.
2095
2096 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2097
2098         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2099         ix86_expand_vector_set on V16QImode for SSE4.1.
2100
2101 2008-05-21  Tom Tromey  <tromey@redhat.com>
2102
2103         * c.opt (Wimport): Mark as undocumented.
2104         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2105         -Wno-import.
2106         (Warning Options): Likewise.
2107         * doc/cppopts.texi: Don't mention -Wimport.
2108
2109 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2110
2111         PR tree-optimization/36287
2112         PR tree-optimization/36286
2113         * lambda-code.c (build_access_matrix): Do not use the loop->num
2114         for computing the number of induction variables: use the loop depth
2115         instead.
2116
2117 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2118
2119         PR/36280
2120         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2121         option -f(no-)leading-underscore.
2122
2123 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2124
2125         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2126         GET_MODE_NUNITS (mode).
2127
2128 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2129
2130         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2131         (-mmulhw): Add 464 to description.
2132         (-mdlmzb): Likewise.
2133         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2134         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2135         464fp entries.
2136         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2137         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2138         * config/rs6000/rs6000.md: Update comments for 464.
2139
2140 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2141
2142         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2143
2144 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2145
2146         * config/i386/sse.md (vec_extractv4sf): Removed.
2147         (vec_extractv2df): Likewise.
2148         (vec_extractv2di): Likewise.
2149         (vec_extractv4si): Likewise.
2150         (vec_extractv8hi): Likewise.
2151         (vec_extractv16qi): Likewise.
2152         (vec_extract<mode>): New.
2153
2154 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2155
2156         * config/i386/sse.md (vec_setv4sf): Removed.
2157         (vec_setv2df): Likewise.
2158         (vec_setv2di): Likewise.
2159         (vec_setv4si): Likewise.
2160         (vec_setv8hi): Likewise.
2161         (vec_setv16qi): Likewise.
2162         (vec_set<mode>): New.
2163
2164 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2165
2166         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2167         goto for vec_concat and vec_interleave.
2168
2169 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2170
2171         * config/i386/sse.md (vec_initv4sf): Removed.
2172         (vec_initv2df): Likewise.
2173         (vec_initv2di): Likewise.
2174         (vec_initv4si): Likewise.
2175         (vec_initv8hi): Likewise.
2176         (vec_initv16qi): Likewise.
2177         (vec_init<mode>): New.
2178
2179 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2180
2181         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2182
2183 2008-05-21  Tom Tromey  <tromey@redhat.com>
2184
2185         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2186         (zone_find_object_offset): Likewise.
2187         (gt_ggc_m_S): Likewise.
2188         (highest_bit): Likewise.
2189         * ggc-page.c (gt_ggc_m_S): New function.
2190         * stringpool.c (string_stack): Remove.
2191         (init_stringpool): Update.
2192         (ggc_alloc_string): Use ggc_alloc.
2193         (maybe_delete_ident): New function.
2194         (ggc_purge_stringpool): Likewise.
2195         (gt_ggc_m_S): Remove.
2196         * ggc-common.c (ggc_protect_identifiers): New global.
2197         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2198         ggc_protect_identifiers.
2199         * ggc.h (ggc_protect_identifiers): Declare.
2200         (gt_ggc_m_S): Update.
2201         (ggc_purge_stringpool): Declare.
2202         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2203         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2204         special case.
2205         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2206
2207 2008-05-21  David S. Miller  <davem@davemloft.net>
2208
2209         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2210         tmake_file.
2211
2212 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2213
2214         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2215         once finished.
2216
2217 2008-05-20  David Daney  <ddaney@avtrex.com>
2218
2219         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2220         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2221         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2222         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2223         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2224         (atomic_hiqi_op): New define_code_iterator.
2225         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2226         mips_expand_compare_and_swap_12.
2227         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2228         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2229         (sync_<optab><mode>, sync_old_<optab><mode>,
2230         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2231         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2232         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2233         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2234         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2235         (test_and_set_12): New insn.
2236         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2237         sync_new_<optab><mode>, sync_old_nand<mode>,
2238         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2239         clobber to operand 0 for SI and DI mode insns.
2240         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2241         mips_gen_fn_4): New typedefs.
2242         (mips_gen_fn_ptrs): Define new union type.
2243         (mips_expand_compare_and_swap_12): Remove declaration.
2244         (mips_expand_atomic_qihi): Declare function.
2245         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2246         (mips_expand_atomic_qihi): ... this.  Use new generator function
2247         parameter.
2248         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2249         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2250         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2251         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2252         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2253         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2254         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2255         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2256         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2257         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2258         New macros.
2259
2260 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2261
2262         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2263         the missing break.
2264
2265 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2266
2267         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2268         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2269         (avr_attribute_table): Add 'OS_main' function attribute.
2270         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2271         functions with 'OS_main' attribute.
2272
2273 2008-05-20  Richard Guenther  <rguenther@suse.de>
2274
2275         PR tree-optimization/35204
2276         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2277         helper, split out from ...
2278         (DFS): ... here.  Make the DFS walk non-recursive.
2279
2280 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2281             Jan Sjodin  <jan.sjodin@amd.com>
2282
2283         PR tree-optimization/36181
2284         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2285         (parallelize_loops): Don't parallelize when the loop has vector
2286         phi nodes.
2287
2288 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2289             Sebastian Pop  <sebastian.pop@amd.com>
2290
2291         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2292         matrix, and never look at the tree representation of the memory
2293         accesses.
2294         (linear_transform_loops): Computes parameters and access matrices.
2295         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2296         when fails.
2297         (access_matrix_get_index_for_parameter): New.
2298         * tree-data-ref.h (struct access_matrix): New.
2299         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2300         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2301         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2302         am_vector_index_for_loop): New.
2303         (struct data_reference): Add field access_matrix.
2304         (DR_ACCESS_MATRIX): New.
2305         (compute_data_dependences_for_loop): Update declaration.
2306         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2307         * lambda.h (lambda_vector_vec_p): Declared.
2308         * lambda-code.c: Depend on pointer-set.h.
2309         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2310         av_for_af_base, av_for_af, build_access_matrix,
2311         lambda_compute_access_matrices): New.
2312         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2313
2314 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2315
2316         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2317         $SOURCEDIR/include.
2318
2319 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2320             Sebastian Pop  <sebastian.pop@amd.com>
2321
2322         PR tree-optimization/36206
2323         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2324         FOLD_CONVERSIONS.
2325         (instantiate_scev_1): Rename flags to fold_conversions.
2326         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2327         outeside instantiation_loop.
2328         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2329         (evolution_function_is_affine_or_constant_p): Removed.
2330         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2331         instantiate_scev.
2332         (analyze_siv_subscript): Pass in the loop nest number.
2333         Call evolution_function_is_affine_in_loop instead of 
2334         evolution_function_is_affine_p.
2335         (analyze_overlapping_iterations): Pass in the loop nest number.
2336
2337 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2338             Sebastian Pop  <sebastian.pop@amd.com>
2339
2340         PR tree-optimization/36206
2341         * tree-chrec.h (chrec_fold_op): New.
2342         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2343         and other trees.
2344
2345 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2346
2347         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2348         (DIRS_EQ): New.
2349         (remove_duplicates): Do not set inode on non-inode systems.
2350         Use DIRS_EQ.
2351
2352 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2353
2354         * config.gcc (tm_file): Update comments about relative pathnames.
2355
2356 2008-05-20  Richard Guenther  <rguenther@suse.de>
2357
2358         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2359         * tree-ssa-sccvn.c (process_scc): Likewise.
2360         * tree-ssa-sink.c (execute_sink_code): Likewise.
2361         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2362         * tree-vrp.c (process_assert_insertions): Likewise.
2363         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2364         (perform_tree_ssa_dce): Likewise.
2365         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2366         (dump_dominator_optimization_stats): Likewise.
2367         * tree-vectorizer.c (vectorize_loops): Likewise.
2368
2369 2008-05-20  Richard Guenther  <rguenther@suse.de>
2370
2371         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2372
2373 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2374
2375         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2376         (ix86_i386elf_return_in_memory): Likewise.
2377         (ix86_i386interix_return_in_memory): Likewise.
2378         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2379         (SUBTARGET_RETURN_IN_MEMORY): New.
2380         * config/i386/i386elf.h: Likewise.
2381         * config/i386/ptx4-i.h: Likewise.
2382         * config/i386/sol2-10.h: Likewise.
2383         * config/i386/sysv4.h: Likewise.
2384         * config/i386/vx-common.h: Likewise.
2385         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2386         * config/i386/i386.c (ix86_return_in_memory): Made static and
2387         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2388         (ix86_i386elf_return_in_memory): Removed.
2389         (ix86_i386interix_return_in_memory): Removed.
2390         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2391         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2392
2393 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2394
2395         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2396
2397 2008-05-19  Xinliang David Li  <davidxl@google.com>
2398
2399         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2400         * opts.c: Ditto.
2401         * common.opt: Ditto.
2402         * doc/invoke.texi: Ditto.
2403
2404 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2405
2406         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2407         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2408
2409 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2410
2411         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2412         sizes of operand array from 8/4 to 4/2.
2413         (ix86_expand_vector_init_general): Change size of operand array
2414         from 32 to 16.  Remove op0, op1 and half_mode.
2415
2416 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2417
2418         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2419         (ix86_expand_vector_init_interleave): Likewise.
2420         (ix86_expand_vector_init_general): Use them.  Assert
2421         word_mode == SImode when n_words == 4.
2422
2423 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2424
2425         * config/i386/i386.c (ix86_secondary_reload): New static function.
2426         (TARGET_SECONDARY_RELOAD): New define.
2427         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2428         * config/i386/i386.md (reload_outqi): Remove.
2429
2430 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2431
2432         PR middle-end/35509
2433         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2434         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2435         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2436         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2437         (fold_builtin_1): Likewise.
2438         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2439         c-common.c (check_builtin_function_arguments): Handle
2440         BUILT_IN_ISINF_SIGN.
2441         * doc/extend.texi: Document __builtin_isinf_sign.
2442         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2443
2444 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2445
2446         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2447         EH cleanup at the end of the pass, search for those that have been
2448         turned into forwarder blocks and do the cleanup on their successor.
2449
2450 2008-05-18  Richard Guenther  <rguenther@suse.de>
2451
2452         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2453         pointers to sizetype and vice versa.
2454
2455 2008-05-18 Xinliang David Li   <davidxl@google.com>
2456
2457         * gcc/tree-ssa-dce.c: Coding style fix.
2458         (check_pow): Documentation comment. 
2459         (check_log): Documenation comment. Coding style fix.
2460         (is_unnecessary_except_errno_call): Ditto.
2461         (gen_conditions_for_pow): Ditto.
2462         (gen_conditions_for_log): Ditto.
2463         (gen_shrink_wrap_conditions): Ditto.
2464         (shrink_wrap_one_built_in_calls): Ditto.
2465         * gcc/doc/invoke.texi: Better documentation string.
2466         * ChangeLog: Fix wrong change log entries from 
2467         May 17 checkin on function call DCE.
2468
2469 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2470
2471         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2472
2473 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2474
2475         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2476         * df-problems.c (simulation routines): Fixed block comment to
2477         properly say how to add forwards scanning functions.
2478         
2479 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2480
2481         * tree-inline.c (setup_one_parameter): Remove dead code.
2482
2483 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2484
2485         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2486         a BIT_AND_EXPR only for an INTEGER_TYPE.
2487
2488 2008-05-17 Xinliang David Li   <davidxl@google.com>
2489
2490         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2491         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2492         functions to check for eliminating math functions that are pure 
2493         except for setting errno.
2494         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2495         general condition expressions for shrink-wrapping pow/log calls.
2496         (gen_shrink_wrap_conditions): Ditto.
2497         (shrink_wrap_one_built_in_call): Ditto.
2498         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2499         (mark_operand_necessary): If debugging, output if OP is necessary.
2500         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2501         unnecessary.
2502         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2503         opt level >= 2.
2504         * gcc/common.opt: New user flag -ftree-builtin-dce.
2505         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2506
2507 2008-05-16  David S. Miller  <davem@davemloft.net>
2508
2509         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2510         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2511
2512 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2513
2514         PR target/36246
2515         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2516
2517 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2518
2519         * ifcvt.c (dead_or_predicable): Rename
2520         df_simulate_one_insn_backwards to df_simulate_one_insn.
2521         * recog.c (peephole2_optimize): Ditto.
2522         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2523         Ditto.
2524         * df.h: Rename df_simulate_one_insn_backwards to
2525         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2526         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2527         scanning of defs and uses.
2528         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2529         (df_simulate_one_insn_forwards): Removed.
2530
2531 2008-05-16  Doug Kwan  <dougkwan@google.com>
2532
2533         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2534         QNaN & SNaN.
2535         (real_from_string): Handle NaNs and Inf as approriate.
2536
2537 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2538
2539         * doc/gty.texi (Source Files Containing Type Information): Note
2540         that headers should appear first in the gtfiles list.
2541
2542 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2543
2544         * tree.def (COND_EXEC): Properly documented this code.
2545
2546 2008-05-16  Diego Novillo  <dnovillo@google.com>
2547
2548         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2549         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2550         the new field.
2551
2552 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2553
2554         * tree-ssa-dse (max_stmt_uid): Removed.
2555         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2556         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2557         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2558         * function.h (cfun.last_stmt_uid): New field.
2559         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2560         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2561         New functions.
2562         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2563         (create_stmt_ann): Initialize the ann->uid field.
2564         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2565         with new calls.
2566         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2567
2568 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2569
2570         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2571         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2572         (init_empty_tree_cfg): Call it.
2573
2574 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2575
2576         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2577         Update all users.
2578
2579 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2580
2581         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2582         * tree-dump.c (dump_options): New verbose option.
2583         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2584         Add verbose dump.
2585         * tree-pass.h (TDF_VERBOSE): New dump flag.
2586         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2587         (tree-flow.h): Added include.
2588         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2589
2590 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2591
2592         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2593
2594         From Jie Zhang  <jie.zhang@analog.com>
2595         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2596         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2597         mcpu=bf561-none and mcpu=bf561-0.2.
2598         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2599         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2600         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2601         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2602         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2603         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2604         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2605         option.
2606         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2607         (cputype_selected): Remove.
2608         (bfin_handle_option): Don't use cputype_selected.
2609         (override_options): When no mcpu option, enable all workarounds.
2610         Don't use bfin_workarounds.
2611         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2612         processor type.
2613         (DEFAULT_CPU_TYPE): Don't define.
2614
2615 2008-05-16  Richard Guenther  <rguenther@suse.de>
2616
2617         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2618         on deletion of the last stmt.
2619
2620 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2621
2622         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2623         V8HImode for SSE2 and V16QImode for SSE4.1.
2624
2625 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2626
2627         * cgraph.h (compute_inline_parameters): Made public.
2628         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2629         variable_generate_summary, function_write_summary,
2630         variable_write_summary, variable_read_summary.  Added generate_summary,
2631         write_summary, read_summary.
2632         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2633         pass_ipa_inline.function_generate_summary, to
2634         compute_inline_parameters. 
2635         * ipa-inline.c (compute_inline_parameters): Made public and added
2636         node parameter.
2637         (compute_inline_parameters_for_current): New function.
2638         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2639         (inline_generate_summary): Removed parameter and made to loop over
2640         all cgraph nodes.
2641         (pass_ipa_inline): Updated for new IPA_PASS structure.
2642         * passes.c (execute_ipa_summary_passes): Now is called once per
2643         pass rather than once per node*pass.
2644         
2645 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2646
2647         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2648         avr_have_mul_p, avr_asm_only_p): Remove variables.
2649         (avr_override_options): Remove initialization of removed variables.
2650         (avr_file_start):  Convert removed variables to fields of 
2651         'struct base_arch_s *avr_current_arch'. 
2652         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2653         (AVR_HAVE_MUL): (Ditto.).
2654         (AVR_HAVE_MOVW): (Ditto.).
2655         (AVR_HAVE_LPMX): (Ditto.). 
2656         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2657         avr_asm_only_p): Remove declaration.
2658
2659 2008-05-15  Diego Novillo  <dnovillo@google.com>
2660
2661         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2662         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2663
2664 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2665
2666         PR middle-end/36194
2667         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2668         Don't call record_truncated_value from here.
2669         (record_truncated_value): Turn it into a for_each_rtx callback.
2670         (record_truncated_values): New function.
2671         (combine_instructions): Call note_uses with record_truncated_values.
2672         Change name of check_conversion to check_promoted_subreg. 
2673
2674 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2675
2676         * doc/sourcebuild.texi: Document support for torture tests.
2677
2678 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2679
2680         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2681         to alternative 4 of operand 2.
2682
2683 2008-05-15  Richard Guenther  <rguenther@suse.de>
2684
2685         * tree-pass.h (current_pass): Declare.
2686         (get_pass_for_id): Likewise.
2687         * passes.c (passes_by_id, passes_by_id_size): New globals.
2688         (set_pass_for_id): New function.
2689         (get_pass_for_id): Likewise.
2690         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2691         (execute_function_todo): Flush per function statistics.
2692         * toplev.c (compile_file): Init statistics.
2693         (general_init): Do early statistics initialization.
2694         (finalize): Finish statistics.
2695         * statistics.h (statistics_early_init): Declare.
2696         (statistics_init): Likewise.
2697         (statistics_fini): Likewise.
2698         (statistics_fini_pass): Likewise.
2699         (statistics_counter_event): Likewise.
2700         (statistics_histogram_event): Likewise.
2701         * statistics.c: New file.
2702         * Makefile.in (OBJS-common): Add statistics.o.
2703         (statistics.o): Add dependencies.
2704         * doc/invoke.texi (-fdump-statistics): Document.
2705
2706         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2707         (insert): Likewise.
2708         (execute_pre): Use statistics_counter_event.
2709         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2710         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2711
2712 2008-05-15  Diego Novillo  <dnovillo@google.com>
2713
2714         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2715
2716         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2717         * tree-ssa-alias.c (new_type_alias): Remove references to
2718         sub-variables from comment.
2719         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2720
2721 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2722
2723         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2724         attribute to 1 only for insertps alternative.
2725
2726 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2727
2728         * config/bfin/bfin.md (loadbytes): New pattern.
2729         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2730         (bfin_init_builtins): Initialize it.
2731         (bdesc_1arg): Add it.
2732
2733 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2734
2735         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2736         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2737         * testsuite/lib/target-supports.exp: Add
2738         check_effective_target_fortran_integer_16.
2739
2740 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2741
2742         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2743         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2744         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2745         (TARGET_RETURN_IN_MEMORY): Define.
2746
2747 2008-05-15  Richard Guenther  <rguenther@suse.de>
2748
2749         PR middle-end/36244
2750         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2751         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2752         represent unmodifiable vars.
2753
2754 2008-05-15  Richard Guenther  <rguenther@suse.de>
2755
2756         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2757         INDIRECT_REF and TARGET_MEM_REF.
2758         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2759         TARGET_MEM_REF.
2760
2761 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2762             H.J. Lu  <hongjiu.lu@intel.com>
2763
2764         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2765         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2766         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2767         insn alternatives.  Add missing alternatives.
2768         (*vec_concatv2di_rex64_sse4_1): Likewise.
2769         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2770         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2771         Require TARGET_SSE.
2772
2773 2008-05-15  Richard Guenther  <rguenther@suse.de>
2774
2775         PR tree-optimization/36009
2776         PR tree-optimization/36204
2777         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2778         (determine_invariantness_stmt): Record the loop a store is
2779         always executed in.
2780         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2781         dependency.
2782
2783 2008-05-15  Richard Guenther  <rguenther@suse.de>
2784
2785         PR tree-optimization/34330
2786         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2787         through the pointer will alias the SMT.
2788
2789 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2790
2791         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2792
2793 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2794
2795         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2796
2797 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2798             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2799
2800         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2801         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2802         (vashl_optab): New optab for vector/vector shifts.
2803         (vashr_optab): Ditto.
2804         (vlshr_optab): Ditto.
2805         (vrotl_optab): Ditto.
2806         (vrotr_optab): Ditto.
2807         (optab_subtype): New enum for optab_for_tree_code call.
2808         (optab_for_tree_code): Add enum optab_subtype argument.
2809
2810         * optabs.c (optab_for_tree_code): Take an additional argument to
2811         distinguish between a vector shift by a scalar and vector shift by
2812         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2813         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2814         vector shift by a vector.
2815         (expand_widen_pattern_expr): Pass additional argument to
2816         optab_for_tree_code.
2817
2818         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2819         vrotl_optab, vrotr_optab.
2820
2821         * expr.c (expand_expr_real_1): Update calls to
2822         optab_for_tree_code to distinguish between vector shifted by a
2823         scalar and vector shifted by a vector.
2824         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2825         (supportable_narrowing_operation): Ditto.
2826         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2827         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2828         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2829         (vect_create_epilog_for_reduction): Ditto.
2830         (vectorizable_reduction): Ditto.
2831         (vectorizable_operation): Ditto.
2832         (vect_strided_store_supported): Ditto.
2833         (vect_strided_load_supported): Ditto.
2834         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2835         * expmed.c (expand_shift): Ditto.
2836
2837         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2838         scalar type.
2839         (ashr@var{m}3): Ditto.
2840         (vashl@var{m}3): Document new vector/vector shift standard name.
2841         (vashr@var{m}3): Ditto.
2842         (vlshr@var{m}3): Ditto.
2843         (vrotl@var{m}3): Ditto.
2844         (vrotr@var{m}3): Ditto.
2845
2846         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2847         (PPERM_INVERT): Ditto.
2848         (PPERM_REVERSE): Ditto.
2849         (PPERM_REV_INV): Ditto.
2850         (PPERM_ZERO): Ditto.
2851         (PPERM_ONES): Ditto.
2852         (PPERM_SIGN): Ditto.
2853         (PPERM_INV_SIGN): Ditto.
2854         (PPERM_SRC1): Ditto.
2855         (PPERM_SRC2): Ditto.
2856
2857         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2858         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2859         allows a memory operand to be the value being added, and split it
2860         to improve vectorization.
2861         (sse5_pmacsdqh_mem): Ditto.
2862         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2863         (sse5_mulv2div2di3_high): Ditto.
2864         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2865         (vec_pack_trunc_v4si): Ditto.
2866         (vec_pack_trunc_v2di): Ditto.
2867         (sse5_pcmov_<mode>): Remove code that tried to use use
2868         andps/andnps instead of pcmov.
2869         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2870         pmacsdqh instructions.
2871         (vec_widen_smult_lo_v4si): Ditto.
2872
2873         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2874         (PPERM_INVERT): Ditto.
2875         (PPERM_REVERSE): Ditto.
2876         (PPERM_REV_INV): Ditto.
2877         (PPERM_ZERO): Ditto.
2878         (PPERM_ONES): Ditto.
2879         (PPERM_SIGN): Ditto.
2880         (PPERM_INV_SIGN): Ditto.
2881         (PPERM_SRC1): Ditto.
2882         (PPERM_SRC2): Ditto.
2883         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2884         true/false tests.
2885         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2886         comparisons.
2887         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2888         says ignore whether the last reference is a memory operand.
2889
2890 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2891             Paolo Bonzini <bonzini at gnu dot org>
2892
2893         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2894         shift patterns.
2895
2896         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2897         (vlshr<mode>3): Rename from vlshr<mode>3.
2898         (vashr<mode>3): Rename from vashr<mode>3.
2899         (mulv4sf3): Change the names of vector shift patterns.
2900         (mulv4si3): Ditto.
2901         (negv4sf2): Ditt.
2902
2903         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2904         shift insns.
2905
2906         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2907         (SI_SHLHI): Ditto.
2908         (SI_SHL): Ditto.
2909         (SI_SHLI): Ditto.
2910         (SI_ROTH): Ditto.
2911         (SI_ROTHI): Ditto.
2912         (SI_ROT): Ditto.
2913         (SI_ROTI): Ditto.
2914         (SPU_RL_0): Ditto.
2915         (SPU_RL_1): Ditto.
2916         (SPU_RL_2): Ditto.
2917         (SPU_RL_3): Ditto.
2918         (SPU_RL_4): Ditto.
2919         (SPU_RL_5): Ditto.
2920         (SPU_RL_6): Ditto.
2921         (SPU_RL_7): Ditto.
2922         (SPU_SL_0): Ditto.
2923         (SPU_SL_1): Ditto.
2924         (SPU_SL_2): Ditto.
2925         (SPU_SL_3): Ditto.
2926         (SPU_SL_4): Ditto.
2927         (SPU_SL_5): Ditto.
2928         (SPU_SL_6): Ditto.
2929         (SPU_SL_7): Ditto.
2930
2931         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2932         (floatunssidf2_internal): Change vector/vector shift names.
2933         (floatunsdidf2_internal): Ditto.
2934         (mulv8hi3): Ditto.
2935         (ashrdi3): Ditto.
2936         (ashrti3): Ditto.
2937         (cgt_df): Ditto.
2938         (cgt_v2df): Ditto.
2939         (dftsv): Ditto.
2940         (vashl<mode>3): Rename from ashl<mode>3.
2941         (vashr<mode>3): Rename from ashr<mode>3.
2942         (vlshr<mode>3): Rename from lshr<mode>3.
2943         (vrotl<mode>3): Rename from rotl<mode>3.
2944
2945 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2946
2947         PR target/36224
2948         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2949         multiply gives the wrong value when doing widening multiplies.
2950         (vec_widen_smult_lo_v4si): Ditto.
2951
2952 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2953
2954         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2955         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2956         emit_library_call_value. 
2957         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2958         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2959         * calls.c (initialize_argument_information, precompute_arguments, 
2960         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2961         (precompute_arguments): Removed flags parameter.
2962         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2963         
2964 2008-05-14  Richard Guenther  <rguenther@suse.de>
2965
2966         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2967         Make sure to register the store if the use is a PHI_NODE.
2968
2969 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2970
2971         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2972         memory if the component is to be referenced in BLKmode according
2973         to get_inner_reference.
2974
2975 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2976
2977         * calls.c (emit_library_call_value_1): Restore code clearing
2978         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2979
2980 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2981             Nicolas Roche  <roche@adacore.com>
2982
2983         * configure.ac: Add support for a "gcc_subdir" variable in
2984         config-lang.in, to denote a subdirectory where the language/GCC
2985         integration files are to be found.
2986         * configure: Regenerate.
2987
2988 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2989
2990         PR tree-optimization/36098
2991         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2992         value for the first load in the group in case of a gap.
2993         (vect_build_slp_tree): Check that there are no gaps in loads.
2994
2995 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2996
2997         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2998         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2999         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3000         emit_insn and remove unneeded code to construct extra args.
3001         (emit_no_conflict_block): Removed.
3002         * optabls.h: (emit_no_conflict_block): Removed.
3003         * cse.c (cse_extended_basic_block): Remove search for
3004         REG_NO_CONFLICT note.
3005         * global.c: Removed incorrect comment added in revision 117.
3006         * expr.c (convert_move): Change call to emit_no_conflict_block to
3007         emit_insn.
3008         * recog.c: Change comments so that they do not mention
3009         REG_NO_CONFLICT.
3010         * local_alloc.c (combine_regs): Removed last parameter.
3011         (no_conflict_p): Removed.
3012         (block_alloc): Removed note, no_conflict_combined_regno and set
3013         local vars. Removed all code to process REG_NO_CONFLICT blocks.
3014         (combine_regs): Removed already_dead and code to look for
3015         REG_NO_CONFLICT notes.
3016         * lower_subreg (remove_retval_note): Removed code to look for
3017         REG_NO_CONFLICT block.
3018         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3019         (resolve_clobber): Remove code to process libcalls that have
3020         REG_NO_CONFLICT notes.
3021         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3022         case.
3023         * combine.c (can_combine_p, distribute_notes):  Removed
3024         REG_NO_CONFLICT case.
3025         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3026         to emit_insns.
3027         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3028         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
3029         Ditto.
3030         * reg-notes.def (NO_CONFLICT): Removed.
3031
3032 2008-05-14  David S. Miller  <davem@davemloft.net>
3033
3034         * config/sparc/sparc.c (sparc_profile_hook): If
3035         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
3036         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3037         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3038
3039 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3040
3041         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3042
3043 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
3044
3045         PR target/36222
3046         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3047         and op1 expansion before vector concat to have less live pseudos.
3048
3049 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
3050
3051         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3052         ix86_expand_vector_set if supported.
3053
3054 2008-05-13  Diego Novillo  <dnovillo@google.com>
3055             Kenneth Zadeck  <zadeck@naturalbridge.com>
3056
3057         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3058
3059         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3060         phinodes_print_statistics, init_ssanames, fini_ssanames,
3061         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3062         release_ssa_name, release_defs, replace_ssa_name_symbol,
3063         ssanames_print_statistics): Move ...
3064         * tree-flow.h: ... here.
3065         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3066         Use FN instead of cfun.
3067         (make_ssa_name_fn): Rename from make_ssa_name.
3068         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
3069         * tree-flow-inline.h (make_ssa_name): Move from
3070         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
3071         * omp-low.c (expand_omp_parallel):
3072         * tree-flow-inline.h (redirect_edge_var_map_result):
3073         * tree-ssa.c (init_tree_ssa): Add argument FN.
3074         Use it instead of cfun.  Update all users.
3075
3076 2008-05-13  Tom Tromey  <tromey@redhat.com>
3077
3078         PR preprocessor/22168:
3079         * doc/cpp.texi (Top): Update menu.
3080         (Alternatives to Wrapper #ifndef): New node.
3081         (Other Directives): Document deprecation.
3082         (Obsolete Features): Remove menu.
3083         (Assertions): Merge node into Obsolete Features.
3084         (Obsolete once-only headers): Move earlier; rename to Alternatives
3085         to Wrapper #ifndef.
3086         * doc/cppopts.texi: Update.
3087         * c.opt (Wdeprecated): Enable for C and ObjC.
3088         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3089         (C++ Dialect Options): Move -Wno-deprecated from here to...
3090         (Warning Options): ... here.
3091
3092 2008-05-13  Richard Guenther  <rguenther@suse.de>
3093
3094         PR middle-end/36227
3095         * fold-const.c (fold_sign_changed_comparison): Do not allow
3096         changes in pointer-ness.
3097
3098 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3099
3100         PR target/24713
3101         * config/sh/sh.c (sh_expand_prologue): Don't clear
3102         RTX_FRAME_RELATED_P for push insns.
3103
3104 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3105
3106         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3107
3108 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3109
3110         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3111         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3112         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3113
3114 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3115
3116         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3117         (*vec_concatv4sf_sse): This.
3118         (*sse2_concatv2si): Renamed to ...
3119         (*vec_concatv2si_sse2): This.
3120         (*sse1_concatv2si): Renamed to ...
3121         (*vec_concatv2si_sse): This.
3122         (*vec_concatv2di_rex): Renamed to ...
3123         (*vec_concatv2di_rex64): This.
3124         (*vec_concatv2si_sse4_1): New.
3125         (*vec_concatv2di_rex64_sse4_1): Likewise.
3126
3127 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3128
3129         PR rtl-optimization/36111
3130         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3131         that was created for swappable operands.
3132
3133 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3134
3135         PR ada/36001
3136         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3137         * configure.ac: Add call to ACX_PROG_GNAT.
3138
3139 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3140
3141         * optc-gen.awk: Fix comment typo.
3142
3143 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3144
3145         * pretty-print.c (pp_integer_with_precision): Use
3146         HOST_LONG_LONG_FORMAT.
3147
3148 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3149
3150         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3151                 
3152 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3153
3154         * config/i386/i386.c (bdesc_ptest): Removed.
3155         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3156         (bdesc_args): Add __builtin_ia32_ptestz128,
3157         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3158         (ix86_init_mmx_sse_builtins): Updated.
3159         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3160         (ix86_expand_builtin): Updated.
3161
3162 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3163
3164         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3165         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3166
3167 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3168
3169         * value-prof.c (interesting_stringop_to_profile): Do not
3170         return early for BUILT_IN_MEMPCPY.
3171
3172 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3173
3174         * calls.c (expand_call): Don't use callgraph to increase
3175         preferred_stack_boundary.
3176
3177         * cgraph.h (cgraph_rtl_info): Use unsigned on
3178         preferred_incoming_stack_boundary.
3179
3180         * final.c (rest_of_clean_state): Use unsigned on
3181         preferred_stack_boundary.
3182
3183 2008-05-09  Tom Tromey  <tromey@redhat.com>
3184
3185         PR preprocessor/22231:
3186         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3187         proceeding.
3188
3189 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
3190
3191         PR tree-optimization/36129
3192         * tree-ssa-ccp.c: Include value-prof.h.
3193         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3194         built-in function was folded to a constant.
3195         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
3196
3197 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
3198             Sebastian Pop  <sebastian.pop@amd.com>
3199
3200         * tree-scalar-evolution.c: Document instantiate_scev.
3201         (instantiate_parameters_1): Renamed instantiate_scev_1.
3202         Don't use the same loop for instantiation_loop and evolution_loop.
3203         (instantiate_scev): New.
3204         (instantiate_parameters): Moved...
3205         (resolve_mixers): Update call to instantiate_scev_1 to pass the
3206         same loop twice.  Maintains the semantics for this function.
3207         * tree-scalar-evolution.h (instantiate_scev): Declare.
3208         (instantiate_parameters): ...here.  Now static inline.
3209         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3210         instead of resolve_mixers.
3211
3212 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3213
3214         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3215
3216 2008-05-09  Tomas Bily  <tbily@suse.cz>
3217
3218         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3219         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3220         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3221         * c-common.c (c_common_truthvalue_conversion): Likewise.
3222         * tree-object-size.c (compute_object_offset): Likewise.
3223         * tree-inline.c (estimate_num_insns_1): Likewise.
3224         * varasm.c (const_hash_1, compare_constant, copy_constant)
3225         (compute_reloc_for_constant, output_addressed_constants)
3226         (initializer_constant_valid_p): Likewise.
3227         * c-omp.c (check_omp_for_incr_expr): Likewise.
3228         * gimplify.c (gimplify_expr): Likewise.
3229         * c-typeck.c (c_finish_return): Likewise.
3230         * tree-vectorizer.c (supportable_widening_operation)
3231         (supportable_narrowing_operation): Likewise.
3232         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3233         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3234         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3235         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3236         (descr_info_loc): Likewise.
3237         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3238         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3239         (fold_unary): Likewise.
3240         * builtins.c (get_pointer_alignment): Likewise.
3241         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3242         (instantiate_parameters_1): Likewise.
3243         * tree.c (expr_align, stabilize_reference): Likewise.
3244         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3245         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3246         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3247         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3248         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3249         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3250         Likewise.
3251         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3252         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3253         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3254         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3255         (forward_propagate_comparison)
3256         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3257         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3258         * emit-rtl.c (component_ref_for_mem_expr)
3259         (set_mem_attributes_minus_bitpos): Likewise.
3260         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3261         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3262         Likewise.
3263         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3264         (build_function_call, pointer_diff, build_compound_expr)
3265         (c_finish_return): Likewise.
3266         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
3267         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3268         Likewise.
3269         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3270         * expr.c (is_aligning_offset): Likewise.
3271         * tree-ssa-alias.c (is_escape_site): Likewise.
3272         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3273         (check_all_va_list_escapes): Likewise.
3274         * tree-ssa-loop-ivopts.c (determine_base_object)
3275         (determine_common_wider_type): Likewise.
3276         * dojump.c (do_jump): Likewise.
3277         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3278         * tree-gimple.c (is_gimple_cast): Likewise.
3279         * fold-const.c (decode_field_reference, )
3280         (fold_sign_changed_comparison, fold_unary, fold_comparison)
3281         (fold_binary): Likewise.
3282         * tree-ssa-alias-warnings.c (find_alias_site_helper)
3283         (already_warned_in_frontend_p): Likewise.
3284         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3285         * tree.c (really_constant_p, get_unwidened): Likewise.
3286         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3287         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
3288         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3289         Likewise.
3290         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3291         CONVERT_EXPR_P.
3292         (CONVERT_EXPR_P): Define.
3293         (CASE_CONVERT): Define.
3294         
3295 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3296
3297         PR middle-end/36117
3298         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3299         (delete_unmarked_insns): When deleting a call, call
3300         delete_unreachable_blocks.
3301         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3302         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3303
3304 2008-05-08  Richard Guenther  <rguenther@suse.de>
3305
3306         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3307         (-ftree-salias): Likewise.
3308         (salias-max-implicit-fields): Remove param documentation.
3309         (salias-max-array-elements): Likewise.
3310         * tree-pass.h (pass_create_structure_vars): Remove.
3311         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3312         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3313         * tree-ssa-alias.c (create_structure_vars): Remove.
3314         (gate_structure_vars): Likewise.
3315         (pass_create_structure_vars): Likewise.
3316         (gate_build_alias): Likewise.
3317         (pass_build_alias): Adjust to run always and dump the function.
3318         * common.opt (ftree-salias): Hide.
3319         * passes.c (init_optimization_passes): Remove
3320         pass_create_structure_vars, adjust comment.
3321         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3322         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3323         * opts.c (decode_options): Do not set flag_tree_salias.
3324         (common_handle_option): Add OPT_ftree_salias to the backward
3325         compatibility section.
3326
3327 2008-05-08  Richard Guenther  <rguenther@suse.de>
3328
3329         * tree-flow-inline.h (var_can_have_subvars): Move ...
3330         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3331         * tree-flow.h (var_can_have_subvars): Remove.
3332         (push_fields_onto_fieldstack): Remove.
3333         (sort_fieldstack): Likewise.
3334         (struct fieldoff): Move ...
3335         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
3336         alias_set and base_for_components fields.
3337         (sort_fieldstack): Make static.
3338         (push_fields_onto_fieldstack): Likewise.  Remove code that
3339         handles anything but RECORD_TYPEs.  Remove alias_set and
3340         base_for_components handling.
3341         (create_variable_info_for): Adjust.
3342
3343 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
3344
3345         * common.opt (Wframe-larger-than=): Shorten the help message
3346         to one line.
3347         * doc/invoke.texi (Wframe-larger-than=): Add more description.
3348
3349 2008-05-08  Rafael Espindola  <espindola@google.com>
3350
3351         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3352         trap.
3353         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3354         trap and that both operands are gimple values.
3355         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3356         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3357         is a fp operation.
3358
3359 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3360
3361         * read-rtl.c (join_c_conditions): Return the first string if the
3362         two strings are equal.
3363
3364 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3365
3366         * gensupport.h (pred_data): Add a "num_codes" field.
3367         (add_predicate_code): Declare.
3368         * gensupport.c (add_predicate_code): New function.
3369         (std_pred_table): Add an "allows_const_p" field.
3370         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3371         Remove the (incomplete) list of such codes from the codes field.
3372         (init_predicate_table): Use add_predicate_code.  Add all
3373         RTX_CONST_OBJs if allows_const_p is true.
3374         * genrecog.c (process_define_predicate): Use add_predicate_code.
3375
3376 2008-05-08  David Daney  <ddaney@avtrex.com>
3377             Richard Sandiford  <rsandifo@nildram.co.uk>
3378         
3379         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3380         special case of constant zero operands.
3381         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3382         old and new values.  Special case constant zero values.
3383         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3384         fails.
3385         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3386         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3387
3388 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
3389
3390         PR target/36090
3391         * simplify-rtx.c (simplify_plus_minus): Create CONST of
3392         similar RTX_CONST_OBJ before CONST_INT.
3393
3394 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
3395
3396         * stmt.c (expand_stack_restore): Change sa mode if needed.
3397
3398 2008-05-08  Richard Guenther  <rguenther@suse.de>
3399
3400         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3401         return type to bool.
3402         (ix86_sol10_return_in_memory): Likewise.
3403         (ix86_i386elf_return_in_memory): Likewise.
3404         (ix86_i386interix_return_in_memory): Likewise.
3405         * config/i386/i386.c (ix86_return_in_memory): Likewise.
3406         (ix86_sol10_return_in_memory): Likewise.
3407         (ix86_i386elf_return_in_memory): Likewise.
3408         (ix86_i386interix_return_in_memory): Likewise.
3409
3410 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3411
3412         PR bootstrap/36180
3413         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3414         fndecl argument.
3415         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3416         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3417         declared in front.
3418
3419 2008-05-08  Richard Guenther  <rguenther@suse.de>
3420
3421         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3422         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3423         (DR_SUBVARS): Remove.
3424         * tree-dfa.c (dump_subvars_for): Remove.
3425         (debug_subvars_for): Likewise.
3426         (dump_variable): Do not dump subvars.
3427         (remove_referenced_var): Do not remove subvars.
3428         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3429         (lookup_subvars_for_var): Remove.
3430         (get_subvars_for_var): Likewise.
3431         (get_subvars_at): Likewise.
3432         (get_first_overlapping_subvar): Likewise.
3433         (overlap_subvar): Likewise.
3434         * tree-flow.h (subvar_t): Remove.
3435         (struct var_ann_d): Remove subvars field.
3436         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3437         argument.  Remove special handling of SFTs.
3438         (compute_tag_properties): Likewise.
3439         (set_initial_properties): Likewise.
3440         (compute_call_clobbered): Likewise.
3441         (count_mem_refs): Likewise.
3442         (compute_memory_partitions): Likewise.
3443         (compute_flow_insensitive_aliasing): Likewise.
3444         (setup_pointers_and_addressables): Likewise.
3445         (new_type_alias): Likewise.
3446         (struct used_part): Remove.
3447         (used_portions): Likewise.
3448         (struct used_part_map): Likewise.
3449         (used_part_map_eq): Likewise.
3450         (used_part_map_hash): Likewise.
3451         (free_used_part_map): Likewise.
3452         (up_lookup): Likewise.
3453         (up_insert): Likewise.
3454         (get_or_create_used_part_for): Likewise.
3455         (create_sft): Likewise.
3456         (create_overlap_variables_for): Likewise.
3457         (find_used_portions): Likewise.
3458         (create_structure_vars): Likewise.
3459         * tree.def (STRUCT_FIELD_TAG): Remove.
3460         * tree.h (MTAG_P): Adjust.
3461         (struct tree_memory_tag): Remove base_for_components and
3462         unpartitionable flags.
3463         (struct tree_struct_field_tag): Remove.
3464         (SFT_PARENT_VAR): Likewise.
3465         (SFT_OFFSET): Likewise.
3466         (SFT_SIZE): Likewise.
3467         (SFT_NONADDRESSABLE_P): Likewise.
3468         (SFT_ALIAS_SET): Likewise.
3469         (SFT_UNPARTITIONABLE_P): Likewise.
3470         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3471         (union tree_node): Remove sft field.
3472         * alias.c (get_alias_set): Remove special handling of SFTs.
3473         * print-tree.c (print_node): Remove handling of SFTs.
3474         * tree-dump.c (dequeue_and_dump): Likewise.
3475         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3476         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3477         * tree-predcom.c (set_alias_info): Do not set subvars.
3478         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3479         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3480         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3481         (add_vars_for_offset): Remove.
3482         (add_virtual_operand): Remove special handling of SFTs.
3483         (add_call_clobber_ops): Likewise.
3484         (add_call_read_ops): Likewise.
3485         (get_asm_expr_operands): Likewise.
3486         (get_modify_stmt_operands): Likewise.
3487         (get_expr_operands): Likewise.
3488         (add_to_addressable_set): Likewise.
3489         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3490         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3491         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3492         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3493         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3494         (tree_node_structure): Likewise.
3495         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3496         handling of SFTs.
3497         (find_what_p_points_to): Likewise.
3498
3499 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3500
3501         * config/spu/spu.md: Fixed subti3 pattern.
3502
3503 2008-05-08  Richard Guenther  <rguenther@suse.de>
3504
3505         PR middle-end/36154
3506         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3507         sure to create a representative for trailing arrays for PTA.
3508
3509 2008-05-08  Richard Guenther  <rguenther@suse.de>
3510
3511         PR middle-end/36172
3512         * fold-const.c (operand_equal_p): Two objects which types
3513         differ in pointerness are not equal.
3514
3515 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3516
3517         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3518         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3519         (emit_library_call_value_1): Add new variable fndecl initialized by
3520         NULL_TREE. It should be the decl type of orgfun, but this information
3521         seems not to be available here, so it uses the default calling abi.
3522         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3523         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3524         by TARGET_RETURN_IN_MEMORY.
3525         * config/i386/i386-interix.h: Likewise.
3526         * config/i386/i386.h: Likewise.
3527         * config/i386/i386elf.h: Likewise.
3528         * config/i386/ptx4-i.h: Likewise.
3529         * config/i386/sol2-10.h: Likewise.
3530         * config/i386/sysv4.h: Likewise.
3531         * config/i386/vx-common.h: Likewise.
3532         * config/cris/cris.h: Removed #if 0 clause.
3533         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3534         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3535         argument.
3536         (ix86_sol10_return_in_memory): Likewise.
3537         (ix86_i386elf_return_in_memory): New.
3538         (ix86_i386interix_return_in_memory): New.
3539         * config/mt/mt-protos.h (mt_return_in_memory): New.
3540         * config/mt/mt.c: Likewise.
3541         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3542         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3543         * config/bfin/bfin.h: Likewise.
3544         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3545         argument.
3546         * config/bfin/bfin.c: Likewise.
3547         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3548         * config/alpha/unicosmk.h: Likewise.
3549         * config/i386/cygming.h: Likewise.
3550         * config/iq2000/iq2000.h: Likewise.
3551         * config/mips/mips.h: Likewise.
3552         * config/mn10300/mn10300.h: Likewise.
3553         * config/rs6000/rs6000.h: Likewise.
3554         * config/score/score.h: Likewise.
3555         * config/spu/spu.h: Likewise.
3556         * config/v850/v850.h: Likewise.
3557         * defaults.h: Likewise.
3558         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3559         * expr.c (emit_block_move): Adjust use of
3560         OUTGOING_REG_PARM_STACK_SPACE.
3561         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3562         OUTGOING_REG_PARM_STACK_SPACE.
3563         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3564
3565 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3566
3567         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3568         on OMP_RETURN for OMP_FOR.
3569
3570         PR debug/35896
3571         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3572         (fortran_common): New function.
3573         (gen_variable_die): Call fortran_common instead of common_check,
3574         adjust for it returning tree instead of rtx.  Formatting.
3575
3576 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3577
3578         PR rtl/7335
3579         PR rtl/33826
3580         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3581         * c-decl.c (merge_decls): Ditto.
3582         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3583         to RTL_CONST_OR_PURE_CALL_P.
3584         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3585         Initialized DECL_LOOPING_CONST_PURE.
3586         (process_call_operands): Set tree_side_effects properly.
3587         * tree.h (TREE_READONLY_DECL_P): Removed.
3588         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3589         (DECL_LOOPING_OR_CONST_P): New macro.
3590         (struct tree_function_decl): Added looping_const_or_pure_p.
3591         (ECF_*) Renumbered.
3592         (ECF_LOOPING_OR_CONST_P): New macro.
3593         * rtlanal.c (pure_const_p): Removed.
3594         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3595         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3596         to RTL_CONST_CALL_P.
3597         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3598         (check_decl, check_tree, check_call, scan_function): Initialize
3599         looping.
3600         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3601         (static_execute): Set looping true for recursive functions.
3602         Undo setting state to IPA_NEITHER for recursive functions.
3603         * cse.c (cse_insn): 
3604         * ifcvt.c (noce_can_store_speculate_p): Changed
3605         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3606         RTL_CONST_OR_PURE_CALL_P.
3607         * dse.c (scan_insn): Ditto.
3608         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3609         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3610         RTL_CONST_OR_PURE_CALL_P.
3611         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3612         pure_call_p to RTL_CONST_CALL_P.
3613         * gimplify.c (gimplify_call_expr): Clear side effects for
3614         non-looping pure and constant calls.
3615         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3616         (flags_from_decl_or_type): Set ecf flags from decl flags.
3617         (initialize_argument_information): Turn off
3618         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3619         Change const to pure if callee_copies is true rather than just
3620         turning off const.
3621         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3622         way of marking pure calls.
3623         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3624         Remove hack that was supposed to fix pr7335 and remove old
3625         way of marking pure calls.
3626         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3627         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3628         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3629         RTL_CONST_OR_PURE_CALL_P.
3630         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3631         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3632         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3633         * sched-deps.c (schedule_analyze): Ditto.
3634         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3635         return_val field of calls to represent pure and const function info.
3636         (CONST_OR_PURE_CALL_P): Deleted macro.
3637         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3638         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3639         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3640         TREE_READONLY.
3641         * tree-optimize.c (execute_fixup_cfg): Added test for
3642         ECF_LOOPING_CONST_OR_PURE.
3643         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3644         DECL_PURE_P.
3645         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3646         effects for looping pure or const calls.
3647         (verify_gimple_expr): Added verification code. 
3648         * config/alpha/alpha.c (alpha_legitimize_address,
3649         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3650         RTL_CONST_CALL_P.
3651         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3652         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3653         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3654         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3655         RTL_CONST_OR_PURE_CALL_P.
3656         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3657         and const calls to be deleted.
3658
3659 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3660
3661         PR target/35714
3662         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3663         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3664         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3665         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3666         to handle nonimmediate operands.
3667         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3668         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3669         to handle nonimmediate operands.
3670         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3671         (mmx_pmulhrwv4hi3): New expander.  Use
3672         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3673         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3674         (sse2_umulv1siv1di3): New expander.  Use
3675         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3676         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3677         (mmx_eq<mode>3): New expander.  Use
3678         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3679         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3680         (mmx_uavgv8qi3): New expander.  Use
3681         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3682         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3683         (mmx_uavgv4hi3): New expander.  Use
3684         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3685
3686         * config/i386/sse.md
3687         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3688         to handle nonimmediate operands.
3689         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3690         to handle nonimmediate operands.
3691         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3692         to handle nonimmediate operands.
3693         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3694         to handle nonimmediate operands.
3695         (sse2_unpckhpd_exp): New expander.  Use
3696         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3697         (sse2_unpcklpd_exp): New expander.  Use
3698         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3699         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3700         to handle nonimmediate operands.
3701         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3702         to handle nonimmediate operands.
3703         (*sse2_<plusminus_insn><mode>3): Rename from
3704         sse2_<plusminus_insn><mode>3 insn pattern.
3705         (sse2_<plusminus_insn><mode>3): New expander.  Use
3706         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3707         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3708         (sse2_umulv2siv2di3): New expander.  Use
3709         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3710         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3711         (sse4_1_mulv2siv2di3): New expander.  Use
3712         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3713         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3714         (sse2_pmaddwd): New expander.  Use
3715         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3716         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3717         (sse2_eq<mode>3): New expander.  Use
3718         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3719         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3720         (sse4_1_eqv2di3): New expander.  Use
3721         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3722         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3723         (sse2_uavgv16qi3): New expander.  Use
3724         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3725         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3726         (sse2_uavgv16qi3): New expander.  Use
3727         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3728         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3729         (sse2_uavgv8hi3): New expander.  Use
3730         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3731         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3732         (ssse3_pmulhrswv8hi3): New expander.  Use
3733         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3734         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3735         (ssse3_pmulhrswv4hi3): New expander.  Use
3736         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3737
3738         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3739         (<sse>_vmmul<mode>3): Ditto.
3740         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3741         (divv2df3): Ditto.
3742         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3743         (ssse3_pmaddubsw): Ditto.
3744
3745         * config/i386/i386.c (struct_builtin_description)
3746         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3747         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3748         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3749         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3750         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3751         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3752         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3753         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3754         (ix86_fixup_binary_operands): Assert that src1
3755         and src2 must have the same mode when swapped.
3756         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3757         and ix86_binary_operator_ok.  Do not force operands in registers
3758         when optimizing.
3759
3760 2008-05-07  Jan Hubicka  <jh@suse.cz>
3761
3762         * cgraph.c (dump_cgraph_node): Update.
3763         * cgraph.h (cgraph_local_info): Break out inline summary.
3764         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3765         hook.
3766         * ipa-inline (inline_summary): New accestor function.
3767         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3768         cgraph_decide_inlining, compute_inline_parameters): Update.
3769         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3770
3771 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3772
3773         Cleanup ColdFire scheduling support and add V4 pipeline model.
3774
3775         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3776         (define_attr cpu): Add cfv4 value.
3777         (define_attr type, define_attr type1): Merge into a single 'type'
3778         attribute.  Update all uses.
3779         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3780         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3781         Update all uses.
3782         (define_attr opx_mem, define_attr opy_mem): Remove.
3783         (define_attr op_mem): Clean up, update comment.
3784         (define_attr size): Use specific values instead of general int.
3785         (define_attr guess, define_attr split): Remove.  Update all uses.
3786         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3787         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3788         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3789         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3790         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3791         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3792         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3793         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3794         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3795         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3796         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3797         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3798         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3799         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3800         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3801         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3802         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3803         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3804         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3805         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3806         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3807         Update or set attributes.
3808         (stack_tie): New fake instruction.
3809
3810         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3811         (m68k_sched_attr_size): Update declaration.
3812         (m68k_sched_attr_type2): Remove.
3813         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3814         Declare new bypass predicates.
3815
3816         * config/m68k/m68k.c (m68k_sched_issue_rate,
3817         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3818         implementations.
3819         (TARGET_SCHED_ISSUE_RATE,
3820         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3821         (override_options): Handle scheduling for ColdFire V4 core.
3822         (m68k_expand_prologue): Emit stack_tie.
3823         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3824         'OP_TYPE_FPN'.  Update all uses.
3825         (sched_guess_p): Remove.
3826         (sched_address_type): Handle symbolic addresses.
3827         (sched_get_operand): New static function.
3828         (sched_operand_type): Merge into sched_attr_op_type.
3829         (sched_attr_op_type): Handle FP registers, handle quick constants,
3830         update.
3831         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3832         (m68k_sched_attr_size): Update.  Move logic to ...
3833         (sched_get_attr_size_int): New static function.
3834         (sched_get_opxy_mem_type): New static function.
3835         (m68k_sched_attr_op_mem): Update.
3836         (m68k_sched_attr_type2): Remove.
3837         (sched_cfv4_bypass_data): New static variable.
3838         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3839         (m68k_sched_issue_rate): Implement scheduler hook.
3840         (struct _sched_ib: enabled_p): New field.
3841         (m68k_sched_variable_issue): Update.  Handle V4.
3842         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3843         sched_dump_class_func_t, sched_dump_split_class,
3844         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3845         sched_dump_dfa_class, m68k_sched_dump): Remove.
3846         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3847         hook.
3848         (m68k_sched_init_global): Remove statisctics dumping, introduce
3849         sanity check that all instructions have pipeline reservations.  Handle
3850         ColdFire V4 core.
3851         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3852         Handle ColdFire V4 core.
3853         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3854         New static functions.
3855         (m68k_sched_address_bypass_p): New bypass predicate.
3856         (sched_get_indexed_address_scale): New static function.
3857         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3858
3859         * cf.md: Update comments.
3860         (define_attr type2): Remove.  Use 'type' attribute instead.
3861         Update all uses.
3862         (cf_ib): Rename to cfv123_ib.  Update all uses.
3863         (cf_oep): Rename to cfv123_oep.  Update all uses.
3864         (cf_chr): Rename to cfv123_chr.  Update all uses.
3865         (cf_mem): Rename to cfv123_mem.  Update all uses.
3866         (cf_mac): Move to more appropriate place.
3867         (cfv123_guess): New automaton and cpu_unit.
3868         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3869         Update uses of 'size' attribute.  Handle before reload scheduling.
3870         (cfv123_guess): New dummy reservation for unhandled instructions.
3871         (cfv4_*): Pipeline description of ColdFire V4 core.
3872         (ignore): New reservation to handle 'ignore' type.
3873
3874 2008-05-07  Ian Lance Taylor  <iant@google.com>
3875
3876         PR middle-end/36013
3877         * gimplify.c (find_single_pointer_decl_1): Don't look through
3878         indirections.
3879         (find_single_pointer_decl): Adjust comments.
3880
3881 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3882
3883         PR middle-end/36137
3884         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3885         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3886
3887         PR middle-end/36106
3888         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3889         integral type rather than floating point, then VIEW_CONVERT_EXPR
3890         to the floating point type.
3891
3892 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3893
3894         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3895         TFmode op0 to register.
3896
3897 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3898
3899         * c-decl.c (grokdeclarator): Comment typo.
3900
3901 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3902
3903         * tree-flow.h: Remove prototype for computed_goto_p.
3904         * tree-cfg.c (computed_goto_p): Make static.
3905
3906 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3907
3908         PR target/35657
3909         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3910         (contains_aligned_value_p): This.  Handle _Decimal128.
3911         (ix86_function_arg_boundary): Only align _Decimal128 to its
3912         natural boundary and handle it properly.
3913
3914 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3915
3916         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3917         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3918         (ipcp_method_set_orig_node): Removed.
3919         (ipcp_cval_get_cvalue_type): Removed.
3920         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3921         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3922         (ipcp_cval_set_cvalue_type): Removed.
3923         (ipcp_cval_get_cvalue): Removed.
3924         (ipcp_cval_set_cvalue): Removed.
3925         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3926         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3927         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3928         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3929         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3930         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3931         (ipcp_get_ith_lattice): Changed parameters.
3932         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3933         (ipcp_lattice_from_jfunc): Changed parameters.
3934         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3935         (ipcp_method_cval_print): Added temporary variable info.
3936         (ipcp_redirect): Removed already unused local variable caller.
3937         (ipcp_redirect): New temporary variable orig_callee_info
3938         (ipcp_redirect): Removed newly unused local variable callee.
3939         (ipcp_redirect): Removed (a bit confusing) local variable type.
3940         (ipcp_insert_stage): Added local variable info.
3941         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3942         renamed too
3943         (ipcp_formal_create): Removed.
3944         (ipcp_method_cval_set): Removed.
3945         (ipcp_propagate_stage): Renamed lattice variables.
3946         (ipcp_method_cval_set_cvalue_type): Removed.
3947         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3948         (ipcp_print_all_lattices): Changed printed strings to refer to 
3949         lattices rather than cvals.
3950         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3951         (ipcp_propagate_const): Changed formal parameters.
3952         (build_const_val): Changed formal parameters.
3953         (ipcp_insert_stage): Removed useless variable cvalue
3954         (build_const_val): Changed formal parameters.
3955         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3956         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3957         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3958         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3959         (ipcp_print_func_profile_counts): Changed string from "method" to 
3960         "function"
3961         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3962         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3963         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3964         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3965         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3966         (ipcp_lat_is_const): Changed parameters and made inline.
3967         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3968         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3969         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3970         the predicate condition directly
3971         (ipcp_propagate_stage): Added local variable args. Removed local
3972         variable callee.  (Both are mere code simplifications.)
3973         (ipcp_method_dont_insert_const): Renamed to
3974         ipcp_node_not_modifiable_p.
3975         (ipcp_node_not_modifiable_p): Made inline.
3976         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3977         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3978         (ipcp_print_all_lattices): Removed variable cvalue
3979         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3980         Updated comments.
3981
3982 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3983
3984         * tree-sra.c (try_instantiate_multiple_fields): Early return
3985         if field has POINTER_TYPE.
3986
3987 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3988
3989         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3990         by using 'q' specifier for instruction.
3991         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3992
3993 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3994
3995         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3996         Change mode of zero_extract from QImode to HImode.
3997         (sign bit tests peepholes): (Ditto.).
3998
3999 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
4000
4001         * config/i386/mmx.md: Remove double backslashes from asm templates.
4002         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
4003         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4004         to handle nonimmediate operands.
4005         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
4006         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4007         to handle nonimmediate operands.
4008         (*mmx_<code>v2sf3_finite): New insn pattern.
4009         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
4010         (mmx_<code>v2sf3): New expander.  Use
4011         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4012         (mmx_<plusminus_insn><mode>3): New expander.  Use
4013         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4014         (*mmx_<plusminus_insn><mode>3): New insn pattern.
4015         (mmx_add<mode>3): Removed.
4016         (mmx_ssadd<mode>3): Ditto.
4017         (mmx_usadd<mode>3): Ditto.
4018         (mmx_sub<mode>3): Ditto.
4019         (mmx_sssub<mode>3): Ditto.
4020         (mmx_ussub<mode>3): Ditto.
4021         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
4022         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
4023         to handle nonimmediate operands.
4024         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
4025         insn pattern.
4026         (mmx_smulv4hi3_highpart): New expander.  Use
4027         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4028         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
4029         insn pattern.
4030         (mmx_umulv4hi3_highpart): New expander.  Use
4031         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4032         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
4033         (mmx_<code>v4hi3): New expander.  Use
4034         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4035         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
4036         (mmx_<code>v8qi3): New expander.  Use
4037         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4038         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
4039         (mmx_<code><mode>3): New expander.  Use
4040         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4041
4042 2008-05-05  Jan Hubicka  <jh@suse.cz>
4043
4044         PR tree-optimization/36118
4045         * passes.c (pass_init_dump_file): Fix dump header.
4046
4047 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4048
4049         PR middle-end/36141
4050         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
4051         VCE for function decls.
4052
4053 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4054
4055         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
4056
4057 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4058
4059         * config/i386/i386.md (sat_plusminus): New.
4060         (plusminus_insn): Likewise.
4061         (plusminus_mnemonic): Likewise.
4062         (addsub): Removed.
4063         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
4064         (*<addsub><mode>3_cc_overflow): Renamed to ...
4065         (*<plusminus_insn><mode>3_cc_overflow): This.
4066         (*<addsub>si3_zext_cc_overflow): Renamed to ...
4067         (*<plusminus_insn>si3_zext_cc_overflow): This.
4068
4069         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
4070         (<plusminus_insn><mode>3): This.
4071         (*<addsub><mode>3): Renamed to ...
4072         (*<plusminus_insn><mode>3): This.
4073         (<sse>_vm<addsub><mode>3): Renamed to ...
4074         (<sse>_vm<plusminus_insn><mode>3): This.
4075         (sse3_h<addsub>v4sf3): Renamed to ...
4076         (sse3_h<plusminus_insn>v4sf3): This.
4077         (sse3_h<addsub>v2df3): Renamed to ...
4078         (sse3_h<plusminus_insn>v2df3): This.
4079         (<plusminus_insn><mode>3): New.
4080         (*<plusminus_insn><mode>3): Likewise.
4081         (sse2_<plusminus_insn><mode>3): Likewise.
4082         (add<mode>): Removed.
4083         (*add<mode>3): Likewise.
4084         (sse2_ssadd<mode>3): Likewise.
4085         (sse2_usadd<mode>3): Likewise.
4086         (sub<mode>3): Likewise.
4087         (*sub<mode>3): Likewise.
4088         (sse2_sssub<mode>3): Likewise.
4089         (sse2_ussub<mode>3): Likewise.
4090
4091 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
4092
4093         * gthr-single.h: Add in required interface elements as per gthr.h.
4094         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
4095         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
4096         Generalize UNUSED macro. 
4097         (__gthread_once): Add.
4098         (__gthread_key_create): Add.
4099         (__gthread_key_delete): Add.
4100         (__gthread_getspecific): Add.
4101         (__gthread_setspecific): Add.
4102         
4103 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
4104
4105         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
4106         the same size types for the indirect reference on the rhs, then
4107         create a VCE.
4108
4109 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
4110
4111         * config/i386/i386.md
4112         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
4113         one insn template instead of template series.
4114         (*xordi_1_rex64): Ditto.
4115         (*xordi_2_rex64): Ditto.
4116
4117 2008-05-05  Ira Rosen  <irar@il.ibm.com>
4118
4119         PR tree-optimization/36119
4120         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
4121         in case of SLP.
4122
4123 2008-06-04  Jan Hubicka  <jh@suse.cz>
4124
4125         tree-optimization/36100
4126         * tree-pass.h (pass_O0_always_inline): Declare.
4127         * ipa-inline.c (inline_transform): Remove dead code.
4128         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4129         pass_O0_always_inline): New.
4130         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
4131
4132 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
4133
4134         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
4135         mnemonic in this_param move for TARGET_64BIT.
4136
4137 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
4138
4139         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
4140         (*strmovsi_rex_1): Ditto.
4141         (*strsetsi_1): Ditto.
4142         (*strsetsi_rex_1): Ditto.
4143
4144         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
4145         adddicc expanders using SWI mode iterator.
4146
4147 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4148
4149         PR target/36121
4150         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
4151         argument handling.
4152
4153 2008-05-04  David S. Miller  <davem@davemloft.net>
4154
4155         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
4156         (sparc*-*-linux*): Use linux.h in tm_file.
4157         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
4158         compiler defaulting to 32-bit.
4159         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
4160         no longer needed.
4161         * config/sparc/linux.h: Remove definitions now obtained
4162         properly from linux.h
4163         * config/sparc/linux64.h: Likewise.
4164         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
4165         don't want this setting for 32-bit builds in a biarch compiler.
4166         * doc/install.texi: Add sparc-linux to list of targets
4167         supporting --enable-targets=all.
4168
4169 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
4170
4171         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
4172
4173 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
4174
4175         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
4176         after V4SI_FTYPE_V8HI.
4177         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
4178         case V4SI_FTYPE_V2DF.
4179
4180 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
4181
4182         * doc/invoke.texi (max-flow-memory-locations): Removed.
4183         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
4184         
4185 2008-05-03  Richard Guenther  <rguenther@suse.de>
4186
4187         PR middle-end/34973
4188         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
4189
4190 2008-05-02  David S. Miller  <davem@davemloft.net>
4191
4192         * config.gcc (need_64bit_hwint): Document libcpp dependency.
4193
4194 2008-05-02  Simon Baldwin <simonb@google.com>
4195
4196         PR bootstrap/36108
4197         * c-common.h (warn_array_subscript_range): Removed.
4198         * c-common.c (warn_array_subscript_range): Ditto.
4199         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
4200         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
4201
4202 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4203
4204         * config/i386/i386.c (ix86_special_builtin_type): New.
4205         (bdesc_special_args): Likewise.
4206         (ix86_expand_special_args_builtin): Likewise.
4207         (ix86_init_mmx_sse_builtins): Updated.
4208         (ix86_expand_builtin): Updated.
4209         (ix86_expand_store_builtin): Removed.
4210         (ix86_expand_unop_builtin): Likewise.
4211
4212         * config/i386/mm3dnow.h (__v2sf): Moved to ...
4213         * config/i386/mmintrin.h (__v2sf): Here.
4214
4215         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
4216         const __v2sf.
4217         (_mm_loadl_pi): Likewise.
4218         (_mm_storeh_pi): Replace __v2si with __v2sf.
4219         (_mm_storel_pi): Likewise.
4220
4221         * doc/extend.texi: Correct __builtin_ia32_loadhps,
4222         __builtin_ia32_loadlps, __builtin_ia32_storehps,
4223         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
4224         __builtin_ia32_loadlpd.
4225
4226 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4227
4228         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
4229         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
4230         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
4231         (ix86_init_mmx_sse_builtins): Updated.
4232         (ix86_expand_args_builtin): Likewise.
4233         (ix86_expand_builtin): Likewise.
4234         (ix86_expand_unop1_builtin): Renamed to ...
4235         (ix86_expand_unop_vec_merge_builtin): This.
4236
4237 2008-05-01  Jan Hubicka  <jh@suse.cz>
4238
4239         PR bootstrap/36100
4240         * ipa-inline.c (inline_generate_summary): Make static.
4241         (inline_transform): Do not call inlining at -O0; make static.
4242         * passes.c (execute_todo): Add sanity check.
4243         (execute_one_ipa_transform_pass): Execute proper flags.
4244
4245 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4246
4247         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
4248         (DECL_NONADDRESSABLE_P): Likewise.
4249         * alias.c (record_component_aliases): Fix comment.
4250
4251 2008-05-01  Simon Baldwin <simonb@google.com>
4252
4253         * c-common.h (warn_array_subscript_range): New function.
4254         * c-common.c (warn_array_subscript_range): Ditto.
4255         * tree-vrp.c (check_array_ref): Corrected code to agree with
4256         comment, ignoring only arrays of size 0 or size 1.
4257         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
4258
4259 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4260
4261         * config/i386/i386.c (ix86_builtin_type): Replace
4262         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
4263         (bdesc_args): Updated.
4264         (ix86_init_mmx_sse_builtins): Likewise.
4265         (ix86_expand_args_builtin): Likewise.
4266
4267         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
4268         with __v1di.
4269
4270         * doc/extend.texi: Correct __builtin_ia32_palignr.
4271
4272 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4273
4274         PR target/36095
4275         * config/i386/i386.c (bdesc_crc32): Removed.
4276         (ix86_expand_crc32): Likewise.
4277         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
4278         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
4279         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
4280         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
4281         UINT_FTYPE_UINT_UCHAR.
4282         (bdesc_args): Updated. Add crc32 builtins.
4283         (ix86_init_mmx_sse_builtins): Updated.
4284         (ix86_expand_args_builtin): Updated to support subreg.
4285
4286         * doc/extend.texi: Correct __builtin_ia32_crc32di.
4287
4288 2008-05-01  Jan Hubicka  <jh@suse.cz>
4289
4290         * tree-pass.h (opt_pass): Add IPA_PASS.
4291         (varpool_node, cgraph_node): Forward declare.
4292         (ipa_opt_pass): Define.
4293         (pass_ipa_inline): Turn into ipa_opt_pass.
4294         (pass_apply_inline): Remove.
4295         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
4296         (apply_inline): Turn into ....
4297         (inline_transform): ... this one.
4298         (inline_generate_summary): New function.
4299         (pass_apply_inline): Remove.
4300         * function.h (ipa_opt_pass): Forward declare structure; typedef;
4301         vector.
4302         (struct function): Add ipa_transforms_to_apply.
4303         * passes.c (register_one_dump_file): Work on IPA_PASS.
4304         (init_optimization_passes): Remove pass_inline_parameters and
4305         pass_apply_inline.
4306         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
4307         (execute_one_pass) ... here; apply transforms when possible.
4308         (add_ipa_transform_pass, execute_ipa_summary_asses,
4309         execute_one_ipa_transform_pass): New.
4310         (execute_ipa_pass_list): Update for IPA_PASS type.
4311
4312 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4313
4314         * config/i386/i386.c (ix86_builtin_type): Add
4315         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
4316         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
4317         (bdesc_args): Add SSE4a builtins.
4318         (ix86_init_mmx_sse_builtins): Updated.
4319         (ix86_expand_args_builtin): Likewise.
4320         (ix86_expand_builtin): Likewise.
4321
4322 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4323
4324         * config/i386/i386.c (ix86_builtin_type): Add
4325         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
4326         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
4327         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
4328         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
4329         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
4330         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
4331         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
4332         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
4333         and DI_FTYPE_DI_DI_INT.
4334         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
4335         (ix86_init_mmx_sse_builtins): Updated.
4336         (ix86_expand_args_builtin): Likewise.
4337         (ix86_expand_builtin): Likewise.
4338         (ix86_expand_binop_imm_builtin): Removed.
4339
4340         * doc/extend.texi: Correct __builtin_ia32_palignr128.
4341
4342 2008-04-30  Richard Guenther  <rguenther@suse.de>
4343
4344         PR tree-optimization/32921
4345         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
4346
4347 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
4348
4349         * config/arm/arm.c (arm_unwind_emit): Use
4350         crtl->all_throwers_are_sibcalls instead of
4351         cfun->all_throwers_are_sibcalls.
4352         (arm_output_fn_unwind): Likewise.
4353         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
4354         instead of cfun->uses_pic_offset_table.
4355         (frv_expand_prologue): Likewise.
4356         (frv_frame_pointer_required): Likewise.
4357         (frv_expand_fdpic_call): Likewise.
4358         (frv_emit_movsi): Likewise.
4359         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
4360         cfun->returns_pcc_struct instead of
4361         current_function_returns_pcc_struct.
4362         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
4363         instead of cfun->calls_eh_return.
4364         (m32c_pushm_popm): Likewise.
4365         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
4366         "extern" declaration.
4367
4368 2008-04-30  Richard Guenther  <rguenther@suse.de>
4369
4370         PR tree-optimization/21636
4371         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
4372         constant address.
4373         (evaluate_stmt): Print the likely value.
4374         (ccp_visit_stmt): Avoid excessive vertical spacing.
4375
4376 2008-04-30  Rafael Espindola  <espindola@google.com>
4377
4378         * builtins.c (fold_call_expr): Return realret.
4379         * tree-ssa-threadedge.c
4380         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
4381         __builtin_object_size.
4382
4383 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
4384
4385         * gcc.c (wrapper_string): New variable.
4386         (insert_wrapper): New function.
4387         (execute): New option -wrapper.
4388         * doc/invoke.texi (Overall Options): New driver option -wrapper.
4389
4390 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
4391
4392         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
4393         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
4394         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
4395         from...
4396         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
4397         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
4398         config/rs6000/e500crtres64gprctr.asm,
4399         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
4400         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
4401         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
4402         config/rs6000/e500crtsav64gprctr.asm,
4403         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
4404         config/rs6000/e500crtsavg64gprctr.asm: New files.
4405         * config/rs6000/t-ppccomm: Add build rules for new files.
4406         (LIB2FUNCS_STATIC_EXTRA): Add new files.
4407         * config/rs6000/t-netbsd: Add build rules for new files.
4408         (LIB2FUNCS_STATIC_EXTRA): New variable.
4409         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
4410         (CRTSAVRES_DEFAULT_SPEC): Likewise.
4411         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
4412
4413 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
4414
4415         * config/i386/i386.c (ix86_builtin_type): Add
4416         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
4417         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
4418         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
4419         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
4420         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
4421         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4422         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4423         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4424         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4425         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4426         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4427         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4428         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4429         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4430         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4431         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4432         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4433         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4434         V1DI_FTYPE_V2SI_V2SI.
4435         (bdesc_2arg): Moved to ...
4436         (bdesc_args): Here.
4437         (ix86_init_mmx_sse_builtins): Updated.
4438         (ix86_expand_args_builtin): Updated.  Take a pointer
4439         to const struct builtin_description.  Handle comparison
4440         builtin functions.
4441         (ix86_expand_sse_compare): Take a new argument for swapping operands.
4442         (ix86_expand_builtin): Updated.
4443
4444         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4445         (ssse3_pmaddubsw128): This.
4446         (ssse3_pmaddubswv4hi3): Renamed to ...
4447         (ssse3_pmaddubsw): This.
4448
4449         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
4450         (__builtin_ia32_packssdw128): Likewise.
4451         (__builtin_ia32_packuswb128): Likewise.
4452         (__builtin_ia32_pmaddubsw): Likewise.
4453         (__builtin_ia32_pmaddubsw128): Likewise.
4454
4455 2008-04-30  Richard Guenther  <rguenther@suse.de>
4456
4457         PR tree-optimization/14847
4458         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4459         (recognize_bits_test): Use it.
4460         (recognize_single_bit_test): Likewise.
4461
4462 2008-04-30  Martin Jambor  <mjambor@suse.cz>
4463
4464         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4465         instead of setting number of formal parameters to zero.
4466         (ipcp_init_stage): Do not set the number of actual parameters to zero 
4467         either.
4468         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4469         which are called with variable number of arguments.
4470         (ipcp_insert_stage): Explicitely skipping all nodes which are
4471         called with variable number of arguments.
4472         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4473         number of parameters.
4474
4475         * ipa-prop.h (struct ipa_node_params): Added flag
4476         called_with_var_arguments
4477         (ipa_set_param_count): Added.  Changed sole setter to use it.
4478         (ipa_get_param_count): Added.  All readers of param_count
4479         converted to use it instead.
4480         (ipa_set_called_with_variable_arg): Added.
4481         (ipa_is_called_with_var_arguments): Added.
4482         (ipa_get_ith_param): Added.  All readers of param_decls converted
4483         to use it instead.
4484         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4485         changed to use it. 
4486         (ipa_get_cs_argument_count): Added, all readers of argument_count
4487         changed to cal it.
4488         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4489         to use it.
4490         
4491         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4492         (struct ipcp_lattice): Renamed cval_type to type
4493         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4494
4495         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4496         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4497         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4498         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4499         (build_const_val): Changed the type of parameter cvalue to tree
4500         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4501         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4502         
4503         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4504         constant 
4505
4506         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4507         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4508         (ipa_add_method): Renamed to ipa_push_func_to_list
4509         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4510         (ipa_callsite_param_count): Removed.
4511         (ipa_callsite_param_count_set): Removed.
4512         (ipa_callsite_param): Removed.
4513         (ipa_callsite_callee): Removed.
4514         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4515         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4516         (ipa_method_formal_count): Removed.
4517         (ipa_method_formal_count_set): Removed.
4518         (ipa_method_get_tree): Removed.
4519         (ipa_method_tree_map_create): Removed.
4520         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4521         (ipa_create_param_decls_array): Creates the array itself
4522         (ipa_create_param_decls_array): Temporary variable info instead of 
4523         a few dereferences.
4524         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4525         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4526         (get_type): Removed.
4527         (ipa_jf_get_info_type): Removed.
4528         (ipa_node_create): Renamed to ipa_create_node_params
4529         (ipa_free): Renamed to ipa_free_all_node_params
4530         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4531         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4532         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4533         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4534         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4535         ipa_free_all_edge_args
4536         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4537         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4538         (ipa_create_methodlist_node): Removed.
4539         (ipa_methodlist_method): Removed.
4540         (ipa_methodlist_method_set): Removed.
4541         (ipa_methodlist_next_method): Removed.
4542         (ipa_methodlist_next_method_set): Removed.
4543         (ipa_method_is_modified): Removed.
4544         (ipa_method_modify_create): Removed.
4545         (ipa_method_modify_init): Temporary variable info instead of a few 
4546         dereferences.
4547         (ipa_detect_param_modifications): Temporary variable info instead of 
4548         a few dereferences.
4549         (ipa_compute_jump_functions): Temporary variable info instead of 
4550         a few dereferences.
4551         (ipa_method_modify_set): Removed.
4552         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4553         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4554         than craph_node as the first parameter.
4555         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4556         (ipa_method_modify_init): Removed.
4557         (ipa_compute_jump_functions): Added a temp variable instead of 
4558         repeatadly dereferencing the cgraph_edge.aux pointer
4559         (ipa_callsite_param_set_type): Removed.
4560         (ipa_compute_jump_functions): i renamed to index and moved to 
4561         an inner block
4562         (ipa_callsite_param_set_info_type_formal): Removed.
4563         (ipa_callsite_param_set_info_type): Removed.
4564         (ipa_callsite_param_map_create): Removed.
4565         (ipa_callsite_tree): Removed.
4566         (ipa_callsite_caller): Removed.
4567         (ipa_pop_func_from_list): return_method removed to return_func
4568
4569         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4570         prefixed all values with IPA_. Changed all users.
4571         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4572         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4573         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4574         (union parameter_info): Renamed to jump_func_value.
4575         (union jump_func_value): Renamed value to constant
4576         (struct ipa_jump_func): Renamed info_type to value
4577         (struct ipa_node): Renamed to ipa_node_params
4578         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4579         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4580         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4581         (struct ipa_edge): Renamed to ipa_edge_args
4582         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4583         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4584         (struct ipa_methodlist): Renamed to ipa_func_list
4585         (struct ipa_func_list): method_p renamed to node, next_method
4586         renamed to next
4587         (ipa_methodlist_p): Removed, switched all users to struct pointer
4588         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4589
4590 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4591
4592         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4593         (rs6000_emit_epilogue): Use backchain to restore only when we
4594         have a large frame.  Make use of frame pointer to restore if we
4595         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4596
4597 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4598
4599         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4600         Add mode to zero_extract.
4601         (sign bit tests peepholes): (Ditto.).
4602
4603 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4604
4605         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4606         Instructions in comments with SSE3.
4607         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4608         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4609         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4610         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4611         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4612         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4613         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4614         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4615         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4616         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4617         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4618         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4619         (bdesc_sse_args): Renamed to ...
4620         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4621         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4622         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4623         IX86_BUILTIN_FABSQ.
4624         (bdesc_1arg): Moved to ...
4625         (bdesc_args): Here.
4626         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4627         Instructions in comments with SSE3.
4628         (ix86_expand_sse_operands_builtin): Renamed to ...
4629         (ix86_expand_args_builtin): This.  Updated.
4630         (ix86_expand_unop1_builtin): Update comments.
4631         (ix86_expand_builtin): Updated.
4632
4633 2008-04-29  Richard Guenther  <rguenther@suse.de>
4634
4635         PR tree-optimization/36078
4636         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4637         Update virtual SSA form after cleaning up the CFG.
4638
4639 2008-04-29  Richard Guenther  <rguenther@suse.de>
4640
4641         PR middle-end/15255
4642         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4643
4644 2008-04-29  Richard Guenther  <rguenther@suse.de>
4645
4646         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4647         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4648         (compute_flow_insensitive_aliasing): Do not treat
4649         PTR_IS_REF_ALL pointers special.
4650         (get_smt_for): Likewise.
4651         (may_alias_p): Re-structure.
4652         (is_escape_site): A ref-all pointer conversion is not an escape site.
4653         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4654         PTR_IS_REF_ALL pointers special.
4655         * tree-ssa-structalias.h (struct alias_info): Remove
4656         ref_all_symbol_mem_tag field.
4657         (PTR_IS_REF_ALL): Remove.
4658
4659 2008-04-29  Richard Guenther  <rguenther@suse.de>
4660
4661         PR middle-end/36077
4662         * fold-const.c (extract_muldiv_1): In combining division constants
4663         make sure to never overflow.
4664
4665 2008-04-29  Nick Clifton  <nickc@redhat.com>
4666
4667         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4668
4669 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4670
4671         PR bootstrap/35169
4672         * optc-gen.awk: Work around HP-UX/IA awk bug.
4673
4674 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4675
4676         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4677         2008-04-25 commit.
4678
4679 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4680
4681         PR target/36073
4682         * config/i386/i386.md
4683         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4684         Change operand 1 predicate to nonimmediate_operand.
4685
4686 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4687
4688         PR debug/36060
4689         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4690         die_sub field.
4691         * gengtype.c (walk_type, write_func_for_structure): Handle
4692         chain_circular.
4693         * doc/gty.texi: Document chain_circular.
4694
4695 2008-04-28  Richard Guenther  <rguenther@suse.de>
4696
4697         PR tree-optimization/36066
4698         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4699         SCEV and loop.
4700
4701 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4702
4703         PR target/36064
4704         * config/i386/i386.md
4705         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4706         Use match_scratch instead of match_operand for operands 3 and 4.
4707
4708 2008-04-27  Richard Guenther  <rguenther@suse.de>
4709
4710         PR tree-optimization/18754
4711         PR tree-optimization/34223
4712         * tree-pass.h (pass_complete_unrolli): Declare.
4713         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4714         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4715         Rewrite loop into loop closed SSA form if it is not already.
4716         (tree_unroll_loops_completely): Re-structure to iterate over
4717         innermost loops with intermediate CFG cleanups.
4718         Unroll outermost loops only if requested or the code does not grow
4719         doing so.
4720         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4721         loops are available.
4722         (tree_vectorize): Instead do so here.
4723         (tree_complete_unroll): Also unroll outermost loops.
4724         (tree_complete_unroll_inner): New function.
4725         (gate_tree_complete_unroll_inner): Likewise.
4726         (pass_complete_unrolli): New pass.
4727         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4728         uses outside of the loop.
4729         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4730         form if it is available.  
4731         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4732         * passes.c (init_optimization_passes): Schedule complete inner
4733         loop unrolling pass before the first CCP pass after final inlining.
4734
4735 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4736
4737         * targhooks.h (default_emutls_var_fields,
4738         default_emutls_var_init): Declare.
4739         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4740         * target.h (struct gcc_target): Add struct emutls member.
4741         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4742         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4743         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4744         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4745         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4746         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4747         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4748         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4749         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4750         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4751         emit debug information.
4752         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4753         * varasm.c: Include targhooks.h.
4754         (emutls_object_section, emutls_tmpl_section): New.
4755         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4756         (EMUTLS_SEPARATOR): New.
4757         (prefix_name): New.
4758         (get_emutls_object_name): New.
4759         (default_emutls_var_fields): New, broken out of ...
4760         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4761         (get_emutls_init_templ_addr): Adjust to use target hooks.
4762         (emutls_decl): Adjust to use target hooks.
4763         (emutls_finish): Likewise.
4764         (default_emutls_var_init): New, broken out of ...
4765         (assemble_variable): ... here.  Adjust to use target hooks.
4766         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4767         SECCAT_EMUTLS_TMPL.
4768         * c-common.c (handle_section_attribute): Prevent overriding
4769         sections for emulated tls with special sections.
4770         * config/i386/i386.c (x86_64_elf_select_section): Add
4771         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4772         (x86_64_elf_unique_section): Likewise.
4773         * config/vxworks.c: Include tree.h.
4774         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4775         (vxworks_override_options): Set TLS scheme.
4776         * doc/tm.texi (Emulated TLS): New node.
4777
4778 2008-04-26  Simon Baldwin <simonb@google.com>
4779
4780         PR c/35652
4781         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4782         with propagated string constants.
4783
4784 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4785
4786         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4787         constraint for operand 2 when operand 0 is memory operand.
4788         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4789         operand 0 is memory operand.
4790         (fix_trunc<mode>_i387_with_temp): Ditto.
4791         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4792         operand 2 when operand 1 is memory operand.
4793         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4794         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4795         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4796         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4797         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4798         operands 2,3 and 4 when operand 1 is memory operand.
4799         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4800         is memory operand.
4801         (fistdi2_floor_with_temp): Ditto.
4802         (fist<mode>2_floor_with_temp): Ditto.
4803         (fistdi2_ceil_with_temp): Ditto.
4804         (fist<mode>2_ceil_with_temp): Ditto.
4805         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4806
4807 2008-04-26  David Daney  <ddaney@avtrex.com>
4808
4809         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4810         unspec_volitile.
4811         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4812         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4813         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4814         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4815         (compare_and_swap_12): New insn.
4816         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4817         * config/mips/mips.c (mips_force_binary): New function.
4818         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4819         (mips_expand_compare_and_swap_12): New function.
4820         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4821
4822 2008-04-25  Jan Hubicka  <jh@suse.cz>
4823
4824         PR testsuite/35843
4825         * cfgexpand.c (pass_expand): Turn into RTL pass.
4826         * passes.c (execute_one_pass): Do pass typechecking after execution.
4827         * tree-pass.h (pass_expand): Turn into RTL pass.
4828
4829         * function.h (struct rtl_data): Move here fields
4830         accesses_prior_frames, calls_eh_return, saves_all_registers,
4831         has_nonlocal_goto, has_asm_statement, is_thunk,
4832         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4833         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4834         arg_pointer_save_area_init from struct function; turn into bool.
4835         (struct function): Move
4836         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4837         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4838         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4839         tail_call_emit, arg_pointer_save_area_init
4840         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4841         (current_function_returns_struct, current_function_returns_pcc_struct,
4842         current_function_calls_setjmp, current_function_calls_alloca,
4843         current_function_accesses_prior_frames,
4844         current_function_calls_eh_return, current_function_is_thunk,
4845         current_function_stdarg, current_function_profile,
4846         current_function_limit_stack, current_function_uses_pic_offset_table,
4847         current_function_uses_const_pool, current_function_has_nonlocal_label,
4848         current_function_saves_all_registers,
4849         current_function_has_nonlocal_goto,
4850         current_function_has_asm_statement): Remove accesor macros.
4851         * ra-conflict.c (global_conflicts): Update.
4852         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4853         (suitable_for_tail_call_opt_p): Update.
4854         * builtins.c (expand_builtin_return_addr): Update.
4855         (expand_builtin_setjmp_setup): Update.
4856         (expand_builtin_nonlocal_goto): Update.
4857         * final.c (final_start_function): Update.
4858         (profile_function): Update.
4859         (leaf_function_p): Update.
4860         (only_leaf_regs_used): Update.
4861         * df-scan.c (df_get_exit_block_use_set): Update.
4862         * dojump.c (clear_pending_stack_adjust): Update.
4863         * tree-stdarg.c (gate_optimize_stdarg): Update.
4864         * gimple-low.c (lower_function_body): Update.
4865         * global.c (compute_regsets): Update.
4866         (global_alloc): Update.
4867         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4868         * expr.c (expand_assignment): Update.
4869         * dse.c (dse_step0): Update.
4870         (dse_step1): Update.
4871         * c-decl.c (store_parm_decls): Update.
4872         * local-alloc.c (combine_regs): Update.
4873         (find_free_reg): Update.
4874         * function.c (assign_parms_augmented_arg_list): Update.
4875         (assign_parm_find_data_types): Update.
4876         (assign_parms): Update.
4877         (allocate_struct_function): Update.
4878         (expand_function_start): Update.
4879         (expand_function_end): Update.
4880         (get_arg_pointer_save_area): Update.
4881         (thread_prologue_and_epilogue_insns): Update.
4882         (rest_of_match_asm_constraints): Update.
4883         * stor-layout.c (variable_size): Update.
4884         * gcse.c (gcse_main): Update.
4885         (bypass_jumps): Update.
4886         * gimplify.c (gimplify_function_tree): Update.
4887         * calls.c (emit_call_1): Update.
4888         (expand_call): Update.
4889         * bt-load.c (compute_defs_uses_and_gen): Update.
4890         * except.c (sjlj_assign_call_site_values): Update.
4891         (sjlj_emit_function_enter): Update.
4892         (can_throw_external): Update.
4893         (set_nothrow_function_flags): Update.
4894         (expand_builtin_unwind_init): Update.
4895         (expand_eh_return): Update.
4896         (convert_to_eh_region_ranges): Update.
4897         (output_function_exception_table): Update.
4898         * emit-rtl.c (gen_tmp_stack_mem): Update.
4899         * cfgexpand.c (expand_used_vars): Update.
4900         (tree_expand_cfg): Update.
4901         * cfgcleanup.c (rest_of_handle_jump): Update.
4902         * explow.c (allocate_dynamic_stack_space): Update.
4903         * varasm.c (assemble_start_function): Update.
4904         (force_const_mem): Update.
4905         (mark_constant_pool): Update.
4906         * tree-optimize.c (tree_rest_of_compilation): Update.
4907         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4908         * tree-cfg.c (notice_special_calls): Update.
4909         (is_ctrl_altering_stmt): Update.
4910         (tree_can_make_abnormal_goto): Update.
4911         (tree_purge_dead_abnormal_call_edges): Update.
4912         * config/alpha/predicates.md: Update.
4913         * config/alpha/alpha.c (alpha_sa_mask): Update.
4914         (alpha_sa_size): Update.
4915         (alpha_does_function_need_gp): Update.
4916         (alpha_expand_prologue): Update.
4917         (alpha_start_function): Update.
4918         (alpha_output_function_end_prologue): Update.
4919         (alpha_expand_epilogue): Update.
4920         * config/frv/frv.c (frv_stack_info): Update.
4921         (frv_expand_epilogue): Update.
4922         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4923         (s390_register_info): Update.
4924         (s390_frame_info): Update.
4925         (s390_init_frame_layout): Update.
4926         (s390_can_eliminate): Update.
4927         (save_gprs): Update.
4928         * config/spu/spu.c (spu_split_immediate): Update.
4929         (need_to_save_reg): Update.
4930         (spu_expand_prologue): Update.
4931         (spu_expand_epilogue): Update.
4932         * config/sparc/sparc.md: Update.
4933         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4934         (sparc_tls_got): Update.
4935         (legitimize_pic_address): Update.
4936         (sparc_emit_call_insn): Update.
4937         (sparc_expand_prologue): Update.
4938         (output_return): Update.
4939         (print_operand): Update.
4940         (sparc_function_ok_for_sibcall): Update.
4941         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4942         * config/m32r/m32r.md: Update.
4943         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4944         (m32r_compute_frame_size): Update.
4945         (m32r_expand_prologue): Update.
4946         (m32r_expand_epilogue): Update.
4947         (m32r_legitimize_pic_address): Update.
4948         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4949         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4950         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4951         (gen_push): Update.
4952         (ix86_save_reg): Update.
4953         (ix86_compute_frame_layout): Update.
4954         (ix86_expand_prologue): Update.
4955         (ix86_expand_epilogue): Update.
4956         * config/sh/sh.c (output_stack_adjust): Update.
4957         (calc_live_regs): Update.
4958         (sh5_schedule_saves): Update.
4959         (sh_expand_prologue): Update.
4960         (sh_expand_epilogue): Update.
4961         (sh_setup_incoming_varargs): Update.
4962         (sh_allocate_initial_value): Update.
4963         (sh_get_pr_initial_val): Update.
4964         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4965         * config/sh/sh.md (label:): Update.
4966         * config/avr/avr.c (out_movhi_mr_r): Update.
4967         * config/crx/crx.h (enum): Update.
4968         * config/xtensa/xtensa.h (along): Update.
4969         * config/stormy16/stormy16.c Update.
4970         (xstormy16_compute_stack_layout): Update.
4971         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4972         (fr30_expand_prologue): Update.
4973         * config/cris/cris.c (cris_conditional_register_usage): Update.
4974         (cris_reg_saved_in_regsave_area): Update.
4975         (cris_initial_frame_pointer_offset): Update.
4976         (cris_simple_epilogue): Update.
4977         (cris_expand_prologue): Update.
4978         (cris_expand_epilogue): Update.
4979         (cris_expand_pic_call_address): Update.
4980         (cris_asm_output_symbol_ref): Update.
4981         (cris_asm_output_label_ref): Update.
4982         * config/cris/cris.md Update.
4983         * config/iq2000/iq2000.c (compute_frame_size): Update.
4984         (iq2000_expand_epilogue): Update.
4985         * config/mt/mt.h (save_direction): Update.
4986         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4987         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4988         (ia64_secondary_reload_class): Update.
4989         * config/m68k/m68k.c (m68k_save_reg): Update.
4990         (m68k_expand_prologue): Update.
4991         (m68k_expand_epilogue): Update.
4992         (legitimize_pic_address): Update.
4993         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4994         (first_reg_to_save): Update.
4995         (first_altivec_reg_to_save): Update.
4996         (compute_vrsave_mask): Update.
4997         (compute_save_world_info): Update.
4998         (rs6000_stack_info): Update.
4999         (spe_func_has_64bit_regs_p): Update.
5000         (rs6000_ra_ever_killed): Update.
5001         (rs6000_emit_eh_reg_restore): Update.
5002         (rs6000_emit_allocate_stack): Update.
5003         (rs6000_emit_prologue): Update.
5004         (rs6000_emit_epilogue): Update.
5005         (rs6000_output_function_epilogue): Update.
5006         (output_profile_hook): Update.
5007         (rs6000_elf_declare_function_name): Update.
5008         * config/rs6000/rs6000.h (rs6000_args): Update.
5009         * config/rs6000/rs6000.md: Update.
5010         * config/mcore/mcore.c (mcore_expand_prolog): Update.
5011         * config/arc/arc.c (arc_output_function_epilogue): Update.
5012         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
5013         * config/darwin.c (machopic_function_base_name): Update.
5014         * config/score/score3.c (score3_compute_frame_size): Update.
5015         (rpush): Update.
5016         (rpop): Update.
5017         (score3_epilogue): Update.
5018         * config/score/score7.c (score7_compute_frame_size): Update.
5019         (score7_prologue): Update.
5020         (score7_epilogue): Update.
5021         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
5022         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5023         * config/arm/arm.c (use_return_insn): Update.
5024         (require_pic_register): Update.
5025         (arm_load_pic_register): Update.
5026         (arm_compute_save_reg0_reg12_mask): Update.
5027         (arm_compute_save_reg_mask): Update.
5028         (thumb1_compute_save_reg_mask): Update.
5029         (output_return_instruction): Update.
5030         (arm_output_function_prologue): Update.
5031         (arm_output_epilogue): Update.
5032         (arm_get_frame_offsets): Update.
5033         (arm_expand_prologue): Update.
5034         (thumb_pushpop): Update.
5035         (thumb_exit): Update.
5036         (thumb1_expand_prologue): Update.
5037         (thumb1_expand_epilogue): Update.
5038         (arm_unwind_emit): Update.
5039         (arm_output_fn_unwind): Update.
5040         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
5041         * config/arm/arm.md: Update.
5042         * config/pa/pa.md: Update.
5043         * config/pa/pa.c (legitimize_pic_address): Update.
5044         (compute_frame_size): Update.
5045         (hppa_expand_prologue): Update.
5046         (hppa_expand_epilogue): Update.
5047         (borx_reg_operand): Update.
5048         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
5049         (HARD_REGNO_RENAME_OK): Update.
5050         * config/mips/mips.c (mips_global_pointer): Update.
5051         (mips_save_reg_p): Update.
5052         (mips_compute_frame_info): Update.
5053         (mips_frame_pointer_required): Update.
5054         (mips_expand_prologue): Update.
5055         (mips_expand_epilogue): Update.
5056         (mips_can_use_return_insn): Update.
5057         (mips_reorg_process_insns): Update.
5058         * config/v850/v850.c (compute_register_save_size): Update.
5059         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
5060         * config/mmix/mmix.c (along): Update.
5061         (mmix_expand_epilogue): Update.
5062         * config/bfin/bfin.c (legitimize_pic_address): Update.
5063         (must_save_p): Update.
5064         (stack_frame_needed_p): Update.
5065         (add_to_reg): Update.
5066         (bfin_expand_prologue): Update.
5067         * stmt.c (expand_asm_operands): Update.
5068         * reload1.c (reload): Update.
5069         (init_elim_table): Update.
5070
5071 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
5072         
5073         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
5074         
5075 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
5076
5077         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
5078         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
5079         (mov<mode>): Removed.
5080         (*movv4sf_internal): Likewise.
5081         (*movv2df_internal): Likewise.
5082
5083 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
5084
5085         * config.gcc (crx-*-elf): Remove deprecation.
5086
5087 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
5088
5089         * config/i386/cygming-crtend.c (register_frame_ctor): Register
5090         __gcc_deregister_frame with atexit.
5091         (deregister_frame_dtor): Remove.
5092
5093 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
5094             Nathan Sidwell  <nathan@codesourcery.com>
5095
5096         * config/rs6000/rs6000.opt (mspe): Remove Var property.
5097         (misel): Likewise.
5098         * config/rs6000/rs6000.h (rs6000_spe): Declare.
5099         (rs6000_isel): Likewise.
5100         * config/rs6000/rs6000.c (rs6000_spe): New variable.
5101         (rs6000_isel): New variable.
5102         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
5103
5104 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5105
5106         PR c++/35758
5107         * c-common.c (handle_vector_size_attribute): Call
5108         lang_hooks.types.reconstruct_complex_type instead of
5109         reconstruct_complex_type.
5110         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
5111         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
5112         * langhooks.h (struct lang_hooks_for_types): Add
5113         reconstruct_complex_type hook.
5114         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
5115         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
5116
5117 2008-04-24  Richard Guenther  <rguenther@suse.de>
5118
5119         * c-common.h (check_builtin_function_arguments): Declare.
5120         * c-common.c (validate_nargs): New function.
5121         (check_builtin_function_arguments): Likewise.
5122         * c-typeck.c (build_function_call): Call
5123         check_builtin_function_arguments.
5124         * builtins.c (fold_builtin_classify): Remove error reporting code.
5125         (fold_builtin_unordered_cmp): Likewise.
5126         (fold_builtin_1): Likewise.
5127         (fold_builtin_n): Likewise.
5128
5129 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5130
5131         PR tree-optimization/36008
5132         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
5133         the original op1, rather than delta by step.
5134
5135 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
5136             Sebastian Pop  <sebastian.pop@amd.com>
5137
5138         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
5139         eliminate_local_variables_stmt, eliminate_local_variables,
5140         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
5141         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
5142         of code delimited by two edges in the CFG.
5143         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
5144         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
5145         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
5146         the case of parallelisation of reductions.
5147         (expr_invariant_in_region_p): New.
5148
5149         * tree-flow.h (gather_blocks_in_sese_region): Declared.
5150         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
5151
5152 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5153             Richard Guenther  <rguenther@suse.de>
5154
5155         PR tree-optimization/36034
5156         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
5157         incapable of dealing with loads with gaps.
5158
5159 2008-04-24  Rafael Espindola  <espindola@google.com>
5160
5161         * tree-flow.h (vrp_evaluate_conditional): Change signature.
5162         * tree-ssa-propagate.c (fold_predicate_in): Update call to
5163         vrp_evaluate_conditional.
5164         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
5165         (vrp_evaluate_conditional): Split the cond argument.
5166         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
5167         (simplify_stmt_for_jump_threading): Update call to
5168         vrp_evaluate_conditional.
5169
5170 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5171
5172         PR tree-optimization/35982
5173         * tree-vect-analyze.c (vect_check_interleaving): Check that the
5174         interleaved data-refs are of the same type.
5175
5176 2008-04-24  Danny Smith  <dannysmith@users.net>
5177
5178         * c-format.c (check_format_info_main): Use strncmp rather than a
5179         magic prefix to handle multichar length specs.
5180         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
5181         Don't prefix "I64" and "I32" with '\0'.
5182
5183 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5184
5185         PR target/36015
5186         * config/i386/i386.c (init_cumulative_args): Don't pass anything
5187         in registers for -m32 only if stdarg_p (fntype).
5188
5189 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
5190
5191         PR rtl-optimization/36006
5192         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
5193         temp to op0 in order to avoid invalid rtx sharing.
5194
5195 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
5196
5197         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
5198         check TREE_INVARIANT.
5199         * tree-gimple.c (is_gimple_address): New.
5200         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
5201         * tree-gimple.h (is_gimple_address): New.
5202         * tree.h (decl_address_invariant_p): New.
5203         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
5204         (build_string): Likewise.
5205         (decl_address_invariant_p): New, from is_gimple_invariant_address.
5206         (tree_invariant_p_1): Likewise.
5207         (save_expr): Use it.
5208         (tree_invariant_p): New.
5209         (skip_simple_arithmetic): Use it.
5210         (stabilize_reference_1): Use it.
5211         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
5212         simplify.
5213         (build1_stat): Drop code to compute TREE_INVARIANT.
5214         (build2_stat): Drop code to compute TREE_INVARIANT.
5215         (build3_stat): Drop code to compute TREE_INVARIANT.
5216         (build4_stat): Drop code to compute TREE_INVARIANT.
5217         (build5_stat): Drop code to compute TREE_INVARIANT.
5218         (build7_stat): Drop code to compute TREE_INVARIANT.
5219         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
5220         * tree.h (struct tree_base): Remove invariant_flag.
5221         (TREE_INVARIANT): Remove.
5222         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
5223         (fold_builtin_expect): Check TREE_CONSTANT.
5224         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
5225         * c-tree.h (c_expr_to_decl): Drop third parameter.
5226         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
5227         (build_c_cast): Don't set TREE_INVARIANT.
5228         (pop_init_level): Don't set TREE_INVARIANT.
5229         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
5230         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
5231         TREE_CONSTANT.
5232         (gimplify_init_constructor): Don't set TREE_INVARIANT.
5233         (gimplify_addr_expr): Adjust comment.
5234         * tree-mudflap.c (mf_build_string):
5235         * print-tree.c (print_node): Don't print TREE_INVARIANT.
5236         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
5237         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
5238         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
5239         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
5240         * langhooks.h (struct lang_hooks): Drop third parameter from
5241         expr_to_decl.
5242
5243 2008-04-23  Richard Guenther  <rguenther@suse.de>
5244
5245         PR tree-optimization/27799
5246         PR tree-optimization/32921
5247         PR tree-optimization/32624
5248         * tree-ssa-structalias.c (merge_smts_into): Only merge the
5249         SMTs aliases and the tag itself into the solution.
5250         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
5251         merge the points-to solution back into the SMT aliases.
5252         (may_alias_p): Use alias_set_subset_of instead of
5253         aliases_conflict_p.  A pointer which points to
5254         memory with alias set zero may access any variable.
5255
5256 2008-04-23  Richard Guenther  <rguenther@suse.de>
5257
5258         * alias.c (alias_set_subset_of): Correctly handle asking
5259         if zero is a subset of an alias set with zero child.
5260         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
5261         (compute_flow_insensitive_aliasing): Correctly walk all
5262         pointers.  Do not unnecessarily union sets.
5263
5264 2008-04-23  Richard Guenther  <rguenther@suse.de>
5265
5266         PR middle-end/36021
5267         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
5268
5269 2008-04-22  Tomas Bily  <tbily@suse.cz>
5270
5271         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
5272         unreachable case.
5273         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
5274         NON_LVALUE_EXPR.
5275         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5276         * tree-ssa-structalias.c (get_constraint_for): Likewise.
5277         * tree-inline.c (estimate_num_insns_1): Likewise.
5278         * varasm.c (const_hash_1, compare_constant, copy_constant)
5279         (compute_reloc_for_constant, output_addressed_constants): Likewise.
5280         * emit-rtl.c (component_ref_for_mem_expr)
5281         (set_mem_attributes_minus_bitpos): Likewise.
5282         * expr.c (highest_pow2_factor, expand_expr_real_1, )
5283         (is_aligning_offset): Likewise.
5284         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
5285         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5286         * dojump.c (do_jump): Likewise.
5287         * builtins.c (get_pointer_alignment, get_memory_rtx)
5288         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
5289         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
5290
5291 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
5292
5293         PR rtl-optimization/36017
5294         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
5295         expanding the library call.
5296
5297 2008-04-22  Ian Lance Taylor  <iant@google.com>
5298
5299         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
5300         than size_in_bytes.
5301
5302 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
5303
5304         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
5305         of LR/CTR moves for Power6.
5306
5307 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
5308
5309         PR middle-end/36003
5310         * passes.c (init_optimization_passes): Remove
5311         pass_fast_rtl_byte_dce.
5312         
5313 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
5314
5315         PR target/29096
5316         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
5317         builtin functions to generate faster code.
5318         (_mm_cvtpu16_ps): Ditto.
5319         (_mm_cvtpi32x2_ps): Ditto.
5320
5321 2008-04-22  Nick Clifton  <nickc@redhat.com>
5322
5323         * common.opt (ftree-loop-distribution): Add Optimization
5324         attribute.
5325
5326         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
5327         (frv_expand_builtin_va_start): Likewise.
5328
5329         * config/arm/arm.c (thumb_find_work_register): Fix location of
5330         argument register count.
5331
5332 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5333
5334         Support scheduling for ColdFire V1 and V3 microarchitecture.
5335         Improve scheduling of multiplication instructions.
5336
5337         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
5338         (mac): New instruction attribute.
5339         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
5340         (m68k_sched_mac): New variable.
5341         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
5342         Handle cfv1 and cfv3.
5343         (max_insn_size): New static variable.
5344         (struct _sched_ib): New type.
5345         (sched_ib): New static variable.
5346         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
5347         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
5348         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
5349         Update.
5350         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
5351         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
5352         new variables.  Update.
5353         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5354         Add modeling of cfv3 instruction buffer.  Update.
5355         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
5356         * config/m68k/m68k.h (TUNE_CFV3): New macro.
5357         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
5358         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
5359         a particular reservation applies to.
5360         (type2): Reorganize attribute values.  Rename alu to alu_reg,
5361         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
5362         to mul_l and mul_w.
5363         (cf_ib_*): Simplify description of instruction buffer.
5364         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
5365         (cf_mem): Split into cf_mem1 and cf_mem2.
5366         (cf_v2_move_??): Rename to cfv12_alu_??.
5367         (cf_v2_move_l_??): Rename to cfv12_omove_??.
5368         (cf_v2_mul_??): Remove reservations.
5369         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
5370         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
5371         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
5372         appropriate place.
5373         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
5374         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
5375         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
5376         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
5377         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
5378         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
5379         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
5380         expansions of the above reservations for instructions of sizes
5381         1, 2 and 3 words.
5382
5383 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5384
5385         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
5386
5387 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
5388
5389         * coverage.c: Include tree-pass.h.
5390         (coverage_counter_alloc): Print da_file_name to the dump file.
5391
5392 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
5393
5394         * sbitmap.c (sbitmap_range_empty_p): New function.
5395         * sbitmap.h (sbitmap_range_empty_p): New function.
5396         * bitmap.h: Now includes obstack.h.
5397
5398 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
5399             Kenneth Zadeck  <zadeck@naturalbridge.com>
5400
5401         * dbgcnt.def (ra_byte_scan): Added.
5402         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
5403         when the last hit happens for a counter.  
5404         * timevar.def (TV_DF_BYTE_LR): New variable.
5405         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
5406         * passes.c (pass_fast_rtl_byte_dce): New pass.
5407         * fwprop.c (update_df): Added mode to call df_ref_create.
5408         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5409         DF_REF_EXTRACT_OFFSET.
5410         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
5411         DF_BYTE_LR_OUT, df_byte_lr): New macro.
5412         (df_mm): New enum.
5413         (df_ref_extract): Added mode field.
5414         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
5415         DF_REF_EXTRACT_OFFSET.
5416         (DF_REF_EXTRACT_MODE): New macro.
5417         (df_byte_lr_bb_info): New structure.
5418         (df_print_byte_regset, df_compute_accessed_bytes, 
5419         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
5420         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
5421         df_byte_lr_simulate_uses,
5422         df_byte_lr_simulate_artificial_refs_at_top,
5423         df_byte_lr_simulate_artificial_refs_at_end,
5424         df_compute_accessed_bytes): New function.
5425         (df_ref_create): Add parameter.
5426         (df_byte_lr_get_bb_info): New inline function.
5427         * df-scan.c (df_ref_record, df_uses_record,
5428         df_ref_create_structure): Added mode parameter.
5429         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
5430         df_defs_record, df_uses_record, df_get_conditional_uses,
5431         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
5432         df_entry_block_defs_collect, df_exit_block_uses_collect):
5433         Added mode parameter to calls to df_ref_record, df_uses_record,
5434         df_ref_create_structure.
5435         (df_ref_equal_p, df_ref_compare): Added test for modes.
5436         (df_ref_create_structure): Added code to set mode.  Renamed
5437         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5438         DF_REF_EXTRACT_OFFSET.
5439         * df-core.c (df_print_byte_regset): New function.
5440         * df-byte-scan.c: New file.
5441         * df-problems.c (df_rd_transfer_function): Removed unnecessary
5442         calls to BITMAP_FREE.  
5443         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5444         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5445         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
5446         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
5447         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5448         df_byte_lr_local_compute, df_byte_lr_init,
5449         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
5450         df_byte_lr_transfer_function, df_byte_lr_free, 
5451         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5452         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
5453         df_byte_lr_simulate_uses,
5454         df_byte_lr_simulate_artificial_refs_at_top,
5455         df_byte_lr_simulate_artificial_refs_at_end): New function.
5456         * dce.c (byte_dce_process_block): New function.
5457         (dce_process_block): au is now passed in rather than computed
5458         locally.  Changed loops that look at artificial defs to not look
5459         for conditional or partial ones, because there never are any.  
5460         (fast_dce): Now is able to drive byte_dce_process_block or 
5461         dce_process_block depending on the kind of dce being done.
5462         (rest_of_handle_fast_dce): Add parameter to fast_dce.
5463         (rest_of_handle_fast_byte_dce): New function.
5464         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5465         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5466
5467 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5468
5469         PR fortran/35019
5470         * gcc.h: Added fortran options that take arguments to
5471         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5472         macros.
5473
5474 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5475
5476         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5477         scalarization if on the LHS and not a full access.
5478
5479 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5480
5481         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5482
5483 2008-04-18  Rafael Espindola  <espindola@google.com>
5484
5485         * tree-vrp.c (find_case_label_index): Fix the binary search.
5486         (find_case_label_range): New.
5487         (vrp_visit_switch_stmt): Use find_case_label_range.
5488         (simplify_switch_using_ranges): Use find_case_label_range.
5489
5490 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5491
5492         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5493         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5494
5495 2008-04-18  Tom Tromey  <tromey@redhat.com>
5496
5497         PR libcpp/15500:
5498         * doc/cpp.texi (Implementation-defined behavior): Mention
5499         -finput-charset.
5500
5501 2008-04-18  Ian Lance Taylor  <iant@google.com>
5502
5503         * fold-const.c (pointer_may_wrap_p): New static function.
5504         (fold_comparison): Add another test for pointer overflow.  Use
5505         pointer_may_wrap_p to disable some false positives.
5506
5507 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5508           
5509         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5510         (fname_as_string): Match updated cpp_interpret_string prototype.
5511         (fix_string_type): Support char16_t* and char32_t*.
5512         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5513         derivative) nodes.  Register as builtin if C++0x.
5514         (c_parse_error): Support CPP_CHAR{16,32}.
5515         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5516         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5517         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5518         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5519         CTI_CHAR32_ARRAY_TYPE>: New elements.
5520         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5521         char32_type_node, signed_char32_type_node, char16_array_type_node,
5522         char32_array_type_node): New defines.
5523         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5524         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5525         (lex_string): Support CPP_STRING{16,32}, match updated
5526         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5527         (lex_charconst): Support CPP_CHAR{16,32}.
5528         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5529         and CPP_STRING{16,32}.
5530
5531 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5532
5533         PR bootstrap/35457
5534         * aclocal.m4: Regenerate.
5535         * configure: Regenerate.
5536
5537 2008-04-18  Jan Hubicka  <jh@suse.cz>
5538
5539         * except.c (dw2_size_of_call_site_table,
5540         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5541
5542         * cgraphbuild.c (build_cgraph_edges): Update.
5543         * tree-pass.h: Update comment.
5544         * final.c (leaf_function_p): Update.
5545         (leaf_renumber_regs): Update.
5546         (rest_of_clean_state): Update.
5547         * omp-low.c (expand_omp_parallel): Update.
5548         * ipa-reference.c (analyze_function): Update.
5549         * reorg.c (find_end_label): Update.
5550         (optimize_skip): Update.
5551         (fill_simple_delay_slots): Update.
5552         (fill_simple_delay_slots): Update.
5553         (make_return_insns): Update.
5554         (dbr_schedule): Update.
5555         * gimple-low.c (record_vars_into): Update.
5556         * cfgbuild.c (make_edges): Update.
5557         * function.c (assign_stack_local): Update.
5558         (assign_parm_adjust_stack_rtl): Update.
5559         (locate_and_pad_parm): Update.
5560         (allocate_struct_function): Do not initialize stack_alignment_needed
5561         and preferred_stack_boundary here.
5562         (stack_protect_prologue): Update.
5563         (stack_protect_epilogue): Update.
5564         (expand_function_start): Initialize stack_alignment_needed,
5565         preferred_stack_boundary and max_jumptable_ents.
5566         (expand_function_end): Update.
5567         (free_after_compilation): Do not NULLify epilogue_delay_list.
5568         * function.h (struct rtl_data): Add stack_protect_guard,
5569         stack_alignment_needed,
5570         preferred_stack_boundary, epilogue_delay_list.
5571         (struct function): Remove value_histograms, stack_alignment_needed,
5572         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5573         last_label_uid,
5574         unexpanded_var_list, stack_protect_guard.
5575         (current_function_epilogue_delay_list): Remove.
5576         * ipa-type-escape.c (analyze_function): Update.
5577         * gimplify.c (pop_gimplify_context): Update comment.
5578         * calls.c (expand_call): Update.
5579         (emit_library_call_value_1): Update.
5580         * except.c (set_nothrow_function_flags): Update.
5581         * cfgexpand.c (get_decl_align_unit): Update.
5582         (create_stack_guard): Update.
5583         (estimated_stack_frame_size): Update.
5584         (expand_used_vars): Update.
5585         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5586         * explow.c (allocate_dynamic_stack_space): Update.
5587         * tree-ssa-live.c (remove_unused_locals): Update.
5588         * varasm.c (mark_constant_pool): Update.
5589         * tree-inline.c (remap_decls): Update.
5590         (initialize_cfun): Update.
5591         (declare_return_variable): Update.
5592         (inline_forbidden_p): Update.
5593         (expand_call_inline): Update.
5594         (declare_inline_vars): Update.
5595         (tree_function_versioning): Update.
5596         * tree-flow.h (value_histograms): New.
5597         (VALUE_HISTOGRAMS): New macro.
5598         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5599         last_label_uid.
5600         * tree-cfg.c (set_bb_for_stmt): Update.
5601         (replace_by_duplicate_decl): Update.
5602         (move_block_to_fn): Update.
5603         (new_label_mapper): Update.
5604         (dump_function_to_file): Update.
5605         * ipa-struct-reorg.c (build_data_structure): Update.
5606         * cfgrtl.c (print_rtl_with_bb): Update.
5607         * reload1.c (reload): Update.
5608         (reload): Update.
5609         * config/i386/i386.c (setup_incoming_varargs_64,
5610         ix86_compute_frame_layout): Update.
5611         * config/arc/arc.c (arc_output_function_epilogue): Update.
5612
5613 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5614
5615         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5616         for FreeBSD as well.
5617         * gthr-posix95.h: Likewise.
5618
5619 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5620
5621         PR rtl-optimization/35838
5622         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5623         out the byte offset of the first subreg.
5624
5625 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5626
5627         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5628         to split_ti instead of three separate calls with single member arrays.
5629         (subti3 splitter): Ditto.
5630         (adddi3 splitter): Ditto with split_di.
5631         (subdi3 splitter): Ditto.
5632         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5633         two separate calls with single member arrays.  Swap match_dup
5634         operands 1 and 2 to better fit into the array.
5635         (negdi2 splitter): Ditto with split_di.
5636         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5637         two separate calls with single member arrays.  Swap match_dup operands
5638         6 and 7 to better fit into the array.
5639
5640 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5641
5642         * config/i386/i386.c (sse_builtin_type): New.
5643         (bdesc_sse_args): Likewise.
5644         (bdesc_sse_3arg): Removed.
5645         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5646         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5647         IX86_BUILTIN_ROUNDPS.
5648         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5649         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5650         IX86_BUILTIN_ROUNDPS.
5651         (ix86_expand_sse_4_operands_builtin): Removed.
5652         (ix86_expand_sse_operands_builtin): New.
5653         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5654         and CODE_FOR_sse4_1_roundps.
5655         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5656         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5657
5658 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5659
5660         PR target/35907
5661         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5662         regs before frame pop when needed.  If use_backchain_to_restore_sp
5663         then load backchain into a temp reg to restore vr and vrsave.  Add
5664         code to restore vr after frame pop if possible.
5665
5666 2008-04-17  Richard Guenther  <rguenther@suse.de>
5667
5668         * tree-vn.c (expressions_equal_p): Do not check type
5669         equality or compatibility before calling operand_equal_p.
5670         * fold-const.c (operand_equal_p): Check equivalence of
5671         integer constants before bailing out due to signedness or
5672         precision differences.
5673         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5674         spurious differences in type qualification.  Ignore types
5675         for COMPONENT_REFs at all.
5676
5677 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5678
5679         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5680         msw_skip comparison.
5681         
5682 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5683
5684         PR c/35739
5685         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5686         reg type.
5687
5688         PR tree-optimization/35899
5689         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5690         rather than TREE_OPERAND.
5691
5692 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5693
5694         PR target/35944
5695         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5696         temporary registers.  Change operand predicate to general_operand.
5697         (remainderxf3): Ditto.
5698
5699 2008-04-16  Richard Guenther  <rguenther@suse.de>
5700
5701         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5702         * tree-affine.c (aff_combination_expand): Look through some
5703         conversions.
5704
5705 2008-04-15  Doug Kwan  <dougkwan@google.com>
5706
5707         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5708         for hex printing.
5709         * tree-pretty-print.c (dump_generic_node): Ditto.
5710         * final.c (output_addr_const): Ditto.
5711         * dwarf2out.c (output_cfi): Ditto.
5712         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5713         * print-rtl.c (print_rtx): Ditto.
5714         * print-tree.c (print_node_brief, print_node): Ditto.
5715         * c-common.c (match_case_to_enum_1): Ditto.
5716         * sched-vis.c (print_value): Ditto.
5717         * config/i386/i386.c (print_operand): Cast to long unsigned int
5718         for hex printing.
5719
5720 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5721         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5722         MS Windows VirtualProtect function.
5723
5724 2008-04-15  Jan Hubicka  <jh@suse.cz>
5725
5726         * gengtype.c (write_root): Param_is argument is OK.
5727         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5728         * function.h: Include varray.h
5729         (rtl_eh): New stucture based on except.c one.
5730         (call_site_record): New forward declaration and vector type.
5731         * calls.c (emit_call_1): Do not call
5732         note_current_region_may_contain_throw.
5733         * except.c (eh_status): Remove cur_region, try_region since they are
5734         unused.
5735         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5736         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5737         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5738         Remove call_site_data_used, call_site_data_size.
5739         Turn call_site_record into vector in function.h.
5740         (note_current_region_may_contain_throw): Remove.
5741         (get_exception_pointer, get_exception_filter): Do not take struct
5742         function argument; update.
5743         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5744         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5745         build_post_landing_pads, dw2_build_landing_pads,
5746         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5747         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5748         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5749         sjlj_build_landing_pads, finish_eh_generation,
5750         remove_exception_handler_label, remove_eh_handler,
5751         maybe_remove_eh_handler, add_reachable_handler,
5752         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5753         add_action_record, collect_one_action_chain, add_call_site,
5754         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5755         sjlj_output_call_site_table, output_function_exception_table,
5756         * except.h (note_current_region_may_contain_throw): Remove
5757         (get_exception_pointer, get_exception_filter): Do not take struct
5758         function argument.
5759         * Makefile.in (GTFILES): Put varargs before struct function.
5760
5761 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5762
5763         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5764         punt for STRING_CST.
5765         (get_constraint_for): Deal with STRING_CST here instead.
5766
5767 2008-04-15  Richard Guenther  <rguenther@suse.de>
5768
5769         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5770         statements in a basic-block with a backward walk.  Do not
5771         substitute into dead statements but instead remove those.
5772
5773 2008-04-15  Richard Guenther  <rguenther@suse.de>
5774
5775         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5776         to zero, thus disable creation of SFTs.
5777
5778 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5779
5780         * tree-predcom.c (suitable_reference_p): Return false if the
5781         reference can throw.
5782
5783 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5784
5785         PR c/35751
5786         * c-decl.c (finish_decl): If extern or static var has variable
5787         size, set TREE_TYPE (decl) to error_mark_node.
5788
5789 2008-04-15  Rafael Espindola  <espindola@google.com>
5790
5791         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5792         variable arg1.
5793
5794 2008-04-15  Richard Guenther  <rguenther@suse.de>
5795
5796         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5797         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5798         (visit_reference_op_load): Do walk vuse-vdef chains on
5799         vn_reference_lookup.
5800         (visit_reference_op_store): But do not here.
5801         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5802         vn_reference_lookup.
5803         (vn_lookup_with_vuses): But do so here.
5804
5805 2008-04-14  Ian Lance Taylor  <iant@google.com>
5806
5807         * fold-const.c (fold_overflow_warning): Remove assertion.
5808
5809 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5810
5811         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5812         temp1 local variables.
5813
5814 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5815
5816         PR target/35661
5817         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5818         ".text.unlikely" section as executable.
5819
5820 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5821
5822         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5823         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5824         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5825         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5826         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5827         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5828         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5829
5830 2008-04-14  Ian Lance Taylor  <iant@google.com>
5831
5832         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5833         * fold-const.c (fold_comparison): If appropriate, test
5834         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5835         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5836         reassociating a pointer type.
5837         * doc/invoke.texi (Optimize Options): Document that
5838         -fstrict-overflow applies to pointer wraparound.
5839
5840 2008-04-13  Jan Hubicka  <jh@suse.cz>
5841
5842         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5843
5844 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5845
5846         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5847         we are going to "save the world".
5848
5849 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5850
5851         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5852         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5853         operand 0 constraint, not "=".
5854
5855 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5856
5857         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5858
5859 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5860
5861         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5862         of size of positions_needed * CHAR_BIT.
5863
5864 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5865
5866         PR middle-end/35897
5867         * dse.c (store_info): Change positions_needed to unsigned
5868         HOST_WIDE_INT.
5869         (lowpart_bitmask): New.
5870         (record_store): Cast to unsigned HOST_WIDE_INT for
5871         positions_needed.  Assert width <= size of positions_needed *
5872         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5873         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5874         lowpart_bitmask to set mask.
5875
5876 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5877
5878         * config/bfin/constraints.md: New file.
5879         * config/bfin/bfin.md: Include it.
5880         (adddi3): Use satisfies_constraint functions instead of the old macros.
5881         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5882         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5883         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5884         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5885         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5886         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5887         EXTRA_CONSTRAINT): Delete.
5888         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5889         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5890         of the old macros.
5891         * config/bfin/bfin.c: Include "tm-constrs.h".
5892         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5893         Use satisfies_constraint functions instead of the old macros.
5894         * doc/md.texi (Blackfin Constraints): Update file name reference.
5895
5896 2008-04-11  Richard Guenther  <rguenther@suse.de>
5897
5898         PR tree-optimization/35869
5899         * tree-vrp.c (execute_vrp): Move switch statement update after
5900         jump threading.  Schedule another cfg cleanup run.
5901
5902 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5903
5904         PR c/35744
5905         * attribs.c (decl_attributes): Return early on errorneous node.
5906
5907 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5908
5909         * tree.h (struct tree_base): Added a new flag default_def_flag.
5910         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5911
5912 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5913
5914         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5915
5916 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5917
5918         PR target/35768
5919         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5920         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5921         (icacheflush): Likewise.
5922         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5923         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5924
5925 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5926
5927         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5928
5929 2008-04-10  Rafael Espindola  <espindola@google.com>
5930
5931         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5932         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5933         (extract_range_from_expr): The same.
5934
5935 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5936
5937         * config/mips/mips.md (GPR2): New mode iterator.
5938         (seq): Add comment.
5939         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5940         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5941         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5942         Rewrite these to take two modes, the mode of comparison and the
5943         mode of the destination.
5944         * config/mips/mips.c (mips_expand_scc): Instead of having
5945         paradoxical subreg as destination, expand "narrowing" scc if mode
5946         of comparison is SI and target is requested in DI mode.
5947         (mips_emit_int_order_test): Update comment.  Make mode of
5948         comparison match CMP0 rather than TARGET.  When creating inverse
5949         target use mode of TARGET.
5950
5951 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5952
5953         * gcov-dump.c (tag_summary): Only print summaries for the first
5954         GCOV_COUNTERS_SUMMABLE counters.
5955
5956 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5957
5958         * config/i386/i386.md (absneg): New code iterator.
5959         (absnegprefix): New code attribute.
5960         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5961         patterns using absneg code iterator.
5962         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5963         using absneg code iterator.
5964         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5965         *neg<mode>2 patterns using absneg code iterator.
5966         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5967         *negextendsfdf2 patterns using absneg code iterator.
5968         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5969         *negextendsfxf2 patterns using absneg code iterator.
5970         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5971         *negextendsfdf2 patterns using absneg code iterator.
5972         * config/i386/sse.md (<code><mode>2): Macroize expander from
5973         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5974
5975 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5976
5977         * config/s390/s390.h: Remove the remains of the recent search
5978         & replace action of current_function_outgoing_args_size.
5979
5980 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5981
5982         PR tree-optimization/35821
5983         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5984         NEW_STMT_LIST is not NULL.
5985
5986 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5987
5988         PR libstdc++/35597
5989         * toplev.c (process_options): Remove -ffunction-sections debugging
5990         warning.
5991
5992 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5993
5994         PR middle-end/PR28690
5995         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5996         than gen_rtx_fmt_ee to perform more canonicalizations.
5997
5998 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5999
6000         PR driver/35665
6001         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
6002
6003 2008-04-09  Richard Guenther  <rguenther@suse.de>
6004
6005         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
6006         (dump_function_to_file): Dump function arguments with types.
6007
6008 2008-04-08  Richard Guenther  <rguenther@suse.de>
6009
6010         * fold-const.c (fold_widened_comparison): Do not allow
6011         sign-changes that change the result.
6012
6013 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
6014
6015         PR target/35839
6016         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
6017         kinds of indirect references.
6018
6019 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
6020
6021         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
6022         GNU Fortran language string.
6023
6024 2008-04-08  Rafael Espindola  <espindola@google.com>
6025
6026         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
6027         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
6028         * tree.h (tree_call_nonnegative_warnv_p): New.
6029
6030 2008-04-08  Jan Hubicka  <jh@suse.cz>
6031
6032         * function.c (free_after_compilation): Clear out regno_reg_rtx
6033         pointer.
6034
6035 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
6036
6037         Revert
6038         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6039
6040         PR middle-end/PR28690
6041         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
6042         same precedence as REG_POINTER and MEM_POINTER operands.
6043
6044 2008-04-08  Richard Guenther  <rguenther@suse.de>
6045
6046         PR middle-end/35834
6047         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
6048         for adding index to base.
6049
6050 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
6051
6052         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
6053         (MINGW_ENABLE_EXECUTE_STACK): New.
6054         (IN_LIBGCC2): For libgcc include windows.h file for
6055         function declarations.
6056
6057 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
6058
6059         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
6060         and tem2 if tem1 is not a REG or MULT.
6061
6062 2008-04-08  Jan Hubicka  <jh@suse.cz>
6063
6064         * function.h (incomming_args): Break out of struct function.
6065         (function_subsections): Break out of struct function.
6066         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
6067         return_rtx and hard_reg_initial_vals from struct function.
6068         Kill inl_max_label_num.
6069         (current_function_pops_args, current_function_args_info,
6070         current_function_args_size, current_function_args_size,
6071         current_function_pretend_args_size,
6072         current_function_outgoing_args_size,
6073         current_function_internal_arg_pointer, current_function_return_rtx):
6074         Kill compatibility accestor macros.
6075         * builtins.c (expand_builtin_apply_args_1): Update.
6076         (expand_builtin_next_arg): Update.
6077         * df-scan.c (df_get_call_refs): Update.
6078         * dbxout.c (dbxout_function_end): Update.
6079         * dwarf2out.c (dwarf2out_switch_text_section): Update.
6080         (output_line_info): Update.
6081         (secname_for_decl): Update.
6082         (dwarf2out_var_location): Update.
6083         * function.c (free_after_compilation): Update.
6084         (assign_parm_find_stack_rtl): Update.
6085         (assign_parms): Update.
6086         (expand_dummy_function_end): Update.
6087         (expand_function_end): Update.
6088         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
6089         (expand_call): Update.
6090         (emit_library_call_value_1): Update.
6091         (store_one_arg): Update.
6092         * varasm.c (initialize_cold_section_name): Update.
6093         (unlikely_text_section): Update.
6094         (unlikely_text_section_p): Update.
6095         (assemble_start_function): Update.
6096         (assemble_end_function): Update.
6097         (default_section_type_flags): Update.
6098         (switch_to_section): Update.
6099         * integrate.c (set_decl_abstract_flags): Update.
6100         (get_hard_reg_initial_val): Update.
6101         (has_hard_reg_initial_val): Update.
6102         (allocate_initial_values): Update.
6103         * resource.c (init_resource_info): Update.
6104         * config/alpha/alpha.c (NUM_ARGS): Update.
6105         (direct_return): Update.
6106         (alpha_va_start): Update.
6107         (alpha_sa_size): Update.
6108         (alpha_initial_elimination_offset): Update.
6109         (alpha_expand_prologue): Update.
6110         (alpha_start_function): Update.
6111         (alpha_expand_epilogue): Update.
6112         (unicosmk_initial_elimination_offset):
6113         * config/alpha/alpha.md (call expander): Update.
6114         * config/s390/s390.c (s390_register_info): Update.
6115         (s390_register_info): Update.
6116         (s390_frame_info): Update.
6117         (s390_initial_elimination_offset): Update.
6118         (s390_build_builtin_va_list): Update.
6119         (s390_va_start): Update.
6120         * config/spu/spu.c (direct_return): Update.
6121         (spu_expand_prologue): Update.
6122         (spu_initial_elimination_offset): Update.
6123         (spu_build_builtin_va_list): Update.
6124         (spu_va_start): Update.
6125         * config/sparc/sparc.c (sparc_init_modes): Update.
6126         (sparc_compute_frame_size): Update.
6127         (function_value): Update.
6128         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
6129         * config/i386/i386.md (return expander): Update.
6130         * config/i386/i386.c (ix86_va_start): Update.
6131         (ix86_can_use_return_insn_p): Update.
6132         (ix86_compute_frame_layout): Update.
6133         (ix86_expand_epilogue): Update.
6134         * config/sh/sh.c (output_stack_adjust): Update.
6135         (calc_live_regs): Update.
6136         (sh_expand_prologue): Update.
6137         (sh_builtin_saveregs): Update.
6138         (sh_va_start): Update.
6139         (initial_elimination_offset): Update.
6140         (sh_allocate_initial_value): Update.
6141         (sh_function_ok_for_sibcall): Update.
6142         (sh_get_pr_initial_val): Update.
6143         * config/sh/sh.md (return expander): Update.
6144         * config/avr/avr.c (frame_pointer_required_p): UPdate.
6145         * config/crx/crx.c (crx_compute_frame): UPdate.
6146         (crx_initial_elimination_offset): UPdate.
6147         * config/xtensa/xtensa.c (compute_frame_size): Update
6148         (xtensa_builtin_saveregs): Update.
6149         (xtensa_va_start): Update.
6150         (order_regs_for_local_alloc): Update.
6151         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
6152         (xstormy16_expand_builtin_va_start): Update.
6153         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
6154         * config/m68hc11/m68hc11.md (return expanders): Update.
6155         * config/m68hc11/m68hc11.c (expand_prologue): Update.
6156         (expand_epilogue): Update.
6157         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
6158         (cris_simple_epilogue): Update.
6159         (cris_expand_prologue): Update.
6160         (cris_expand_epilogue): Update.
6161         * config/iq2000/iq2000.c (iq2000_va_start): Update.
6162         (compute_frame_size): Update.
6163         * config/mt/mt.c (mt_compute_frame_size): Update.
6164         * config/mn10300/mn10300.c (expand_prologue): Update.
6165         (expand_epilogue): Update.
6166         (initial_offset): Update.
6167         (mn10300_builtin_saveregs):
6168         * config/mn10300/mn10300.md (return expander): Update.
6169         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6170         (ia64_initial_elimination_offset): Update.
6171         (ia64_initial_elimination_offset): Update.
6172         (ia64_expand_prologue): Update.
6173         * config/m68k/m68k.md (return expander): Update.
6174         * config/rs6000/rs6000.c (rs6000_va_start): Update.
6175         (rs6000_stack_info): Update.
6176         * config/mcore/mcore.c (layout_mcore_frame): Update.
6177         (mcore_expand_prolog): Update.
6178         * config/arc/arc.c (arc_compute_frame_size): Update.
6179         * config/score/score3.c (score3_compute_frame_size): Update.
6180         * config/score/score7.c (score7_compute_frame_size): Update.
6181         * config/arm/arm.c (use_return_insn): Update.
6182         (thumb_find_work_register): Update.
6183         (arm_compute_save_reg_mask): Update.
6184         (arm_output_function_prologue): Update.
6185         (arm_output_epilogue): Update.
6186         (arm_size_return_regs): Update.
6187         (arm_get_frame_offsets): Update.
6188         (arm_expand_prologue): Update.
6189         (thumb_exit): Update.
6190         (thumb_unexpanded_epilogue): Update.
6191         (thumb1_output_function_prologue): Update.
6192         * config/pa/pa.md (return expander): Update.
6193         * config/pa/pa.c (compute_frame_size): Update.
6194         (hppa_builtin_saveregs): Update.
6195         * config/mips/mips.c (mips_va_start): Update.
6196         (mips16_build_function_stub): Update.
6197         (mips_compute_frame_info): Update.
6198         (mips_restore_gp): Update.
6199         (mips_output_function_prologue): Update.
6200         (mips_expand_prologue): Update.
6201         * config/v850/v850.c (compute_frame_size): Update.
6202         (expand_prologue): * config/mmix/mmix.c (along): update.
6203         (mmix_initial_elimination_offset): update.
6204         (mmix_reorg): update.
6205         (mmix_use_simple_return): update.
6206         (mmix_expand_prologue): update.
6207         (mmix_expand_epilogue): Update.
6208         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
6209         (emit_link_insn): Update.
6210
6211 2008-04-08  Anatoly Sokolov <aesok@post.ru>
6212
6213         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
6214         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
6215         instructions.
6216         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
6217         atmega103 device.
6218
6219 2008-04-07  Jan Hubicka  <jh@suse.cz>
6220
6221         * function.h (rtl): Rename to x_rtl.
6222         (crtl): New define.
6223         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6224         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6225         used_temp_slots avail_temp_slots, temp_slot_level,
6226         nonlocal_goto_handler_labels): Update accesstors.
6227         (rtl): New global variable.
6228         (struct function): Move some fileds to rtl_data.
6229         (get_arg_pointer_save_area): Update prototype.
6230         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6231         get_arg_pointer_save_area.
6232         * expr.c (init_expr): Update
6233         * function.c (get_frame_size): Update
6234         (assign_stack_local): Update
6235         (expand_function_end): Update.
6236         (get_art_pointer_save_area): Update
6237         * function.h 
6238         * emit-rtl.c (rtl): Declare.
6239         (regno_reg_rtx): Declare.
6240         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6241         Update.
6242         (gen_reg_rtx): Update.
6243         * varasm.c (n_deferred_constatns): Update accestor.
6244         (init_varasm_status): Do not allocate varasm_status.
6245         (force_const_mem, get_pool_size, output_constant_pool): Update.
6246         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6247         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6248         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
6249         * sparc/sparc.h (INIT_EXPANDERS): Update.
6250         * ia64/ia64.h (INIT_EXPANDERS): Update.
6251
6252 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
6253
6254         * reload.c (push_secondary_reload): Add missing break to for loop.
6255
6256 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6257
6258         PR middle-end/PR28690
6259         * rtlanal.c: Update copyright years.
6260         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
6261         as REG_POINTER and MEM_POINTER operands.
6262         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
6263         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
6264         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
6265         * gcse.c: Update copyright years.
6266         (pre_delete): Call gen_reg_rtx_and_attrs.
6267         (hoist_code): Likewise.
6268         (build_store_vectors): Likewise.
6269         (delete_store): Likewise.
6270         * loop-invariant.c (move_invariant_reg): Likewise.
6271         Update copyright years.
6272
6273 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
6274
6275         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
6276         control string instead of quoted.
6277
6278 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
6279
6280         * doc/rtl.texi: Rewrite of subreg section.
6281
6282 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
6283
6284         PR/35842
6285         * config/i386/i386.c (legitimize_pic_address): Add treating
6286         of dllimport SYM_REF's.
6287         (legitimize_dllimport_symbol): Add prototype.
6288
6289 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6290
6291         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
6292         reference in constructor with non self-referential type.
6293
6294 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6295
6296         Removal of Return with Depressed Stack Pointer support
6297         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
6298         (ECF_SP_DEPRESSED): Likewise.
6299         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
6300         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
6301         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6302         (expand_call): Do not test ECF_SP_DEPRESSED.
6303         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6304         * function.c (keep_stack_depressed): Delete.
6305         (handle_epilogue_set): Likewise.
6306         (update_epilogue_consts): Likewise.
6307         (emit_equiv_load): Likewise.
6308         (thread_prologue_and_epilogue_insns): Remove support for Return with
6309         Depressed Stack Pointer.
6310         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6311
6312 2008-04-06  Richard Guenther  <rguenther@suse.de>
6313
6314         PR tree-optimization/35400
6315         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
6316         information from SSA_NAMEs.
6317
6318 2008-04-06  Anatoly Sokolov <aesok@post.ru>
6319
6320         * config/avr/avr.h (avr_mega_p): Remove declaration.
6321         (AVR_MEGA): Remove macro.
6322         * config/avr/avr.c (avr_mega_p): Remove variable.
6323         (avr_override_options): Remove inicializion of avr_mega_p.
6324         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6325         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6326         (avr_jump_mode): (Ditto.).
6327         (avr_output_progmem_section_asm_op): (Ditto.).
6328         (avr_asm_init_sections): (Ditto.).
6329         (avr_asm_init_sections): (Ditto.).
6330         (avr_rtx_costs): (Ditto.).
6331         * config/avr/avr.md: (Ditto.).
6332         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
6333         '__AVR_MEGA__'.
6334
6335 2008-04-06  Richard Guenther  <rguenther@suse.de>
6336
6337         PR tree-optimization/35842
6338         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
6339         is_gimple_invariant_address.
6340
6341 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6342
6343         * gcc.c (default_compilers): Sync Fortran extensions list with
6344         that in fortran/lang-specs.h.
6345         * doc/invoke.texi: Likewise.
6346         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
6347         * dwarf2out.c (gen_compile_unit_die): Likewise.
6348
6349 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
6350
6351         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
6352
6353 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
6354
6355         PR target/12329
6356         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
6357         attribute is used for nested functions.
6358
6359 2008-04-05  Jan Hubicka  <jh@suse.cz>
6360
6361         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
6362
6363         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
6364         letter argument.
6365         (dump_files): Update.
6366         (enable_rtl_dump_file): Do not accept letter argument.
6367         * tree-pass.h (dump_file_info): Remove letter argument.
6368         * toplev.c (decode_d_option): Update -da handling.
6369         * toplev.h (enable_rtl_dump_file): Update prototype.
6370         * passes.c (register_one_dump_file): Do not accept IPA argument; work
6371         it out based on pass type.
6372         (register_dump_files_1): Likewise.
6373         (init_optimization_passes): Update register_one_dump_file calls.
6374         (execute_one_pass): Sanity check that IPA passes are called at IPA
6375         level and RTL passes at RTL level.
6376         (execute_pass_list): IPA pass can not be after or subpass of
6377         GIMPLE/RTL pass.
6378         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
6379         disallov RTL subpasses of IPA subpasses.
6380
6381 2008-04-05  Ben Elliston  <bje@au.ibm.com>
6382
6383         * tree-cfg.c (need_fake_edge_p): Return false for calls to
6384         builtins that return exactly once and do not throw. Cache call to
6385         call_expr_flags.
6386
6387 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
6388
6389         PR rtl-optimization/34916
6390         PR middle-end/35519
6391         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
6392         between instruction pairs.
6393
6394 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
6395
6396         * doc/invoke.texi: Document -mbitops for SH.
6397         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
6398         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
6399         * config/sh/sh.c (print_operand): Add %t operand code.
6400         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
6401         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
6402         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
6403         (extendqihi2): Likewise.
6404         (movqi_i): Likewise.
6405         (insv): Use bset, bclr and bst instructions for SH2A if possible.
6406         (extv): Use bld instruction for SH2A if possible.
6407         (extzv): Likewise.
6408         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
6409         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
6410         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
6411         (bset.b, bclr.b): Define peepholes.
6412         * config/sh/sh.opt (mbitops): New option.
6413
6414 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
6415
6416         PR target/35620
6417         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
6418         and view convert expression.
6419
6420 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6421
6422         PR target/35364
6423         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6424
6425 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
6426
6427         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6428
6429         * config/i386/cpuid.h (bit_AES): New.
6430         (bit_PCLMUL): Likewise.
6431
6432         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6433         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
6434         SSE2 if AES or PCLMUL is enabled.
6435         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6436         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6437         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6438         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6439         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6440         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6441         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6442         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6443         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6444         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6445         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6446         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6447         __builtin_ia32_aeskeygenassist128 and
6448         __builtin_ia32_pclmulqdq128.
6449         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6450         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6451         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
6452
6453         * config/i386/i386.h (TARGET_AES): New.
6454         (TARGET_PCLMUL): Likewise.
6455         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6456
6457         * config/i386/i386.md (UNSPEC_AESENC): New.
6458         (UNSPEC_AESENCLAST): Likewise.
6459         (UNSPEC_AESDEC): Likewise.
6460         (UNSPEC_AESDECLAST): Likewise.
6461         (UNSPEC_AESIMC): Likewise.
6462         (UNSPEC_AESKEYGENASSIST): Likewise.
6463         (UNSPEC_PCLMUL): Likewise.
6464
6465         * config/i386/i386.opt (maes): New.
6466         (mpclmul): Likewise.
6467
6468         * config/i386/sse.md (aesenc): New pattern.
6469         (aesenclast): Likewise.
6470         (aesdec): Likewise.
6471         (aesdeclast): Likewise.
6472         (aesimc): Likewise.
6473         (aeskeygenassist): Likewise.
6474         (pclmulqdq): Likewise.
6475
6476         * config/i386/wmmintrin.h: New.
6477
6478         * doc/extend.texi: Document AES and PCLMUL built-in function.
6479
6480         * doc/invoke.texi: Document -maes and -mpclmul.
6481
6482 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6483
6484         * function.c (free_after_parsing): Replace with
6485         cxx_push_function_context from C++ front-end.
6486         (allocate_struct_function): Don't call langhook.
6487         * langhooks.h (struct lang_hooks_for_functions): Delete.
6488         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6489         member "function".
6490         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6491         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6492         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6493         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6494         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6495         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6496         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6497
6498         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6499         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6500         
6501 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6502
6503         PR c/35440
6504         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6505         for all types.
6506
6507 2008-04-04  Richard Guenther  <rguenther@suse.de>
6508
6509         PR middle-end/35823
6510         * fold-const.c (optimize_minmax_comparison): Use the correct
6511         type for the constant in the simplified comparison.
6512
6513 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6514
6515         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6516         Pass L2 size as "--param l2-cache-size" to the compiler.
6517         (decode_l2_cache): New function to decode L2 cache parameters using
6518         0x8000006 extended cpuid function.
6519         (detect_caches_amd): Determine parameters of L2 cache using
6520         decode_l2_caches function.
6521         (decode_caches_intel): Decode L2 cache parameters.
6522         (detect_caches_intel): Determine L2 cache parameters using
6523         decode_caches_intel and decode_l2_caches functions.
6524
6525 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6526
6527         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6528         secondary input reload for subword loads from the constant pool.
6529
6530 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6531
6532         PR target/35713
6533         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6534           constants of the appropriate size for runtime calculations.
6535
6536         PR c/35712
6537         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6538           decimal-float literal constant zero.
6539
6540 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6541
6542         PR c/35738
6543         * c-parser.c (c_parser_omp_atomic): Call
6544         default_function_array_conversion on the RHS.
6545
6546         PR middle-end/35818
6547         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6548         call is_variable_sized if decl has incomplete type.
6549
6550 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6551
6552         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6553
6554 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6555
6556         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6557         iterators.
6558         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6559         (sgt<u>): Merge sgt and sgtu into new expander.
6560         (sgt, sgtu): Remove expanders.
6561         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6562         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6563         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6564         *sgtu_<mode>_mips16 into new pattern.
6565         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6566         (sge<u>): Merge sge and sgeu into new expander.
6567         (sge, sgeu): Remove expanders.
6568         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6569         new pattern.
6570         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6571         (slt<u>): Merge slt and sltu into new expander.
6572         (slt, sltu): Remove expanders.
6573         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6574         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6575         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6576         *sltu_<mode>_mips16 into new pattern.
6577         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6578         (sle<u>): Merge sle and sleu into new expander.
6579         (sle, sleu): Remove expanders.
6580         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6581         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6582         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6583         *sleu_<mode>_mips16 into new pattern.
6584         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6585
6586 2008-04-03  Jan Hubicka  <jh@suse.cz>
6587
6588         PR tree-optimization/35795
6589         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6590         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6591         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6592         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6593         * score/score3.c (score3_output_mi_thunk): Likewise.
6594         * score/score7.c (score7_output_mi_thunk): Likewise.
6595         * mips/mips.c (mips_output_mi_thunk): Likewise.
6596
6597 2008-04-03  Richard Guenther  <rguenther@suse.de>
6598
6599         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6600         conversions.  Simplify code.
6601
6602 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6603
6604         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6605
6606 2008-04-03  Tom Tromey  <tromey@redhat.com>
6607             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6608
6609         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6610         * config/bfin/t-bfin-linux (generated_files): Add
6611         linux-sysroot-suffix.h.
6612         * doc/install.texi (Prerequisites): Require make 3.80.
6613         * doc/sourcebuild.texi (Front End Directory): Document new
6614         variable.
6615         * Makefile.in (generated_files): New variable.
6616         (ALL_HOST_OBJS): New variable.
6617         ($(ALL_HOST_OBJS)): New target.
6618
6619 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6620
6621         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6622         (remap_block): Call id->transform_lang_insert_block instead
6623         of langhook.
6624         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6625         Set id.transform_lang_insert_block to NULL.
6626         (clone_body): Move to cp/optimize.c
6627         * tree-inline.h (struct copy_body_data): Change
6628         transform_lang_insert_block to function pointer.
6629         (copy_generic_body, copy_decl_no_change): Export.
6630         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6631         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6632         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6633
6634         * c-tree.h (insert_block): Kill.
6635         * c-decl.c (insert_block): Kill.
6636
6637 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6638
6639         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6640         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6641         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6642         argument.
6643         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6644         argument, call {push,pop}_function_context from here.
6645         * c-parser.c: Use c_{push,pop}_function_context.
6646
6647         * function.c (push_function_context_to): Move meat ...
6648         (push_function_context): ... here.  Simplify.
6649         * function.c (pop_function_context_from): Move meat ...
6650         (pop_function_context): ... here.  Simplify.
6651         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6652         leave_nested).
6653         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6654         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6655         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6656         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6657
6658 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6659
6660         * expmed.c (extract_force_align_mem_bit_field): Remove.
6661
6662 2008-04-03  Richard Guenther  <rguenther@suse.de>
6663
6664         PR middle-end/35800
6665         * expr.h (try_casesi): Adjust prototype.
6666         * expr.c (try_casesi): Take fallback label as extra parameter.
6667         Use that for gen_casesi if default_label is NULL.
6668         * stmt.c (expand_case): Pass fallback label to try_casesi,
6669         make sure to fill gaps with a fallback label if default_label
6670         is not present.
6671
6672 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6673
6674         PR target/35801
6675         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6676
6677 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6678
6679         * expmed.c (extract_split_bit_field): Remove if (0) code.
6680         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6681         (do_ds_constraint): Likewise.
6682
6683 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6684
6685         * doc/cppopts.texi (-dU): Document.
6686         * c-common.h (flag_dump_macros): Update comment.
6687         * c-opts.c (handle_OPT_d): Handle -dU.
6688         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6689         dump_queued_macros, cb_used_define, cb_used_undef): New.
6690         (init_pp_output): Handle -dU.
6691         (cb_line_change): Call dump_queued_macros.
6692         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6693
6694 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6695
6696         * config/avr/predicates.md (io_address_operand): New predicate. 
6697         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6698         * config/avr/avr.c (avr_io_address_p): Remove function.
6699         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6700         'avr_io_address_p' function.
6701         (out_movhi_r_mr): (Ditto.).
6702         (out_movqi_mr_r): (Ditto.).
6703         (out_movhi_mr_r): (Ditto.).
6704         (avr_address_cost): (Ditto.).
6705
6706 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6707
6708         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6709         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6710         in 32bit mode when XMM registers are available to avoid store
6711         forwarding stalls.
6712         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6713         corresponding post-reload splitters.
6714
6715 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6716
6717         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6718         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6719         __builtin_ia32_roundss.
6720         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6721         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6722         __builtin_ia32_roundss.
6723         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6724         IX86_BUILTIN_SHUFPD here.
6725
6726 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6727
6728         * config/i386/i386.md (plogic): New.
6729         (plogicprefix): Likewise.
6730
6731         * config/i386/mmx.md (mmx_<code><mode>3): New.
6732         (mmx_and<mode>3): Removed.
6733         (mmx_ior<mode>3): Likewise.
6734         (mmx_xor<mode>3): Likewise.
6735
6736         * config/i386/sse.md (<code><mode>3): New.
6737         (*<code><mode>3): Likewise.
6738         (*<code><mode>3): Likewise.
6739         (<code><mode>3): Likewise.
6740         (*sse_<code><mode>3): Likewise.
6741         (*sse2_<code><mode>3): Likewise.
6742         (<code>tf3): Likewise.
6743         (*<code>tf3): Likewise.
6744         (and<mode>3): Likewise.
6745         (*and<mode>3): Likewise.
6746         (ior<mode>3): Removed.
6747         (*ior<mode>3): Likewise.
6748         (xor<mode>3): Likewise.
6749         (*xor<mode>3): Likewise.
6750         (*and<mode>3): Likewise.
6751         (*ior<mode>3): Likewise.
6752         (*xor<mode>3): Likewise.
6753         (and<mode>3): Likewise.
6754         (*sse_and<mode>3): Likewise.
6755         (*sse2_and<mode>3): Likewise.
6756         (andtf3): Likewise.
6757         (*andtf3): Likewise.
6758         (ior<mode>3): Likewise.
6759         (*sse_ior<mode>3): Likewise.
6760         (*sse2_ior<mode>3): Likewise.
6761         (iortf3): Likewise.
6762         (*iortf3): Likewise.
6763         (xor<mode>3): Likewise.
6764         (*sse_xor<mode>3): Likewise.
6765         (*sse2_xor<mode>3): Likewise.
6766         (xortf3): Likewise.
6767         (*xortf3): Likewise.
6768
6769 2008-04-02  Richard Guenther  <rguenther@suse.de>
6770
6771         PR tree-optimization/14495
6772         PR tree-optimization/34793
6773         * tree-vrp.c (struct switch_update): New structure.
6774         (to_remove_edges, to_update_switch_stmts): New VECs.
6775         (simplify_switch_using_ranges): New function.  Remove not taken
6776         case labels and edges.
6777         (simplify_stmt_using_ranges): Call it.
6778         (identify_jump_threads): Mark edges we have queued for removal
6779         so we don't thread them.
6780         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6781         case label vector.
6782         * tree-cfg.c (group_case_labels): Deal with missing default label.
6783         (tree_verify_flow_info): Allow missing default label.
6784         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6785         (emit_case_nodes): Likewise.
6786         (expand_case): Do not rely on the default label to be present.
6787         * expr.c (try_casesi): Deal with NULL default_label.
6788         (do_tablejump): Likewise.
6789
6790 2008-04-02  Richard Guenther  <rguenther@suse.de>
6791
6792         PR tree-optimization/14495
6793         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6794         SWITCH_EXPR here ...
6795         (vrp_visit_switch_stmt): ... but here (new function).
6796         (find_case_label_index): New helper function.
6797         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6798
6799 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6800
6801         * fwprop.c: Fix ISO-C99ism.
6802
6803 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6804
6805         PR bootstrap/35752
6806         * Makefile.in (objdir): Set it here.
6807         * configure.ac: Not here.  Find dynamic linker characteristics.
6808         * exec-tool.in: Use them.
6809         * aclocal.m4: Regenerate.
6810         * configure: Regenerate.
6811
6812 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6813
6814         * expr.c (expand_var): Delete it.
6815         * expr.h (expand_var): Delete prototype.
6816         * function.c (expand_function_start): Use expand_decl instead.
6817         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6818         langhook.
6819
6820 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6821
6822         PR rtl-optimization/35542
6823         * fwprop.c (forward_propagate_and_simplify): Replace
6824         loc_reg_mentioned_in_p with reg_mentioned_p.
6825
6826 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6827
6828         PR rtl-optimization/35281
6829         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6830         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6831         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6832         (varying_mem_p): Move above propagate_rtx.
6833         (all_uses_available_at): Do not check MEMs.
6834
6835 2008-04-02  Rafael Espindola  <espindola@google.com>
6836
6837         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6838         (register_edge_assert_for_2): Split the cond argument.
6839         (register_edge_assert_for_1): Adjust for the change in
6840         register_edge_assert_for_2.
6841         (register_edge_assert_for): Split the cond argument.
6842         (find_switch_asserts): Adjust for the change in
6843         register_edge_assert_for.
6844
6845 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6846
6847         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6848         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6849         offsets for 64-bit mingw.
6850         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6851         abi for x86_64-pc-mingw.
6852
6853 2008-04-02  Richard Guenther  <rguenther@suse.de>
6854
6855         * tree-vrp.c (extract_range_from_assert): Make sure to not
6856         produce range min/max with TREE_OVERFOW set.
6857         If merging a anti-range and a range keep the anti-range if
6858         the range covers all values of the type.
6859         (register_edge_assert_for_2): Only allow sign-changing
6860         conversions in detecting canonical range checks.  Also
6861         register an assert for the unsigned name if useful.
6862
6863         PR tree-optimization/35787
6864         * tree-vrp.c (vrp_val_max): New function.
6865         (vrp_val_min): Likewise.
6866         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6867         (vrp_val_is_min): Likewise.
6868         (supports_overflow_infinity): Use vrp_val_{min,max}.
6869         (negative_overflow_infinity): Likewise.
6870         (positive_overflow_infinity): Likewise.
6871         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6872         (is_positive_overflow_infinity): Likewise.
6873         (is_overflow_infinity): Likewise.
6874         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6875         vrp_val_is_{min,max}.
6876         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6877         to ranges if possible.  Avoid empty ranges.
6878
6879 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6880
6881         PR middle-end/35705
6882         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6883         the expression is a function address.
6884
6885 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6886
6887         PR fortran/35154, fortran/23057
6888         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6889         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6890         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6891         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6892         in common.
6893         (dbxout_syms): Check for COMMON-based symbol and wrap in
6894         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6895         in bracket for efficiency.
6896
6897         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6898         using DW_TAG_common_block + member offset.
6899         (add_pubname_string): New function.
6900         (dw_expand_expr): New function to find block name and offset for
6901         COMMON var.
6902         (common_check): New function to check whether symbol in Fortran COMMON.
6903         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6904
6905 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6906
6907         PR c/35436
6908         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6909
6910 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6911
6912         * config/v850/v850.md (casesi): Remove if (0) code.
6913         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6914         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6915
6916 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6917
6918         * config/i386/i386.md (rex64suffix): New mode attribute.
6919         (floathi<mode>2): Disable expander for SSE math.
6920         (*floathi<mode>2_1): New insn insn_and_split pattern.
6921         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6922         corresponding post-reload splitters.
6923         (*floathi<mode>2_i387): New macroized insn pattern.
6924         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6925         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6926         insn_and_split pattern.
6927         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6928         New macroized instruction patterns and corresponding post-reload
6929         splitters.
6930         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6931         and corresponding post-reload splitters.
6932         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6933         New macroized instruction patterns.
6934         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6935         macroized instruction patterns and corresponding post-reload splitters.
6936         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6937         corresponding post-reload splitters.
6938         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6939         New macroized instruction patterns.
6940         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6941         corresponding post-reload splitters.
6942         (*floatsi<mode>2_i387): New macroized instruction patterns.
6943
6944 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6945
6946         * config/i386/i386.md (smaxmin): New.
6947         (umaxmin): Likewise.
6948         (maxminiprefix): Likewise.
6949         (maxminfprefix): Likewise.
6950         (<code><mode>3): Likewise.
6951         (smin<mode>3): Removed.
6952         (smax<mode>3): Likewise.
6953
6954         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6955         (mmx_<code>v4hi3): Likewise.
6956         (mmx_<code>v8qi3): Likewise.
6957         (mmx_smaxv2sf3): Removed.
6958         (mmx_sminv2sf3): Likewise.
6959         (mmx_umaxv8qi3): Likewise.
6960         (mmx_smaxv4hi3): Likewise.
6961         (mmx_uminv8qi3): Likewise.
6962         (mmx_sminv4hi3): Likewise.
6963
6964         * config/i386/sse.md (<addsub><mode>3): New.
6965         (*<addsub><mode>3): Likewise.
6966         (<sse>_vm<addsub><mode>3): Likewise.
6967         (<maxmin><mode>3): Likewise.
6968         (*<maxmin><mode>3_finite): Likewise.
6969         (*<maxmin><mode>3): Likewise.
6970         (<sse>_vm<maxmin><mode>3): Likewise.
6971         (sse3_h<addsub>v4sf3): Likewise.
6972         (sse3_h<addsub>v2df3): Likewise.
6973         (<maxmin>v16qi3): Likewise.
6974         (*<maxmin>v16qi3): Likewise.
6975         (<maxmin>v8hi3): Likewise.
6976         (*<maxmin>v8hi3): Likewise.
6977         (*sse4_1_<maxmin><mode>3): Likewise.
6978         (*sse4_1_<maxmin><mode>3): Likewise.
6979         (add<mode>3): Removed.
6980         (*add<mode>3): Likewise.
6981         (<sse>_vmadd<mode>3): Likewise.
6982         (sub<mode>3): Likewise.
6983         (*sub<mode>3): Likewise.
6984         (<sse>_vmsub<mode>3): Likewise.
6985         (smin<mode>3): Likewise.
6986         (*smin<mode>3_finite): Likewise.
6987         (*smin<mode>3): Likewise.
6988         (<sse>_vmsmin<mode>3): Likewise.
6989         (smax<mode>3): Likewise.
6990         (*smax<mode>3_finite): Likewise.
6991         (*smax<mode>3): Likewise.
6992         (<sse>_vmsmax<mode>3): Likewise.
6993         (sse3_haddv4sf3): Likewise.
6994         (sse3_haddv2df3): Likewise.
6995         (sse3_hsubv4sf3): Likewise.
6996         (sse3_hsubv2df3): Likewise.
6997         (umaxv16qi3): Likewise.
6998         (*umaxv16qi3): Likewise.
6999         (smaxv8hi3): Likewise.
7000         (*smaxv8hi3): Likewise.
7001         (*sse4_1_smax<mode>3): Likewise.
7002         (*sse4_1_umax<mode>3): Likewise.
7003         (uminv16qi3): Likewise.
7004         (*uminv16qi3): Likewise.
7005         (sminv8hi3): Likewise.
7006         (*sminv8hi3): Likewise.
7007         (*sse4_1_smin<mode>3): Likewise.
7008         (*sse4_1_umin<mode>3): Likewise.
7009
7010 2008-04-01  Rafael Espindola  <espindola@google.com>
7011
7012         * tree-cfg.c (verify_expr): remove in_phi.
7013         (verify_stmt): Don't call walk_tree with verify_expr. Use
7014         is_gimple_min_invariant instead of is_gimple_val.
7015
7016 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
7017
7018         * doc/include/gpl_v3.texi: Update for manpage generation.
7019         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
7020         gpl.texi.
7021         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
7022         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
7023         gpl_v3.texi instead of gpl.texi.
7024         (gpl.pod): New.
7025
7026 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
7027
7028         PR pch/13675
7029         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
7030
7031 2008-04-01  Rafael Espindola  <espindola@google.com>
7032
7033         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
7034         (extract_code_and_val_from_cond): Use
7035         extract_code_and_val_from_cond_with_ops.
7036
7037 2008-04-01  Jan Hubicka  <jh@suse.cz>
7038
7039         * function.c (free_after_compilation): Free epilogue_delay_list.
7040         (prepare_function_start): Assert that previous compilation was freed.
7041
7042 2008-04-01  Jan Hubicka  <jh@suse.cz>
7043             Jim Wilson  <wilson@tuliptree.org>
7044             Andreas Tobler <andreast@gcc.gnu.org>
7045
7046         PR middle-end/35781
7047         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
7048         rtl.emit instead cfun->emit.
7049         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
7050         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
7051
7052 2008-04-01  Ben Elliston  <bje@au.ibm.com>
7053
7054         * doc/c-tree.texi (Function Basics): Fix grammatical error.
7055
7056 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
7057
7058         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
7059         New options
7060         (fprofile-use): Add var flag_profile_use
7061         * coverage.c (coverage_begin_output): Do not open a gcno file for
7062         output only if -ftest-coverage is set.
7063         Do not add getpwd() to gcda file path.
7064         (build_gcov_info): Check the new flag
7065         flag_profile_datafile_relative_path.
7066         (coverage_init): Use profile_data_prefix.
7067         Read profile counter only if flag_profile_use is set.
7068         * opts.c (common_handle_option): New option fprofile-use=,
7069         fprofile-dir=, fprofile-generate=.
7070         * toplev.c (profile_data_prefix): New variable definition.
7071         * toplev.h (profile_data_prefix): New declaration.
7072         * doc/invoke.tex (Option Summary, Optimization Options):
7073         Add new options.
7074
7075 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
7076
7077         * varasm.c (output_constant_pool_1): In LABEL_REF check,
7078         use tmp consistently.
7079
7080         PR target/35695
7081         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
7082         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7083         UNSPEC_FR_RECIP_APPROX_RES.
7084         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
7085
7086 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
7087
7088         PR c/35750
7089         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
7090
7091 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7092
7093         PR middle-end/30186
7094         * fold-const.c (fold_indirect_ref_1): Support accessing non first
7095         element of the vector via a pointer.
7096
7097 2008-03-31  Ian Lance Taylor  <iant@google.com>
7098
7099         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
7100
7101 2008-03-31  Jan Hubicka  <jh@suse.cz>
7102
7103         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7104         get_arg_pointer_save_area.
7105         * expr.c (init_expr): Just clear out rtl.expr.
7106         * function.c (free_after_compilation): Clear out whole RTL structure.
7107         (get_func_frame_size): Merge into ...
7108         (get_frame_size): ... this one.
7109         (assign_stack_local_1): Merge into ...
7110         (assign_stack_local): ... this one.
7111         (expand_function_end): Update call of get_arg_pointer_save_area.
7112         (get_art_pointer_save_area): Remove cfun argument.
7113         * function.h (emit_status): regno_pointer_align does not need length
7114         attribute. Move x_regno_reg_rtx to ...
7115         (regno_reg_rtx): ... new global array.
7116         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
7117         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
7118         apply_args_value, forced_labels, stack_pointer_delta):
7119         Update accestors.
7120         (struct varasm_status): Move here from varasm.c
7121         (struct rtl_data): New. Move here some fields from struct function.
7122         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7123         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7124         used_temp_slots avail_temp_slots, temp_slot_level,
7125         nonlocal_goto_handler_labels): Update accesstors.
7126         (rtl): New global variable.
7127         (struct function): Move some fileds to rtl_data.
7128         (get_arg_pointer_save_area): Update prototype.
7129         * emit-rtl.c (rtl): Declare.
7130         (regno_reg_rtx): Declare.
7131         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7132         Update.
7133         (gen_reg_rtx): Update.
7134         (init_virtual_regs): Do not tate emit_status argument.
7135         (init_emit): Do not allocate emit.
7136         * varasm.c (varasm_statuc): Move to function.h.
7137         (n_deferred_constatns): Update accestor.
7138         (init_varasm_status): Do not allocate varasm_status.
7139         (force_const_mem, get_pool_size, output_constant_pool): Update.
7140         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7141         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7142
7143 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
7144
7145         PR rtl-optimization/35729
7146         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
7147         references.
7148
7149 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7150
7151         PR target/32000
7152         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
7153         load/store if memory is unaligned.
7154         (*movti_rex64): Likewise.
7155
7156         * config/i386/predicates.md (misaligned_operand): New.
7157
7158 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
7159
7160         PR tree-opt/35431
7161         * tree-ssa-phiopt.c (conditional_replacement): Return early for
7162         complex types.
7163
7164 2008-03-31  Jan Beulich  <jbeulich@novell.com>
7165
7166         * config/ia64/constraints.md: Add 'j' constraint.
7167         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
7168         (movdi_internal): Likewise.
7169
7170 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
7171
7172         PR c/35748
7173         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
7174
7175 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7176
7177         PR target/35757
7178         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
7179         proper error message for the third argument on blendpd and
7180         blendps.
7181
7182         * config/i386/sse.md (blendbits): New.
7183         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
7184
7185 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7186
7187         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
7188
7189 2008-03-30  Richard Guenther  <rguenther@suse.de>
7190
7191         PR middle-end/31023
7192         * fold-const.c (fold_sign_changed_comparison): Do leave
7193         conversions to base-types alone.
7194
7195 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7196
7197         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
7198         the link register if one altivec register is be saved.
7199
7200 2008-03-30  Ben Elliston  <bje@au.ibm.com>
7201
7202         * final.c (final_scan_insn): Remove if (0) code.
7203
7204 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
7205
7206         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
7207
7208 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7209
7210         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
7211         of V4SFmode to ix86_binary_operator_ok.
7212
7213 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
7214
7215         * config/i386/i386.c (override_options): Initialize
7216         ix86_veclib_handler to ix86_veclibabi_svml when
7217         -mveclibabi=svml is used.
7218         (ix86_veclibabi_svml): New function for SVML ABI style
7219         vectorization support.
7220         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
7221
7222 2008-03-28  Rafael Espindola  <espindola@google.com>
7223
7224         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
7225         (tree_binary_nonnegative_warnv_p): Make it public.
7226         (tree_single_nonnegative_warnv_p): Make it public.
7227         (tree_invalid_nonnegative_warnv_p): Make it public.
7228         (tree_unary_nonzero_warnv_p): Make it public.
7229         (tree_binary_nonzero_warnv_p): Make it public
7230         (tree_single_nonzero_warnv_p): Make it public.
7231         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
7232         (extract_range_from_binary_expr): Split the expr argument.
7233         (extract_range_from_unary_expr): Split the expr argument.
7234         (extract_range_from_comparison): Split the expr argument.
7235         (extract_range_from_expr): Use the new aux functions.
7236         (vrp_evaluate_conditional_warnv): Use
7237         vrp_evaluate_conditional_warnv_with_ops.
7238         * tree.h (tree_unary_nonzero_warnv_p): Declare.
7239         (tree_binary_nonzero_warnv_p): Declare.
7240         (tree_single_nonzero_warnv_p): Declare.
7241         (tree_expr_nonzero_warnv_p): Declare.
7242         (tree_unary_nonnegative_warnv_p): Declare.
7243         (tree_binary_nonnegative_warnv_p): Declare.
7244         (tree_single_nonnegative_warnv_p): Declare.
7245         (tree_invalid_nonnegative_warnv_p): Declare.
7246
7247 2008-03-28  Richard Guenther  <rguenther@suse.de>
7248
7249         PR tree-optimization/30317
7250         PR tree-optimization/30911
7251         PR tree-optimization/34793
7252         * tree-vrp.c (set_and_canonicalize_value_range): New function.
7253         (struct assert_locus_d): New member EXPR.
7254         (register_new_assert_for): Add EXPR parameter to support
7255         ASSERT_EXPR <name, expr OP limit>.
7256         (register_edge_assert_for_1): Adjust callers.
7257         (find_assert_locations): Likewise.
7258         (process_assert_insertions_for): Build condition from expression.
7259         (extract_range_from_assert): Handle ASSERT_EXPRs
7260         of the form ASSERT_EXPR <name, expr OP limit>.
7261         (register_edge_assert_for_2): New helper registering
7262         asserts for comparisons.  Recognize range tests of the form
7263         (unsigned)i - CST1 OP CST2.
7264         (register_edge_assert_for_1): Use it.
7265         (register_edge_assert_for): Likewise.
7266         (needs_overflow_infinity): Integer sub-types
7267         do not need overflow infinities.
7268         (vrp_val_is_max): The extreme values of integer sub-types
7269         are those of the base type.
7270         (vrp_val_is_min): Likewise.
7271         * tree.def (ASSERT_EXPR): Document extra allowed conditional
7272         expressions.
7273
7274 2008-03-28  Nick Clifton  <nickc@redhat.com>
7275
7276         PR target/31110
7277         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
7278         Return GENERAL_REGS for stack adjustment reloads.
7279
7280 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7281
7282         PR target/31334
7283         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
7284         const_vector when all the vectors are constant.
7285
7286 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
7287
7288         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
7289         comparisons.
7290         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
7291         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
7292         (scc_sf): New.
7293         (s<code>_sf): Use new scc_sf attribute for opcode names.
7294
7295 2008-03-27  Tom Tromey  <tromey@redhat.com>
7296
7297         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
7298         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
7299         config/spu/t-spu-elf, config/i386/t-interix,
7300         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
7301         config/i386/x-darwin, config/i386/x-mingw32,
7302         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
7303         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
7304         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
7305         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
7306         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
7307         config/rs6000/x-darwin, config/rs6000/t-rs6000,
7308         config/score/t-score-elf, config/arm/t-strongarm-pe,
7309         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
7310         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
7311         Revert automatic dependency patch.
7312
7313 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7314
7315         PR target/35657
7316         * config/i386/i386.c (ix86_function_arg_boundary): Align
7317         decimal floating point to its natural boundary.
7318
7319 2008-03-27  Richard Guenther  <rguenther@suse.de>
7320
7321         PR middle-end/35716
7322         * fold-const.c (fold_comparison): Restrict distinct decl
7323         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
7324         solely rely on operand_equal_p.
7325
7326 2008-03-27  Richard Guenther  <rguenther@suse.de>
7327
7328         PR c/32511
7329         * c-common.c (handle_weak_attribute): Reject combination of
7330         weak and inline.
7331
7332 2008-03-27  Richard Guenther  <rguenther@suse.de>
7333
7334         PR tree-optimization/32810
7335         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
7336         conversions from DECL_INITIAL.
7337         (fold_const_aggregate_ref): Likewise from constructor elements.
7338
7339 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
7340
7341         * tree-affine.h (aff_combination_expand): Declare.
7342         (get_inner_reference_aff): Likewise.
7343         * tree-affine.c (aff_combination_expand): Split out from
7344         tree_to_aff_combination_expand.
7345         (get_inner_reference_aff): New function.
7346         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
7347         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
7348         (struct lim_aux_data): sm_done field removed.
7349         (mem_ref_loc_p, mem_ref_locs_p): New types.
7350         (struct mem_ref): Added id, stored, accesses_in_loop,
7351         indep_loop, dep_loop, indep_ref, dep_ref fields.
7352         Removed is_stored, locs and next fields.
7353         (memory_accesses): New variable.
7354         (movement_possibility): Do not allow moving statements
7355         that store to memory.
7356         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
7357         New functions.
7358         (determine_max_movement): For statements with memory references,
7359         find the outermost loop in that the reference is independent.
7360         (move_computations_stmt): Mark the virtual operands for renaming.
7361         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
7362         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
7363         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
7364         add_vop_ref_mapping, create_vop_ref_mapping_loop,
7365         create_vop_ref_mapping, analyze_memory_references,
7366         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
7367         get_all_locs_in_loop, ref_always_accessed_p,
7368         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
7369         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
7370         store_motion_loop, store_motion): New functions.
7371         (struct vop_to_refs_elt): New type.
7372         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
7373         memref_hash, memref_eq, hoist_memory_references): Rewritten.
7374         (schedule_sm): Replaced by...
7375         (execute_sm): ... this.
7376         (determine_lsm_ref, hoist_memory_references,
7377         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
7378         find_more_ref_vops, free_mem_ref, free_mem_refs,
7379         determine_lsm_loop, determine_lsm): Removed.
7380         (tree_ssa_lim_finalize): Free data structures used by store motion.
7381         (tree_ssa_lim): Call analyze_memory_references.  Use
7382         store_motion instead of determine_lsm.
7383
7384 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7385
7386         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
7387         rename tmake_file to m68hc11/t-m68hc11.
7388         (mcore): Set inhibit_libc to true.
7389         * config.host (alpha*-dec-*vms*): Set extra_programs.
7390         (interix3*): Don't use host_xmake_file.
7391         * configure.ac: Let config.gcc override inhibit_libc.
7392         * configure: Regenerate.
7393
7394         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
7395         * config/t-openbsd-thread: Remove commented out lines.
7396         
7397         * config/x-interix: Remove.
7398
7399         * config/m68hc11/t-m68hc11-gas: Rename to...
7400         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
7401
7402         * config/mcore/t-mcore: Remove T_CFLAGS.
7403         * config/mcore/t-mcore-pe: Likewise.
7404
7405 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7406
7407         * configure.ac: Replace custom __GNU_SOURCE test with
7408         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
7409         * aclocal.m4: Regenerate.
7410         * configure: Regenerate.
7411         * config.in: Regenerate.
7412
7413 2008-03-27  Richard Guenther  <rguenther@suse.de>
7414
7415         * fold-const.c (target.h): Include.
7416         (fold_comparison): Fold comparison of addresses of decls
7417         that bind locally or of constants.  Consolidate address folding code.
7418         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
7419         results from fold_binary_to_constant.
7420         (compare_values_warnv): Likewise.
7421
7422 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
7423
7424         PR middle-end/35429
7425         * fold-const.c (fold_truthop): Check for integeral types when folding
7426         a == 0 && b == 0 and a != 0 || b != 0 .
7427
7428 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7429
7430         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7431
7432 2008-03-26  Andreas Schwab  <schwab@suse.de>
7433
7434         * doc/invoke.texi: Fix use of @item vs. @itemx.
7435
7436 2008-03-26  Tom Tromey  <tromey@redhat.com>
7437
7438         * Makefile.in (build/gensupport.o, build/print-rtl.o,
7439         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7440         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7441         build/gencodes.o, build/genconditions.o, build/genconfig.o,
7442         build/genconstants.o, build/genemit.o, build/genextract.o,
7443         build/genflags.o, build/genmddeps.o, build/genopinit.o,
7444         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7445         options.h.
7446
7447 2008-03-26  Richard Guenther  <rguenther@suse.de>
7448
7449         Revert
7450         2008-03-26  Richard Guenther  <rguenther@suse.de>
7451
7452         * fold-const.c (target.h): Include.
7453         (fold_comparison): Fold comparison of addresses of two decls
7454         that bind locally.  Consolidate address folding code.
7455
7456 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7457
7458         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7459         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7460         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7461         dconstsqrt2, dconstthird, dconste and/or dconst10.
7462         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7463         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7464         dconstsqrt2, dconste): Delete.
7465         (init_emit_once): Likewise.  Simplify initializing dconstm1.
7466         Constify variable.
7467         * real.c (get_real_const): New.
7468         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7469         dconstsqrt2, dconste): Delete.
7470         (real_value_const, get_real_const): New.
7471
7472 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7473
7474         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7475
7476         * config/i386/i386.c (ix86_function_arg_boundary): Check
7477         BIGGEST_ALIGNMENT instead of 128.
7478         (setup_incoming_varargs_64): Likewise.
7479
7480 2008-03-26  Tom Tromey  <tromey@redhat.com>
7481
7482         * Makefile.in (DEPFILES): Add missing '/'.
7483
7484 2008-03-26  Richard Guenther  <rguenther@suse.de>
7485
7486         * fold-const.c (target.h): Include.
7487         (fold_comparison): Fold comparison of addresses of two decls
7488         that bind locally.  Consolidate address folding code.
7489
7490 2008-03-26  Nick Clifton  <nickc@redhat.com>
7491
7492         PR target/31232
7493         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7494         not allow INT+INT as a legitimate addressing mode.
7495
7496 2008-03-26  Richard Guenther  <rguenther@suse.de>
7497
7498         * tree-flow.h (widen_bitfield): Remove declaration.
7499         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7500         (widen_bitfield): Remove function.
7501         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7502         code.
7503
7504 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7505
7506         PR target/31558
7507         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7508         error_mark_node's.
7509
7510 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7511
7512         PR rtl-optimization/35232
7513         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7514         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7515         reg_reloaded_call_part_clobbered here.
7516         (reload_regs_reach_end_p): New function.
7517         (reload_reg_rtx_for_input): New variable.
7518         (reload_reg_rtx_for_output): Likewise.
7519         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7520         when reassigning a pseudo register.  Load reloadreg from 
7521         reload_reg_rtx_for_input, moving the mode and register
7522         calculation to...
7523         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7524         instead of the original when deciding whether an input reload
7525         would be a no-op or whether an output reload can be deleted.
7526         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7527         when setting up new_spill_reg_store.  Load it from
7528         reload_reg_rtx_for_output, moving the mode and register
7529         calculation to...
7530         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7531         instead of the original when deciding whether an output reload
7532         would be a no-op.  Do the same when modifying insn notes.
7533         Use rtx_equal_p instead of == to compare the registers.
7534         (inherit_piecemeal_p): Take a mode and two register numbers
7535         as argument.
7536         (emit_reload_insns): Clear new_spill_reg_store for every hard
7537         register in the reload register.  Remove spill registers
7538         from reg_reloaded_valid before considering whether to record
7539         inheritance information for them.  Use reload_reg_rtx_for_output
7540         instead of reg_rtx when recording output reloads.  Use
7541         reload_reg_rtx_for_input instead of reg_rtx when recording
7542         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7543         at the same time as setting reg_reloaded_valid.
7544         (delete_output_reload): Add a new_reload_reg parameter and use it
7545         instead of rld[j].reg_rtx.
7546         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7547         calls accordingly.
7548
7549 2008-03-25  Tom Tromey  <tromey@redhat.com>
7550
7551         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7552         (build/genattr.o): Likewise.
7553         (build/genattrtab.o): Likewise.
7554         (build/gencodes.o): Likewise.
7555         (build/genconfig.o): Likewise.
7556         (build/genconstants.o): Likewise.
7557         (build/genemit.o): Likewise.
7558         (build/genextract.o): Likewise.
7559         (build/genflags.o): Likewise.
7560
7561 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7562         
7563         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7564         instead of size_int for integer types.
7565         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7566         to match type of MINUS_EXPR.
7567         
7568 2008-03-25  Tom Tromey  <tromey@redhat.com>
7569
7570         * configure: Rebuilt.
7571         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7572         Makefile.
7573
7574 2008-03-25  Tom Tromey  <tromey@redhat.com>
7575
7576         * config/x-solaris (host-solaris.o): Update.
7577         * config/x-linux (host-linux.o): Update.
7578         * config/x-hpux (host-hpux.o): Update.
7579         * config/x-darwin (host-darwin.o): Update.
7580         * config/v850/t-v850e (v850-c.o): Update.
7581         * config/v850/t-v850 (v850-c.o): Update.
7582         * config/t-vxworks (vxworks.o): Update.
7583         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7584         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7585         * config/spu/t-spu-elf (spu-c.o): Update.
7586         (spu.o): Remove.
7587         * config/sh/t-symbian (sh-c.o): Update.
7588         (symbian.o): Update.
7589         * config/sh/t-sh (sh-c.o): Update.
7590         * config/score/t-score-elf (score7.o, score3.o): Update.
7591         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7592         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7593         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7594         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7595         (rs6000.o): Remove.
7596         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7597         * config/m32c/t-m32c (m32c-pragma.o): Update.
7598         * config/ia64/t-ia64 (ia64-c.o): Update.
7599         * config/i386/x-mingw32 (host-mingw32.o): Update.
7600         * config/i386/x-i386 (driver-i386.o): Update.
7601         * config/i386/x-darwin (host-i386-darwin.o): Update.
7602         * config/i386/x-cygwin (host-cygwin.o): Update.
7603         * config/i386/t-nwld (nwld.o): Update.
7604         * config/i386/t-netware (netware.o): Update.
7605         * config/i386/t-interix (winnt.o): Update.
7606         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7607         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7608         msformat-c.o): Update.
7609         * config/bfin/t-bfin-linux (generated_files): Add
7610         linux-sysroot-suffix.h.
7611         * config/arm/t-wince-pe (pe.o): Update.
7612         * config/arm/t-strongarm-pe (pe.o): Update.
7613         * config/arm/t-pe (pe.o): Update.
7614         * config/arm/t-arm (arm-c.o): Update.
7615         * doc/install.texi (Prerequisites): Require make 3.80.
7616         * Makefile.in: Remove .o targets.
7617         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7618         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7619         (simple_generated_h, simple_generated_c): Move earlier.
7620         (generated_files): New variable.
7621         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7622         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7623         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7624         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7625         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7626         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7627         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7628         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7629         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7630         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7631         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7632         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7633         (.c.o): Remove.
7634         (COMPILE.base, COMPILE): New variables.
7635         (%.o): New pattern rule.
7636         (ALL_HOST_OBJS): New variable.
7637         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7638         (dummy-checksum.o, cc1-checksum.o): Remove.
7639         (DRIVER_SHLIB): New variable.
7640         (DRIVER_DEFINES): Use it.
7641         (gencondmd.c): Move out of build/.
7642         (s-conditions): Update.
7643         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7644         (ALL_BUILD_OBJS): Likewise.
7645         (build/%.o): Use BUILDCOMPILE.
7646         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7647         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7648         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7649         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7650         build/genconfig.o, build/genconstants.o, build/genemit.o,
7651         build/genextract.o, build/genflags.o, build/genmddeps.o,
7652         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7653         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7654         build/gen-protos.o, build/scan.o, build/fix-header.o,
7655         build/scan-decls.o): Simplify.
7656         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7657         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7658         prefix.o, toplev.o): Reduce to variable setting.
7659         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7660         ($(out_object_file), gcc-options.o): New targets.
7661         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7662         * configure: Rebuilt.
7663         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7664         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7665
7666 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7667
7668         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7669         complain when we hit an error, return ERROR_MARK_NODE.
7670
7671 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7672
7673         * config/sh/constraints.md (Pso, Psz): New constraints.
7674         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7675         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7676
7677 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7678
7679         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7680         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7681
7682 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7683
7684         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7685         (prefetch_sh2a): New.   
7686
7687 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7688             Naveen.H.S  <naveen.hs@kpitcummins.com>
7689
7690         * config/sh/constraints.md (I28): New constraint.
7691         * config/sh/sh.c (broken_move): Add support for movi20s.
7692         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7693
7694 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7695             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7696             Naveen.H.S  <naveen.hs@kpitcummins.com>
7697
7698         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7699         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7700         (print_operand): Handle resbank in %@ operand code.
7701         (sh_encode_section_info): New.
7702         (push_regs): Add conditions for resbank.
7703         (sh_expand_epilogue): Likewise.
7704         (sh_insert_attributes): Likewise.
7705         (sh_attribute_table): Likewise.
7706         (sh_handle_resbank_handler_attribute): New.
7707         (sh2a_handle_function_vector_handler_attribute): New.
7708         (sh2a_is_function_vector_call): New.
7709         (sh2a_get_function_vector_number): New.
7710         (sh2a_function_vector_p): New.
7711         (sh_cfun_resbank_handler_p): New.
7712         * config/sh/sh.md (calli): Emit jsr/n if possible.
7713         (calli_tbr_rel): New.
7714         (calli_pcrel): Emit jsr/n if possible.
7715         (return_i): Emit rts/n if possible.
7716         (call_valuei_tbr_rel): New.
7717         (call_valuei_pcrel): Add condition for SH2A target.
7718         (call_value): Likewise.
7719         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7720         (sh2a_get_function_vector_number): Likewise.
7721         (sh2a_is_function_vector_call): Likewise.
7722         * doc/extend.texi: Document TBR relative addressing of SH2A.
7723         (resbank): Add description for SH2A.
7724
7725 2008-03-24  Richard Guenther  <rguenther@suse.de>
7726
7727         PR c/22371
7728         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7729         pointer assignments change conversions according to middle-end rules.
7730         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7731         * configure.ac: Include type checking in yes.
7732         * configure: Regenerate.
7733
7734 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7735
7736         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7737         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7738         
7739 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7740
7741         * gthr-vxworks.h (UNUSED): Define.
7742
7743 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7744
7745         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7746
7747 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7748
7749         * doc/extend.texi (Function Attributes): Add missing comma in the
7750         example of the "alloc_size" attribute.
7751         
7752 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7753
7754         Revert:
7755         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7756
7757         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7758         32bit host.
7759
7760         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7761
7762         PR target/35496
7763         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7764         of the underlying type of a MS bitfield layout to the natural
7765         alignment of the type.
7766
7767         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7768
7769         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7770         to their natural alignment to avoid store forwarding stalls.
7771
7772 2008-03-22  Richard Guenther  <rguenther@suse.de>
7773
7774         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7775         For PHI nodes verify the address is invariant.
7776         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7777         (get_symbol_constant_value): Use is_gimple_min_invariant.
7778         (maybe_fold_stmt_indirect): Likewise.
7779
7780 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7781
7782         PR rtl-optimization/33927
7783         * Makefile.in (dse.o): Depend on $(TM_P_H).
7784         * expr.h (extract_low_bits): Declare.
7785         * expmed.c (extract_low_bits): New function.
7786         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7787         * dse.c: Include tm_p.h.
7788         (find_shift_sequence): Remove the read_reg argument and return the
7789         read value.  Emit the instructions instead of returning them.
7790         Iterate on new_mode rather than calculating it each time.
7791         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7792         source to NEW_MODE and extract_low_bits to convert the shifted
7793         value to READ_MODE.
7794         (replace_read): Allow the load and store to have different mode
7795         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7796         or extraction instructions before trying the replacement.  Update
7797         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7798
7799 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7800
7801         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7802         to their natural alignment to avoid store forwarding stalls.
7803
7804 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7805
7806         PR target/27946
7807         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7808         encouraging but not allowing gprs for input;
7809         change the input constraint to !f#r.
7810         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7811         gprs for output;
7812         change the output constraint to !f#r.
7813
7814 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7815
7816         PR target/13958
7817         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7818         corresponding post-reload splitters.
7819         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7820         when x87 FP math is selected.
7821         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7822         New function prototype.
7823         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7824         unreachable function to ease macroization of insn patterns.
7825
7826 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7827
7828         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7829         reference dumps if ddr is NULL or dependence is unknown.
7830
7831 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7832
7833         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7834         unsigned extension into account.
7835         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7836         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7837         Do computations on a scratch register.
7838
7839 2008-03-21  Richard Guenther  <rguenther@suse.de>
7840
7841         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7842         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7843         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7844         * tree-ssa-dom.c (record_equality): Likewise.
7845         * tree-inline.c (copy_body_r): Likewise.
7846         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7847         TREE_INVARIANT.
7848
7849 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7850
7851         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7852         as 'delete_unused' argument.
7853
7854 2008-03-20  Richard Guenther  <rguenther@suse.de>
7855
7856         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7857         special casing of constant qualifiers.
7858         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7859         care about them in general.
7860         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7861         regardless of their type.
7862         (fold_stmt_r): Forcefully fold *& if we end up with that.
7863
7864 2008-03-20  Paul Brook  <paul@codesourcery.com>
7865
7866         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7867         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7868         linker flags.
7869         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7870         definition.
7871         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7872         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7873
7874 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7875
7876         * common.opt (Wmudflap): New option.
7877         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7878         (mx_register_decls): Likewise.
7879         (mudflap_finish_file): Likewise.
7880         * doc/invoke.texi: Document -Wno-mudflap.
7881
7882 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7883
7884         * c-format.c (replace_format_name_to_system_name): New.
7885         (cmp_attribs): New.
7886         (convert_format_name_to_system_name): New.
7887         (decode_format_attr): Add use of convert_format_name_to_system_name.
7888         (format_types_orig): Add gnu_ prefix to names.
7889         (check_format_info_main): Special treating of \0 escaped names for
7890         supporting multi-character format specifiers as I32, I64.
7891         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7892         (gnu_target_overrides_format_attributes): New.
7893         * c-format.h: Add structure target_ovr_attr to hold
7894         system specific formatter names.
7895         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7896         msformat-c.o file to c_target_objs and cxx_target_objs.
7897         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7898         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7899         (TARGET_N_FORMAT_TYPES): New.
7900         * config/i386/msformat-c.c: New.
7901         * config/i386/t-cygming: Add build rule for msformat-c.o.
7902         * doc/extend.texi: Add new format names gnu_* and ms_* and
7903         further details.
7904         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7905
7906 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7907
7908         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7909         optimizations turned on under -O3.
7910         (ftree-vectorize): Add that the flag is turned on with -O3.
7911
7912 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7913
7914         * regmove.c (try_auto_increment): Fix spelling error in comment.
7915         * final.c (final_scan_insn): Likewise.
7916
7917 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7918
7919         PR target/14552
7920         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7921         allocator preferences for "y" and "r" class registers.
7922         ("*mov<mode>_internal"): Ditto.
7923         ("*movv2sf_internal_rex64"): Ditto.
7924         ("*movv2sf_internal"): Ditto.
7925
7926 2008-03-19  Michael Matz  <matz@suse.de>
7927
7928         PR middle-end/35616
7929         * calls.c (expand_call): Check overlap of arguments with call
7930         address for sibcalls.
7931
7932 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7933
7934         PR target/35496
7935         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7936         of the underlying type of a MS bitfield layout to the natural
7937         alignment of the type.
7938
7939 2008-03-19  Jan Hubicka  <jh@suse.cz>
7940
7941         PR other/35094
7942         * toplev.c (decode_d_option): Handle all CPP flags.
7943         * tree-vrp.c: Update tree_pass descriptors.
7944         * regrename.c: Update tree_pass descriptors.
7945         * fwprop.c: Update tree_pass descriptors.
7946         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7947         * tree-into-ssa.c: Update tree_pass descriptors.
7948         * tree-dump.c: Update tree_pass descriptors.
7949         * tree-complex.c: Update tree_pass descriptors.
7950         * tree-dump.h: Update tree_pass descriptors.
7951         * see.c: Update tree_pass descriptors.
7952         * cgraphbuild.c: Update tree_pass descriptors.
7953         * tracer.c: Update tree_pass descriptors.
7954         * tree-loop-distribution.c: Update tree_pass descriptors.
7955         * cgraph.c: Update tree_pass descriptors.
7956         * postreload-gcse.c: Update tree_pass descriptors.
7957         * postreload.c: Update tree_pass descriptors.
7958         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7959         * tree-tailcall.c: Update tree_pass descriptors.
7960         * tree-pass.h (tree_opt_pass): Rename to ...
7961         (opt_pass) ... this one; add "type" field and remove letter field.
7962         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7963         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7964         all_lowering_passes): Update declaration.
7965         * ipa-cp.c: Update tree_pass descriptors.
7966         * final.c: Update tree_pass descriptors.
7967         * omp-low.c: Update tree_pass descriptors.
7968         * tree-ssa-dse.c: Update tree_pass descriptors.
7969         * ipa-reference.c: Update tree_pass descriptors.
7970         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7971         * auto-inc-dec.c: Update tree_pass descriptors.
7972         * reorg.c: Update tree_pass descriptors.
7973         * cgraphunit.c: Update tree_pass descriptors.
7974         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7975         * tree-ssa-ccp.c: Update tree_pass descriptors.
7976         * df-core.c: Update tree_pass descriptors.
7977         * mode-switching.c: Update tree_pass descriptors.
7978         * tree-nomudflap.c: Update tree_pass descriptors.
7979         * modulo-sched.c: Update tree_pass descriptors.
7980         * ipa-pure-const.c: Update tree_pass descriptors.
7981         * cse.c: Update tree_pass descriptors.
7982         * web.c: Update tree_pass descriptors.
7983         * tree-stdarg.c: Update tree_pass descriptors.
7984         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7985         * tree-ssa-dom.c: Update tree_pass descriptors.
7986         * tree-nrv.c: Update tree_pass descriptors.
7987         * tree-ssa-alias.c: Update tree_pass descriptors.
7988         * loop-init.c: Update tree_pass descriptors.
7989         * gimple-low.c: Update tree_pass descriptors.
7990         * ipa-inline.c: Update tree_pass descriptors.
7991         * tree-ssa-sink.c: Update tree_pass descriptors.
7992         * global.c: Update tree_pass descriptors.
7993         * ifcvt.c: Update tree_pass descriptors.
7994         * jump.c: Update tree_pass descriptors.
7995         * predict.c: Update tree_pass descriptors.
7996         * tree-ssa-loop.c: Update tree_pass descriptors.
7997         * recog.c: Update tree_pass descriptors.
7998         * dse.c: Update tree_pass descriptors.
7999         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
8000         * tree-eh.c: Update tree_pass descriptors.
8001         * regmove.c: Update tree_pass descriptors.
8002         * local-alloc.c
8003         * function.c: Update tree_pass descriptors.
8004         * tree-vectorizer.c: Update tree_pass descriptors.
8005         * gcse.c: Update tree_pass descriptors.
8006         * ipa-type-escape.c: Update tree_pass descriptors.
8007         * tree-if-conv.c: Update tree_pass descriptors.
8008         * init-regs.c: Update tree_pass descriptors.
8009         * ipa.c: Update tree_pass descriptors.
8010         * tree-ssa-phiopt.c: Update tree_pass descriptors.
8011         * rtl-factoring.c: Update tree_pass descriptors.
8012         * lower-subreg.c: Update tree_pass descriptors.
8013         * bt-load.c: Update tree_pass descriptors.
8014         * tree-dfa.c: Update tree_pass descriptors.
8015         * except.c: Update tree_pass descriptors.
8016         * emit-rtl.c: Update tree_pass descriptors.
8017         * cfgexpand.c: Update tree_pass descriptors.
8018         * tree-cfgcleanup.c: Update tree_pass descriptors.
8019         * cfgcleanup.c: Update tree_pass descriptors.
8020         * tree-ssa-pre.c: Update tree_pass descriptors.
8021         * tree-sra.c: Update tree_pass descriptors.
8022         * tree-mudflap.c: Update tree_pass descriptors.
8023         * tree-ssa-copy.c: Update tree_pass descriptors.
8024         * cfglayout.c: Update tree_pass descriptors.
8025         * tree-ssa-forwprop.c: Update tree_pass descriptors.
8026         * tree-ssa-dce.c: Update tree_pass descriptors.
8027         * tree-ssa.c: Update tree_pass descriptors.
8028         * regclass.c: Update tree_pass descriptors.
8029         * integrate.c: Update tree_pass descriptors.
8030         * tree-optimize.c: Update tree_pass descriptors.
8031         * tree-ssa-phiprop.c: Update tree_pass descriptors.
8032         * tree-object-size.c: Update tree_pass descriptors.
8033         * combine.c: Update tree_pass descriptors.
8034         * tree-outof-ssa.c: Update tree_pass descriptors.
8035         * bb-reorder.c: Update tree_pass descriptors.
8036         * stack-ptr-mod.c: Update tree_pass descriptors.
8037         * var-tracking.c: Update tree_pass descriptors.
8038         * tree-profile.c: Update tree_pass descriptors.
8039         * tree-vect-generic.c: Update tree_pass descriptors.
8040         * reg-stack.c: Update tree_pass descriptors.
8041         * sched-rgn.c: Update tree_pass descriptors.
8042         * tree-ssa-structalias.c: Update tree_pass descriptors.
8043         * tree-cfg.c: Update tree_pass descriptors.
8044         * passes.c (current_pass): Update declaration.
8045         (finish_optimization_passes): Update.
8046         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
8047         (register_one_dump_file, register_dump_files_1, next_pass_1):
8048         Update arguments.
8049         (init_optimization_passes): Update handling of new types.
8050         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
8051         * ipa-struct-reorg.c: Update tree_pass descriptors.
8052         * tree-ssa-reassoc.c: Update tree_pass descriptors.
8053         * combine-stack-adj.c: Update tree_pass descriptors.
8054         * cfgrtl.c: Update tree_pass descriptors.
8055         * dce.c: Update tree_pass descriptors.
8056         * tree-ssanames.c: Update tree_pass descriptors.
8057
8058 2008-03-19  Richard Guenther  <rguenther@suse.de>
8059
8060         PR middle-end/35609
8061         * tree-ssa.c (walk_data): New structure.
8062         (warn_uninitialized_var): If not always_executed warn with "maybe"
8063         instead of "is".
8064         (execute_early_warn_uninitialized): Compute post-dominators.
8065         Initialize always_executed before processing each basic block.
8066
8067 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
8068
8069         PR target/35504
8070         * config/i386/i386.c (x86_this_parameter): Calculate correct location
8071         of "this" pointer when "regparm = N" or "fastcall" is in effect.
8072
8073 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8074
8075         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
8076
8077 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
8078
8079         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
8080         is true.
8081         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
8082         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
8083         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
8084         target after ignore has been set, and move there also the commputation
8085         of subtarget and original_target.
8086         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8087         (LANG_HOOKS_INITIALIZER): Remove it.
8088         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
8089
8090 2008-03-18  Richard Guenther  <rguenther@suse.de>
8091
8092         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
8093         found an expression with constants, note that in the VN for the lhs.
8094         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
8095         fold them to constants if possible.  Run cleanup_cfg if done so.
8096         (execute_pre): Return todo.
8097         (do_pre): Likewise.
8098         (execute_fre): Likewise.
8099         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
8100         of constants.
8101         (get_prop_source_stmt): Look through pointer conversions.
8102
8103 2008-03-18  Jan Hubicka  <jh@suse.cz>
8104
8105         * tree-pretty-print.c: Include predict.h.
8106         (dump_generic_node): Dump predictor.
8107         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
8108         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
8109         * gimple-low.c (lower_stmt): Likewise.
8110         * expr.c (expand_expr_real): Likewise.
8111         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
8112         them.
8113         (build_predict_expr, build_predict_expr): New.
8114         * predict.h (predictor_name, build_predict_expr): Update.
8115         * c-typeck.c (c_finish_bc_stmt): Add prediction.
8116         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
8117         * predict.def (PRED_CONTINUE): Update hitrate.
8118         * tree.def (PREDICT_EXPR): Define.
8119         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
8120         do not handle BIND_EXPR.
8121         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
8122         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
8123         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
8124         operands.
8125
8126 2008-03-18  Michael Matz  <matz@suse.de>
8127
8128         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
8129
8130 2008-03-18  Richard Guenther  <rguenther@suse.de>
8131
8132         * tree-gimple.h (is_gimple_invariant_address): Declare.
8133         (is_gimple_constant): Likewise.
8134         * tree-gimple.c (is_gimple_constant): New function.
8135         (is_gimple_invariant_address): Likewise.
8136         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
8137         and is_gimple_invariant_address.
8138         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
8139         previous change.
8140         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
8141         an addressable base.
8142
8143 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
8144
8145         PR middle-end/35611
8146         * gimplify.c (gimplify_expr): Gimplify second operand of
8147         OMP_ATOMIC_LOAD.
8148
8149 2008-03-17  Richard Guenther  <rguenther@suse.de>
8150
8151         PR tree-optimization/19637
8152         * fold-const.c (fold_unary): Remove restrictions of removing
8153         intermediate pointer-conversions (P2)(P1)P0.
8154         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
8155         conversion to void pointer.
8156         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
8157
8158 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
8159
8160         PR debug/31510
8161         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
8162         emulated thread local variables.
8163
8164 2008-03-16  Richard Guenther  <rguenther@suse.de>
8165
8166         PR middle-end/35607
8167         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8168         expand TREE_INVARIANT operations that are not gimple invariant.
8169
8170 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
8171
8172         * doc/extend.texi (Alignment): Say that the ABI controls
8173         the __alignof__ for non-strict-alignment targets rather
8174         than being a recommendation.
8175
8176 2008-03-15  Paul Brook  <paul@codesourcery.com>
8177
8178         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
8179         annotations.
8180         (arm_output_fn_unwind): Mark functions that can not be unwound.
8181
8182 2008-03-15  Paul Brook  <paul@codesourcery.com>
8183
8184         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
8185         extension instructions.
8186
8187 2008-03-15  Richard Guenther  <rguenther@suse.de>
8188
8189         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
8190         and fold constant aggregate refs.
8191         (fold_const_aggregate_ref): Handle string constants
8192         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
8193         (evaluate_stmt): Simplify now that ccp_fold folds constant
8194         aggregate refs.
8195
8196 2008-03-15  Paul Brook  <paul@codesourcery.com>
8197
8198         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
8199         (extzv): Use gen_extzv_t2.
8200         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
8201
8202 2008-03-15  Richard Guenther  <rguenther@suse.de>
8203
8204         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
8205         (fold_const_aggregate_ref): Likewise.
8206         (get_value): Return NULL if we don't have any values.
8207         (ccp_finalize): Set const_val to NULL after freeing it.
8208         * tree-flow.h (get_symbol_constant_value): Declare.
8209         (fold_const_aggregate_ref): Likewise.
8210         * tree-ssa-sccvn.c (try_to_simplify): Use them.
8211
8212 2008-03-15  Richard Guenther  <rguenther@suse.de>
8213
8214         PR middle-end/35593
8215         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
8216         to not produce negative array indices if not allowed.  Add
8217         parameter to indicate that.
8218         (maybe_fold_offset_to_component_ref): Allow negative array
8219         indices only for the first member of a structure.
8220         (maybe_fold_offset_to_reference): Allow negative array indices.
8221         (maybe_fold_stmt_addition): Likewise.
8222
8223 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
8224             Anatoly Sokolov <aesok@post.ru>
8225
8226         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
8227         (avr_arch): Add ARCH_AVR6.
8228         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
8229         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
8230         instead of fixed value 2.
8231         (print_operand_address): Use gs() asm specifier instead of pm().
8232         (avr_assemble_integer): (Ditto.).
8233         (avr_output_addr_vec_elt): (Ditto.).
8234         (print_operand): Handle "!" code.
8235         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
8236         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
8237         (AVR_HAVE_EIJMP_EICALL): Define.
8238         (AVR_3_BYTE_PC): Redefine.
8239         (AVR_2_BYTE_PC): (Ditto.).
8240         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
8241         (LINK_SPEC): Add atmega2560 and atmega2561.
8242         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
8243         (crtm2561.o).
8244         * config/avr/avr.md (call_insn): Use eicall instead of icall 
8245         for 3 byte PC devices.
8246         (call_value_insn): (Ditto.).
8247         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
8248         (indirect_jump): Use only for for 2 byte PC devices.
8249         (*tablejump): (Ditto.).
8250         (*indirect_jump_avr6): Add insn.
8251         (*tablejump_rjmp): Don't use for 3 byte PC devices.
8252         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
8253         instead of ijmp for 3 byte PC devices.
8254         (__tablejump2__): (Ditto.).
8255         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
8256         (MULITLIB_DIRNAMES): (Ditto.). 
8257         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
8258
8259 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
8260
8261         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
8262         "sse2_umulsidi3".  Use V1DI mode for operand 0.
8263         ("mmx_psadbw"): Use V1DI mode for operand 0.
8264         * config/i386/i386-modes.def (V1SI): New vector mode.
8265         * config/i386/i386.c (struct builtin_description)
8266         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
8267         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
8268         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
8269         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
8270         v1di_ftype_v8qi_v8qi type.
8271         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
8272
8273         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
8274         __builtin_ia32_pmuludq]: Fix the mode of return value.
8275
8276 2008-03-15  Richard Guenther  <rguenther@suse.de>
8277
8278         PR middle-end/35595
8279         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
8280         being a PHI_NODE.
8281
8282 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
8283         
8284         * doc/invoke.texi (Option Summary, Xtensa Options): Document
8285         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
8286         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
8287         unless TARGET_SERIALIZE_VOLATILE is enabled.
8288         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
8289         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
8290         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
8291
8292 2008-03-14  Richard Guenther  <rguenther@suse.de>
8293
8294         PR tree-optimization/34172
8295         * tree-flow.h (refs_may_alias_p): Declare.
8296         (get_single_def_stmt): Likewise.
8297         (get_single_def_stmt_from_phi): Likewise.
8298         (get_single_def_stmt_with_phi): Likewise.
8299         * tree-dfa.c (refs_may_alias_p): New function.
8300         (get_single_def_stmt): Likewise.
8301         (get_single_def_stmt_from_phi): Likewise.
8302         (get_single_def_stmt_with_phi): Likewise.
8303         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
8304         (vn_reference_lookup_1): New helper function.
8305         (vn_reference_lookup): Walk the virtual use-def chain to
8306         continue searching for a match if the def does not alias the
8307         reference we are looking for.
8308
8309 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
8310
8311         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
8312         archive and Perzl.  Update The Written Word listing.
8313
8314 2008-03-14  Richard Guenther  <rguenther@suse.de>
8315
8316         PR tree-optimization/34043
8317         PR tree-optimization/33989
8318         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
8319         when doing FRE.
8320         (bitmap_find_leader): Use extra argument to verify dominance
8321         relationship inside a basic-block.
8322         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
8323         (find_leader_in_sets): Adjust.
8324         (create_component_ref_by_pieces): Take extra argument for
8325         dominance check, handle lookup failures.
8326         (find_or_generate_expression): Likewise.
8327         (create_expression_by_pieces): Likewise.
8328         (insert_into_preds_of_block): Adjust.
8329         (create_value_expr_from): If asked for, verify all operands
8330         are in the blocks AVAIL_OUT set.
8331         (make_values_for_stmt): Check for SSA_NAMEs that are life
8332         over an abnormal edge.
8333         (compute_avail): Remove such check.
8334         (do_SCCVN_insertion): New function.
8335         (eliminate): If we do not find a leader suitable for replacement
8336         insert a replacement expression from SCCVN if available.
8337         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
8338         (struct vn_ssa_aux): Add needs_insertion flag.
8339         * tree-ssa-sccvn.c (may_insert): New global flag.
8340         (copy_reference_ops_from_ref): Value-number union member access
8341         based on its size, not type and member if insertion is allowed.
8342         (visit_reference_op_load): For a weak match from union type
8343         punning lookup a view-converted value and insert a SSA_NAME
8344         for that value if that is not found.
8345         (visit_use): Make dumps shorter.  Do not disallow value numbering
8346         SSA_NAMEs that are life over an abnormal edge to constants.
8347         (free_scc_vn): Release inserted SSA_NAMEs.
8348         (run_scc_vn): New flag to specify whether insertion is allowed.
8349         Process SSA_NAMEs in forward order.
8350         * tree-ssa-loop-im.c (for_each_index): Handle invariant
8351         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
8352         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
8353         pointer type to/from integral types that do not change the
8354         precision to regular conversions.
8355
8356 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8357
8358         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8359         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8360         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
8361         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
8362         input arguments and the mode of return value.  Built-in functions
8363         that operate on whole 64-bit MMX register now use V1DI mode.
8364
8365 2008-03-13  Alon Dayan  <alond@il.ibm.com>
8366             Olga Golovanevsky  <olga@il.ibm.com>
8367
8368         PR tree-optimization/35041
8369         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
8370         to locate the right position in a statement.
8371
8372 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8373
8374         PR target/34000
8375         PR target/35553
8376         * config/i386/xmmintrin.h:  Change all static inline functions to
8377         extern inline and add __gnu_inline__ attribute.
8378         * config/i386/bmintrin.h: Ditto.
8379         * config/i386/smmintrin.h: Ditto.
8380         * config/i386/tmmintrin.h: Ditto.
8381         * config/i386/mmintrin-common.h: Ditto.
8382         * config/i386/ammintrin.h: Ditto.
8383         * config/i386/emmintrin.h: Ditto.
8384         * config/i386/pmmintrin.h: Ditto.
8385         * config/i386/mmintrin.h: Ditto.
8386         * config/i386/mm3dnow.h: Ditto.
8387
8388 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
8389
8390         PR middle-end/35185
8391         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
8392         (lower_omp_2): New function.
8393         (lower_omp_1, lower_omp): Rewritten.
8394
8395 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
8396
8397         PR 35054
8398         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
8399         with the phrase "Microsoft Windows compilers".
8400         (Push/Pop Macro Pragmas): New subsection. Document
8401         #pragma push_macro and pragma pop_macro.
8402
8403 2008-03-12  Paul Brook  <paul@codesourcery.com>
8404
8405         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
8406
8407 2008-03-12  Paul Brook  <paul@codesourcery.com>
8408
8409         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
8410         (thumb2_alusi3_short): Exclude PLUS and MINUS.
8411         (thumb2_addsi_shortim): Rename ...
8412         (thumb2_addsi_short): ... to this.  Allow register operands.
8413         (thumb2_subsi_short): New pattern.
8414         (thumb2_one_cmplsi2_short,
8415         thumb2_negsi2_short): New patterns and peepholes.
8416
8417 2008-03-12  Paul Brook  <paul@codesourcery.com>
8418
8419         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
8420
8421 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
8422
8423         * config/i386/i386.md (int_cond): New code iterator.
8424         (fp_cond): Ditto.
8425         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8426         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8427         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8428         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8429         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8430         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8431         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8432         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8433
8434 2008-03-12  Paul Brook  <paul@codesourcery.com>
8435
8436         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8437         instead of {arm,thumb}_compute_save_reg_mask.
8438         (output_return_instruction): Ditto.
8439         (thumb_unexpanded_epilogue): Ditto.
8440         (thumb1_expand_prologue): Ditto.
8441         (thumb1_output_function_prologue): Ditto.
8442         (arm_set_return_address): Ditto.
8443         (thumb_set_return_address): Ditto.
8444         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
8445         regs to achieve stack alignment.
8446         (thumb1_compute_save_reg_mask): Fix compiler warning.
8447         (arm_output_epilogue): Use offsets->saved_regs_mask.
8448         Adjust stack pointer by poping call clobered registers.
8449         (arm_expand_prologue): Use offsets->saved_regs_mask.
8450         Adjust stack pointer by pushing extra registers.
8451         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
8452
8453 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
8454
8455         PR tree-opt/35422
8456         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8457         conversion to the operands of a multiplication.
8458
8459 2008-03-12  Richard Guenther  <rguenther@suse.de>
8460
8461         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8462         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8463         * timevar.def (TV_TREE_PHIPROP): Add.
8464         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8465         pass description.  Use TV_TREE_PHIPROP.
8466         * tree-ssa-forwprop.c: Remove phiprop code.
8467
8468 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8469
8470         PR middle-end/35549
8471         * omp-low.c (maybe_lookup_decl): Constify first argument.
8472         (use_pointer_for_field): Change last argument from bool to
8473         omp_context *.  Disallow shared copy-in/out in nested
8474         parallel if decl is shared in outer parallel too.
8475         (build_outer_var_ref, scan_sharing_clauses,
8476         lower_rec_input_clauses, lower_copyprivate_clauses,
8477         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8478
8479 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8480             Ira Rosen  <irar@il.ibm.com>
8481
8482         * tree-vectorizer.c (free_stmt_vec_info): New function.
8483         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8484         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8485         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8486         * tree-vect-transform.c (vectorizable_conversion): Free
8487         vec_oprnds0 if it was allocated.
8488         (vect_permute_store_chain): Remove unused VECs.
8489         (vectorizable_store): Free VECs that are allocated in the..
8490         function.
8491         (vect_transform_strided_load, vectorizable_load): Likewise.
8492         (vect_remove_stores): Simplify the code.
8493         (vect_transform_loop): Move code to vect_remove_stores().
8494         Call vect_remove_stores() and free_stmt_vec_info().
8495
8496 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8497
8498         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8499         TARGET_HPUX.  Revise comment.
8500         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8501         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8502         Use sr4 variant of `be' instruction when not generating PIC code.
8503         (attr_length_call): Adjust for above change.
8504
8505 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8506
8507         * ipa-reference.c (static_execute): Remove module_statics_const and
8508         associated setting code.
8509
8510 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8511
8512         PR target/35540
8513         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8514         predicate for operand 1.
8515         (paritysi2_cmp): Use register_operand predicate for operand 2.
8516         Use earlyclobber modifier for operand 1.  Remove support for
8517         memory operands.
8518         (paritydi2_cmp): Use register_operand predicate for operand 3.
8519         Use earlyclobber modifier for operand 1.  Remove support for
8520         memory operands.
8521
8522 2008-03-11  Paul Brook  <paul@codesourcery.com>
8523             Vladimir Prus  <vladimir@codesourcery.com>
8524
8525         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8526         (arm_compute_save_reg0_reg12_mask): Always
8527         check if register 11 must be saved.  Always safe hard frame pointer
8528         when frame_pointer_needeed.
8529         (arm_compute_save_reg_mask): Save IP and PC
8530         only with apcs frames.
8531         (arm_output_epilogue): Adjust Thumb2 codepath to
8532         be also invoked and work for ARM non-apcs frames.
8533         (arm_expand_prologue): Don't bother saving IP
8534         for non-apcs frame, since it's not clobbered by
8535         prologue code.  Implement non-apcs frame
8536         layout.
8537
8538 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8539
8540         PR rtl-optimization/35281
8541         * expr.c (convert_move): Use a new pseudo for the intermediate
8542         from_mode->word_mode result.
8543
8544 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8545
8546         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8547         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8548         * toplev.c (compile_file): Don't call it.
8549
8550 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8551
8552         PR middle-end/35526
8553         * expr.c (store_expr): Call emit_block_move if the mode
8554         of "temp" RTX is BLKmode.
8555
8556 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8557             Richard Guenther  <rguenther@suse.de>
8558
8559         PR tree-optimization/31358
8560         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8561         the step with a NULL_TREE.
8562         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8563         to sizetype if type is a pointer type.
8564         (add_candidate_1): Don't convert the base and step to
8565         the generic type if the orginal type is a pointer type.
8566         (add_iv_value_candidates): Use sizetype for the step
8567         if type is a pointer type.
8568         (cand_value_at): Likewise.
8569         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8570         for pointer types.
8571         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8572         Don't convert the tem affine to the type.
8573         (add_elt_to_tree): Use sizetype for the step if a pointer.
8574         Use POINTER_PLUS_EXPR for pointers.
8575         (aff_combination_to_tree): Use sizetype for the step if a
8576         pointer.
8577
8578 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8579
8580         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8581         Remove commutativity hint.
8582
8583 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8584
8585         PR c/35438
8586         PR c/35439
8587         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8588         errorneous type.  Check that v is a VAR_DECL.
8589
8590         PR middle-end/35099
8591         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8592
8593 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8594
8595         PR tree-optimization/35494
8596         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8597         may be overriden at link and run time.
8598
8599 2008-03-10  Richard Guenther  <rguenther@suse.de>
8600
8601         PR tree-optimization/34677
8602         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8603         (poolify_tree): Likewise.
8604         (modify_expr_template): Likewise.
8605         (poolify_modify_stmt): Likewise.
8606         (insert_fake_stores): Handle all component-ref style stores
8607         in addition to INDIRECT_REF.  Also handle complex types.
8608         Do not poolify the inserted load.
8609         (realify_fake_stores): Do not rebuild the tree but only
8610         make it a SSA_NAME copy.
8611         (init_pre): Remove initialzation of modify_expr_template.
8612         Do not allocate modify_expr_node_pool.
8613         (fini_pre): Do not free modify_expr_node_pool.
8614
8615 2008-03-10  Paul Brook  <paul@codesourcery.com>
8616
8617         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8618         to avoid conflicts.
8619
8620 2008-03-10  Paul Brook  <paul@codesourcery.com>
8621             Mark Shinwell  <shinwell@codesourcery.com>
8622
8623         * config/arm/cortex-r4.md: New.
8624         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8625         insn attributes.
8626         * config/arm/arm.md: Include cortex-r4.md.
8627         (insn): Add smmls, sdiv and udiv values.
8628         (generic_sched): Don't use generic scheduling for Cortex-R4.
8629         (arm_issue_rate): New function.
8630         (TARGET_SCHED_ISSUE_RATE): Define.
8631
8632 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8633
8634         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8635
8636 2008-03-10  Richard Guenther  <rguenther@suse.de>
8637
8638         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8639         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8640
8641 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8642
8643         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8644         Set default to true.
8645
8646 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8647
8648         * c.opt (Wsynth): Deprecate.
8649         * doc/invoke.texi (Option Summary, Warning Options): Document
8650         -Wno-format-contains-nul.
8651
8652 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8653
8654         PR target/35496
8655         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8656         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8657
8658 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8659
8660         * config/rs6000/rs6000.c (builtin_description): Rename vector
8661         left shift operations.
8662         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8663         (altivec_vsl<VI_char>): Rename to ...
8664         (ashl<mode>3): ... new name.
8665         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8666         gen_ashlv4si3.
8667         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8668
8669 2008-03-08  Richard Guenther  <rguenther@suse.de>
8670
8671         * coverage.h (tree_coverage_counter_addr): Declare.
8672         * coverage.c (tree_coverage_counter_addr): New function.
8673         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8674         before using again.
8675         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8676         (tree_gen_one_value_profiler): Likewise.
8677         (tree_gen_ic_profiler): Likewise.
8678         (tree_gen_average_profiler): Likewise.
8679         (tree_gen_ior_profiler): Likewise.
8680
8681 2008-03-08  Richard Guenther  <rguenther@suse.de>
8682
8683         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8684         (vn_binary_op_insert): Likewise.
8685         (vn_unary_op_lookup): Likewise.
8686         (vn_unary_op_insert): Likewise.
8687         (vn_nary_op_lookup): Declare.
8688         (vn_nary_op_insert): Likewise.
8689         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8690         and binary hashes, use a single obstack for unary_op_pool
8691         and binary_op_pool.
8692         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8693         a single struct vn_nary_op_s.  Store tree code length and
8694         a variable number of operands.
8695         (struct vn_reference_op_struct): Remove unused op2.
8696         (vn_reference_op_eq): Do not compare op2.
8697         (vn_reference_op_compute_hash): Do not compute hash of op2.
8698         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8699         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8700         with vn_nary_op_compute_hash.
8701         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8702         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8703         vn_nary_op_lookup.
8704         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8705         vn_nary_op_insert.
8706         (visit_unary_op): Call nary functions.
8707         (visit_binary_op): Likewise.
8708         (process_scc): Adjust for struct vn_tables_s changes.
8709         (allocate_vn_table): Likewise.
8710         (free_vn_table): Likewise.
8711         * tree-vn.c (vn_add): Call nary functions.
8712         (vn_lookup): Likewise.
8713
8714 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8715
8716         PR target/35498
8717         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8718         wdst back after sync_compare_and_swapqhi_internal.
8719
8720 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8721
8722         PR target/22152
8723         * config/i386/i386-modes.def (V1DI): New vector mode.
8724         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8725         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8726         (MMXMODE248): Ditto.
8727         (MMXMODE): Add V1DI mode.
8728         (mmxvecsize): Change DI mode to V1DI mode.
8729         ("mov<mode>): Use MMXMODEI8 mode iterator.
8730         ("*mov<mode>_internal_rex64"): Ditto.
8731         ("*mov<mode>_internal"): Ditto.
8732         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8733         ("mmx_sub<mode>3"): Ditto.
8734         ("mmx_adddi3"): Remove insn pattern.
8735         ("mmx_subdi3"): Ditto.
8736         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8737         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8738         ("mmx_ashl<mode>3"): Ditto.
8739         ("mmx_lshrdi3"): Remove insn pattern.
8740         ("mmx_ashldi3"): Ditto.
8741         * config/i386/i386.c (classify_argument): Handle V1DImode.
8742         (function_arg_advance_32): Ditto.
8743         (function_arg_32): Ditto.
8744         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8745         mmx_addv1di3 insn pattern.
8746         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8747         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8748         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8749         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8750         Remove definitions of built-in functions.
8751         (V1DI_type_node): New node.
8752         (v1di_ftype_v1di_int): Ditto.
8753         (v1di_ftype_v1di_v1di): Ditto.
8754         (v2si_ftype_v2si_si): Ditto.
8755         (v4hi_ftype_v4hi_di): Remove node.
8756         (v2si_ftype_v2si_di): Ditto.
8757         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8758         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8759         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8760         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8761         Add new builtins using def_builtin_const.
8762         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8763         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8764         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8765         * config/i386/mmintrin.h (__v1di): New typedef.
8766         (_mm_add_si64): Cast arguments to __v1di type.
8767         (_mm_sub_si64): Ditto.
8768         (_mm_sll_pi16): Cast __count to __v4hi type.
8769         (_mm_sll_pi32): Cast __count to __v2si type.
8770         (_mm_sll_si64): Cast arguments to __v1di type.
8771         (_mm_srl_pi16): Cast __count to __v4hi type.
8772         (_mm_srl_pi32): Cast __count to __v2si type.
8773         (_mm_srl_si64): Cast arguments to __v1di type.
8774         (_mm_sra_pi16): Cast __count to __v4hi type.
8775         (_mm_sra_pi32): Cast __count to __v2si type.
8776         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8777         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8778         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8779         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8780         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8781         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8782         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8783         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8784         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8785         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8786         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8787         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8788
8789 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8790
8791         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8792
8793 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8794
8795         PR target/35373
8796         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8797         reg+const addressing for Altivec modes.  Don't generate reg+reg
8798         addressing for TFmode or TDmode quantities.
8799
8800 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8801
8802         * c-common.c (vector_types_convertible_p): Call langhook
8803         instead of comptypes.
8804
8805 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8806
8807         PR tree-opt/35402
8808         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8809         integral and scalar float variables which have a
8810         NULL DECL_INITIAL.
8811
8812 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8813
8814         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8815         dwarf_register_span hook when emitting unwind information for
8816         register-to-memory saves.
8817         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8818         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8819
8820 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8821
8822         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8823         for the same VAR_DECL.
8824
8825 2008-03-06  Tom Tromey  <tromey@redhat.com>
8826
8827         * treelang: Delete.
8828         * doc/standards.texi (Standards): Don't mention treelang.
8829         * doc/invoke.texi (Overall Options): Don't mention treelang.
8830         * doc/install.texi (Prerequisites): Don't mention bison or
8831         treelang.
8832         (Configuration): Don't mention treelang.
8833         (Building): Likewise.
8834         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8835
8836 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8837
8838         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8839         word-extractions out of a multi-word object.
8840
8841 2008-03-06  Richard Guenther  <rguenther@suse.de>
8842
8843         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8844         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8845         result type and precision.
8846         * expr.c (get_inner_reference): Set unsignedp based on the result
8847         type of BIT_FIELD_REF.
8848         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8849         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8850         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8851         for BIT_FIELD_REF.
8852         (sra_build_assignment): Likewise.
8853         (sra_build_elt_assignment): Likewise.
8854         (sra_explode_bitfield_assignment): Likewise.
8855         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8856         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8857         set BIT_FIELD_REF_UNSIGNED.
8858         (vectorizable_load): Likewise.
8859
8860 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8861
8862         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8863         at bb start.
8864
8865 2008-03-06  Richard Guenther  <rguenther@suse.de>
8866
8867         * alias.c (struct alias_set_entry): Move has_zero_child field
8868         to pack with alias_set.
8869
8870 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8871
8872         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8873         32bit host.
8874
8875 2008-03-05  Ian Lance Taylor  <iant@google.com>
8876
8877         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8878
8879 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8880
8881         * fwprop.c (update_df): Support width and offset parameters of
8882         df_ref_create.
8883         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8884         global_conflicts): Change DF_REF_EXTRACT to either
8885         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8886         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8887         * df-scan.c (df_ref_record, df_defs_record,
8888         df_ref_create_structure, df_def_record_1, df_uses_record,
8889         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8890         df_bb_refs_collect, df_entry_block_defs_collect,
8891         df_exit_block_uses_collect): Support new width and offset fields.
8892         (ref_extract_pool): New storage pool.
8893         (df_free_ref): New function.
8894         (df_reg_chain_unlink, df_free_collection_rec,
8895         df_sort_and_compress_refs): Call df_free_ref.
8896         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8897         of df_ref_extract.
8898         (df_ref_create_structure): Allocate df_ref_extract if offset and
8899         width fields are used.
8900         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8901         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8902         and SIGN_EXTRACT.
8903         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8904         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8905         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8906         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8907         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8908         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8909         (df_ref_extract): New structure.
8910         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8911         (df_ref_create): Add width and offset parameters.
8912         
8913 2008-03-05  Richard Guenther  <rguenther@suse.de>
8914
8915         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8916         Use ranges_overlap_p.
8917         (offset_overlaps_with_access): Rename
8918         to ranges_overlap_p and move ...
8919         * tree-flow-inline.h (ranges_overlap_p): ... here.
8920
8921         * tree.h (get_inner_reference, handled_component_p): Update
8922         comments.
8923
8924         * tree.h (record_component_aliases, get_alias_set,
8925         alias_sets_conflict_p, alias_sets_must_conflict_p,
8926         objects_must_conflict_p): Move declarations ...
8927         * alias.h (record_component_aliases, get_alias_set,
8928         alias_sets_conflict_p, alias_sets_must_conflict_p,
8929         objects_must_conflict_p): ... here.
8930         Include coretypes.h.
8931         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8932
8933 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8934
8935         * cfg.c: Include tree-flow.h.
8936         (remove_edge_raw): Call redirect_edge_var_map_clear.
8937         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8938         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8939         (redirect_edge_var_map_result): New.
8940         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8941         PENDING_STMT use with redirect_edge_var_map_*.
8942         * tree-ssa.c (edge_var_maps): New definition.
8943         (redirect_edge_var_map_add): New.
8944         (redirect_edge_var_map_clear): New.
8945         (redirect_edge_var_map_dup): New.
8946         (redirect_edge_var_map_vector): New.
8947         (redirect_edge_var_map_destroy): New.
8948         (ssa_redirect_edge): Replace PENDING_STMT use with
8949         redirect_edge_var_map_*.
8950         (flush_pending_stmts): Same.
8951         (delete_tree_ssa): Destroy edge var map.
8952         * tree-flow.h (struct _edge_var_map): New.
8953         Define edge_var_map vector type.
8954         Declare redirect_edge_var_map_* prototypes.
8955         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8956         * tree-cfg.c (reinstall_phi_args): Replace
8957         PENDING_STMT use with redirect_edge_var_map_*.
8958
8959 2008-03-05  Richard Guenther  <rguenther@suse.de>
8960
8961         PR tree-optimization/35472
8962         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8963         whose single use_stmt has a overlapping set of loaded and
8964         stored symbols as that use_stmt might be a noop assignment then.
8965
8966 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8967
8968         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8969
8970 2008-03-05  Richard Guenther  <rguenther@suse.de>
8971
8972         PR c++/35336
8973         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8974         should be constants.
8975         * tree-cfg.c (verify_expr): Verify it.
8976         * fold-const.c (fold_truthop): Remove code generating
8977         BIT_FIELD_REFs of structure bases.
8978         (fold_binary): Likewise.
8979         (fold_ternary): Position and size of BIT_FIELD_REFs are
8980         always host integers.
8981         (make_bit_field_ref): Remove.
8982         (optimize_bit_field_compare): Remove.
8983         (all_ones_mask_p): Remove.
8984
8985 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8986
8987         PR gcc/33009
8988         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8989         (split_block_and_df_analyze): New. Split basic block and rebuild
8990         dataflow.
8991         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8992         SPLIT_BLOCK.
8993         (split_pattern_seq): Likewise.
8994         (erase_matching_seqs): Likewise.
8995         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8996
8997 2008-03-04  Geoff Keating  <geoffk@apple.com>
8998
8999         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
9000         declaration and code.
9001         (tree_invalid_nonnegative_warnv_p): Likewise.
9002
9003 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
9004
9005         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
9006         examples.  Truncate option-names then causing overfull hbox.
9007
9008 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9009
9010         PR target/35222
9011         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
9012         on hpux10.
9013         * configure: Rebuilt.
9014
9015 2008-03-04  Rafael Espindola  <espindola@google.com>
9016
9017         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
9018         (tree_unary_nonnegative_warnv_p): New.
9019         (tree_binary_nonnegative_warnv_p): New.
9020         (tree_single_nonnegative_warnv_p): New.
9021         (tree_invalid_nonnegative_warnv_p): New.
9022         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
9023
9024 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9025
9026         PR 28322
9027         * opts.c (handle_option): Postpone 'unknown option' errors only for
9028         warning options.
9029
9030 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9031
9032         PR target/35453
9033         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
9034         (_SIDD_XXX): This.
9035
9036 2008-03-04  Rafael Espindola  <espindola@google.com>
9037
9038         * fold-const.c (tree_unary_nonzero_warnv_p): New.
9039         (tree_binary_nonzero_warnv_p): New.
9040         (tree_single_nonzero_warnv_p): New.
9041         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
9042
9043 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
9044
9045         PR middle-end/35456
9046         * fold-const.c (fold_cond_expr_with_comparison): Prevent
9047         transformations for modes that have signed zeros.
9048         * ifcvt.c (noce_try_abs): Ditto.
9049
9050 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
9051
9052         * config/i386/i386.c (override_options): Force
9053         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
9054
9055 2008-03-04  Jan Hubicka  <jh@suse.cz>
9056
9057         PR c++/35262
9058         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
9059         in last commit.
9060
9061 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9062
9063         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
9064         label to probe the stack.
9065
9066 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9067
9068         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
9069         (__gthr_win32_mutex_destroy): Declare.
9070         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
9071         __gthr_win32_mutex_destroy.
9072         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
9073
9074 2008-03-03  Jan Hubicka  <jh@suse.cz>
9075
9076         PR c++/35262
9077         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
9078         aggressive on inlining cold calls.
9079
9080 2008-03-03  Richard Guenther  <rguenther@suse.de>
9081
9082         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
9083         struct copies into the expression table.
9084         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
9085         (try_to_simplify): Likewise.
9086         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
9087         integral and pointer arguments which do not change the
9088         precision to NOP_EXPRs.
9089         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
9090         VIEW_CONVERT_EXPR case.
9091
9092 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9093
9094         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
9095         defined in a loop at depth 0 is invariant.
9096         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9097         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
9098         be called at loop depth 0.
9099
9100 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
9101
9102         PR driver/35420
9103         * gcc.c (process_command): Update copyright notice dates.
9104         * gcov.c (print_version): Likewise.
9105         * gcov-dump.c (print_version): Likewise.
9106         * mips-tfile.c (main): Likewise.
9107         * mips-tdump.c (main): Likewise.
9108
9109 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9110
9111         PR 24924
9112         * c-common.c (flag_permissive): Delete.
9113         (constant_expression_warnings): Check flags first.
9114         (constant_expression_error): New.
9115         * c-common.h (flag_permissive): Delete.
9116         (constant_expression_error): Declare.
9117         * flags.h (flag_permissive): Declare. Update description.
9118         * diagnostic.c (pedwarn): Update.
9119         (permerror): New.
9120         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
9121         (permissive_error_kind): New.
9122         * toplev.c (flag_permissive): Define. Update description.
9123         * toplev.h (permissive_error_kind): Declare.
9124         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
9125         (pedwarn_c90): Use pedantic_warning_kind.
9126         * c-opts.c (c_common_post_options): flag_permissive does not affect
9127         flag_pedantic_errors.
9128
9129 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
9130
9131         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
9132         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
9133         __absvsi2, __absvDI2): Use unsigned arithmetic.
9134
9135 2008-03-02  Andi Kleen  <ak@suse.de>
9136             Richard Guenther  <rguenther@suse.de>
9137
9138         * struct-equiv.c: Remove file.
9139         * cfg_cleanup.c (condjump_equiv_p): Remove.
9140         * Makefile.in (OBJS-common): Remove struct-equiv.o.
9141         (struct-equiv.o): Remove rule.
9142         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
9143         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
9144         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
9145
9146 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9147
9148         * ifcvt.c (noce_process_if_block): Try to handle only the then
9149         block if the else block exists but isn't suitable.
9150
9151 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9152
9153         PR gcc/35063
9154         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
9155         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
9156         regression from previous patch.
9157
9158 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9159
9160         PR gcc/35063
9161         * gthr.h: Add __gthread_mutex_destroy as a function that must be
9162         implemented.
9163         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
9164         * gthr-single.h (__gthread_mutex_destroy): Likewise.
9165         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
9166         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
9167         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
9168         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
9169         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
9170         (__gthread_mutex_destroy_function): Rename to
9171         __gthread_mutex_destroy.
9172         * gthr-dce.h (__gthread_mutex_destroy): Call
9173         pthread_mutex_destroy.
9174         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
9175         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
9176         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
9177
9178 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9179
9180         * df-scan.c (df_ref_chain_change_bb): Simplify.
9181         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
9182         set_block_for_insn if there's any change.
9183         * df.h ((df_insn_change_bb): Fix prototype.
9184         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
9185         df_insn_change_bb, don't call set_block_for_insn.
9186         * emit-rtl.c (reorder_insns): Likewise.
9187         * haifa-sched.c (move_insn): Likewise.
9188
9189 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9190
9191         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
9192
9193 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9194
9195         * tree-flow-inline.h (next_readonly_imm_use): Return
9196         NULL_USE_OPERAND_P after the end.
9197
9198 2008-03-01  Richard Guenther  <rguenther@suse.de>
9199
9200         PR tree-optimization/35411
9201         * tree-sra.c (sra_build_assignment): Split conversion to
9202         final type to a separate statement if we are not assigning
9203         to a register.
9204
9205 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9206
9207         * fold-const.c (fold_convertible_p): Correct the logic to follow
9208         that in fold_convert().
9209
9210 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
9211
9212         PR c++/35315
9213         * tree-inline.c (build_duplicate_type): When we make a
9214         duplicate type, make it unique in the canonical types system.
9215
9216 2008-02-29  Tom Tromey  <tromey@redhat.com>
9217
9218         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
9219         input_file_stack_history, input_file_stack_restored): Remove.
9220         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9221         * input.h (struct file_stack): Remove.
9222         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9223         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
9224         Likewise.
9225         * diagnostic.h (struct diagnostic_context) <last_module>: Change
9226         type.
9227         (diagnostic_last_module_changed): Add 'map' argument.
9228         (diagnostic_set_last_function): Likewise.
9229         * diagnostic.c (undiagnostic_report_current_module): Iterate using
9230         line map, not input_file_stack.
9231         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
9232
9233 2008-02-29  Paul Brook  <paul@codesourcery.com>
9234
9235         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
9236
9237 2008-02-29  Paul Brook  <paul@codesourcery.com>
9238
9239         * config/arm/ieee754-df.S (muldf3): Use RET macros.
9240
9241 2008-02-29  Richard Guenther  <rguenther@suse.de>
9242
9243         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
9244         vn_lookup_or_add.
9245         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
9246         value for comparing for a store match.
9247         (simplify_unary_expression): Do nothing for SSA_NAMEs.
9248         (try_to_simplify): Do not do a full-blown reference lookup.
9249
9250 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9251
9252         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
9253         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9254
9255         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
9256
9257 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
9258
9259         * tree-loop-linear.c (try_interchange_loops): Compare memory access
9260         strides against cache sizes.
9261
9262 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9263
9264         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
9265         constant to fpul.
9266
9267 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
9268
9269         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
9270         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
9271         is smaller than the original promoted value.
9272         (simplify_subreg): If OP is a SUBREG, try to preserve its
9273         SUBREG_PROMOTED_VAR_P information.
9274
9275 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
9276
9277         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
9278         (VN_INFO_GET): Allocate new objects on the obstack.
9279         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
9280         for rpo_numbers_temp, for consistency.
9281         (free_scc_vn): Free the obstack.
9282
9283 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
9284
9285         * doc/invoke.texi: Document -ftree-loop-distribution.
9286         * tree-loop-distribution.c: New.
9287         * tree-pass.h (pass_loop_distribution): New.
9288         * graphds.h (struct graph): Add htab_t indices.
9289         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
9290         * tree-vectorizer.c (rename_variables_in_loop): Extern.
9291         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
9292         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
9293         * tree-data-ref.c (debug_data_dependence_relations): New.
9294         (dump_data_dependence_relation): Also print data references.
9295         (free_data_ref): Extern.
9296         (same_access_functions): Moved...
9297         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
9298         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9299         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
9300         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
9301         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
9302         (stmts_from_loop): Skip LABEL_EXPR.
9303         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
9304         New.
9305         (build_rdg): Initialize rdg->indices htab.
9306         (free_rdg, stores_from_loop, ref_base_address,
9307         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
9308         have_similar_memory_accesses_1, ref_base_address_1,
9309         remove_similar_memory_refs): New.
9310         * tree-data-ref.h: Depend on tree-chrec.h.
9311         (debug_data_dependence_relations, free_data_ref): Declared.
9312         (same_access_functions): ... here.
9313         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
9314         New.
9315         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
9316         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
9317         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
9318         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9319         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
9320         rdg_vertex_for_stmt): Declared.
9321         (struct rdg_edge): Add level.
9322         (RDGE_LEVEL): New.
9323         (free_rdg, stores_from_loop, remove_similar_memory_refs,
9324         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
9325         Declared.
9326         (rdg_has_similar_memory_accesses): New.
9327         * tree-vect-analyze.c: Remove unused static decls.
9328         * lambda.h (dependence_level): New.
9329         * common.opt (ftree-loop-distribution): New.
9330         * tree-flow.h (mark_virtual_ops_in_bb, 
9331         slpeel_tree_duplicate_loop_to_edge_cfg,
9332         rename_variables_in_loop): Declared.
9333         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
9334         (OBJS-common): Add tree-loop-distribution.o.
9335         (tree-loop-distribution.o): New rule.
9336         * tree-cfg.c (mark_virtual_ops_in_bb): New.
9337         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
9338         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
9339
9340 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
9341
9342         PR target/33963
9343         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
9344         other than structures and unions.
9345
9346 2008-02-28  Richard Guenther  <rguenther@suse.de>
9347
9348         Revert:
9349         2008-02-26  Richard Guenther  <rguenther@suse.de>
9350
9351         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9352         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9353         (lookup_decl_from_uid): Declare.
9354         (remove_decl_from_map): Likewise.
9355         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9356         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9357         (decl_for_uid_map): New global hashtable mapping DECL_UID
9358         to the decl tree.
9359         (init_ttree): Allocate it.
9360         (insert_decl_to_uid_decl_map): New helper function.
9361         (make_node_stat): Insert new decls into the map.
9362         (copy_node_stat): Likewise.
9363         (lookup_decl_from_uid): New function.
9364         (remove_decl_from_map): Likewise.
9365         (print_decl_for_uid_map_statistics): New helper.
9366         (dump_tree_statistics): Call it.
9367
9368         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9369         (referenced_var_iterator): Adjust.
9370         (FOR_EACH_REFERENCED_VAR): Adjust.
9371         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9372         (num_referenced_vars): Adjust.
9373         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9374         (first_referenced_var): Remove.
9375         (end_referenced_vars_p): Likewise.
9376         (next_referenced_var): Likewise.
9377         (referenced_var_iterator_set): New helper function.
9378         * tree-dfa.c (referenced_var_lookup): Adjust.
9379         (referenced_var_check_and_insert): Likewise.
9380         (remove_referenced_var): Likewise.
9381         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9382         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9383         (verify_call_clobbering): Likewise.
9384         (verify_memory_partitions): Likewise.
9385         (init_tree_ssa): Allocate bitmap instead of hashtable for
9386         referenced_vars.
9387         (delete_tree_ssa): Adjust.
9388         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9389         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9390         (compute_tag_properties): Likewise.
9391         (set_initial_properties): Likewise.
9392         (find_partition_for): Likewise.
9393         (update_reference_counts): Likewise.
9394         (dump_may_aliases_for): Likewise.
9395         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9396         (add_call_clobber_ops): Likewise.
9397         (add_call_read_ops): Likewise.
9398         (get_asm_expr_operands): Likewise.
9399         * tree-into-ssa.c (dump_decl_set): Likewise.
9400         (update_ssa): Likewise.
9401         * tree-sra.c (scan_function): Likewise.
9402         (decide_instantiations): Likewise.
9403         (scalarize_parms): Likewise.
9404         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9405         (dsa_named_for): Likewise.
9406         * tree-ssa-structalias.c (update_alias_info): Likewise.
9407         (merge_smts_into): Likewise.
9408
9409 2008-02-27  David Daney  <ddaney@avtrex.com>
9410
9411         PR target/34409
9412         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
9413         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
9414         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
9415         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
9416         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
9417
9418 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
9419
9420         PR target/25477
9421         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9422         (BUILT_IN_NEXTTOWARD): Remove.
9423         (BUILT_IN_NEXTTOWARDF): Ditto.
9424         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9425         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
9426
9427 2008-02-27  Tom Tromey  <tromey@redhat.com>
9428
9429         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9430         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9431
9432 2008-02-27  Jan Beulich  <jbeulich@novell.com>
9433
9434         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9435         update the respective field on newdecl.
9436
9437 2008-02-27  Revital Eres  <eres@il.ibm.com>
9438
9439         PR rtl-optimization/34999
9440         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9441         crossing edges that ends with a call insn.
9442         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9443         call insn and clear the EDGE_CROSSING flag of the crossing edge
9444         when fixing fallthru edges.
9445
9446 2008-02-27  Richard Guenther  <rguenther@suse.de>
9447
9448         PR middle-end/35390
9449         * fold-const.c (fold_unary): Return the correct argument,
9450         converted to the result type.
9451
9452 2008-02-27  Richard Guenther  <rguenther@suse.de>
9453
9454         PR middle-end/34971
9455         * expr.c (expand_expr_real_1): Assert on rotates that operate
9456         on partial modes.
9457         * fold-const.c (fold_binary): Use the types precision, not the
9458         bitsize of the mode if folding rotate expressions.  Build rotates
9459         only for full modes.
9460
9461 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
9462
9463         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9464         and CPP_PRAGMA_EOL.
9465         * c-pragma.c (pragma_ns_name): New typedef.
9466         (registered_pp_pragmas): New variable.
9467         (c_pp_lookup_pragma): New function.
9468         (c_register_pragma_1): If flag_preprocess_only, do nothing
9469         for non-expanded pragmas, for expanded ones push pragma's
9470         namespace and name into registered_pp_pragmas vector.
9471         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9472         flag_preprocess_only, don't register GCC pch_preprocess
9473         pragma if flag_preprocess_only.
9474         * c-opts.c (c_common_init): Call init_pragma even if
9475         flag_preprocess_only.
9476         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9477         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9478         cpp_register_pragma if flag_preprocess_only.
9479
9480 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9481
9482         PR c/28800
9483         * c-parser.c (c_parser_translation_unit): Warn for empty
9484         translation unit, not empty source file.
9485
9486 2008-02-26  Paul Brook  <paul@codesourcery.com>
9487
9488         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9489         operand for Thumb-2.
9490         * config/arm/arm.h (reg_class): Add CORE_REGS.
9491         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9492         (BASE_REG_CLASS): Use CORE_REGS.
9493         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9494         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9495         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9496         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9497         ARM_REGNO_OK_FOR_INDEX_P.
9498         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9499         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9500         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9501         (ldm/stm peepholes): Ditto.
9502         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9503         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9504         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9505         * config/arm/constraints.md: Enable "k" constraint on ARM.
9506
9507 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9508
9509         * config/rs6000/rs6000.c: Annotate cache line size field in all
9510         instances of struct processor_costs.
9511
9512 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9513
9514         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9515         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9516         jump_bypass): New counters.
9517         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9518         * dce.c (gate_ud_dce): Same.
9519         (gate_fast_dce): Same.
9520         * dse.c (gate_dse1): New function.
9521         (gate_dse2): New function.
9522         (gate_dse): Merge results of new gate functions.
9523         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9524         (gate_handle_jump_bypass): Add dbg_cnt.
9525         (gate_handle_gcse): Add dbg_cnt.
9526         * ifcvt.c (gate_handle_if_conversion): Same.
9527         (gate_handle_if_after_combine): Same.
9528         (gate_handle_if_after_reload): Same.
9529         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9530
9531 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9532
9533         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9534         line sizes.
9535         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9536
9537 2008-02-26  Jason Merrill  <jason@redhat.com>
9538
9539         PR c++/35315
9540         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9541         alone if it's the naming decl for the type's main variant.
9542
9543 2008-02-26  Tom Tromey  <tromey@redhat.com>
9544
9545         * system.h (USE_MAPPED_LOCATION): Poison.
9546         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9547         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9548         (make_goto_expr_edges): Likewise.
9549         (remove_bb): Likewise.
9550         (execute_warn_function_return): Likewise.
9551         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9552         location_t.
9553         * c-common.c (fname_decl): Remove old location code.
9554         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9555         location code.
9556         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9557         variant.
9558         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9559         (gen_rtx_ASM_INPUT): Likewise.
9560         (gen_rtx_ASM_INPUT_loc): Likewise.
9561         (get_rtx_asm_OPERANDS): Remove.
9562         * cfglayout.c (insn_locators_alloc): Remove old location code.
9563         (set_curr_insn_source_location): Likewise.
9564         (curr_insn_locator): Likewise.
9565         * print-tree.c (print_node): Remove old location code.
9566         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9567         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9568         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9569         location_from_locus.
9570         (construct_exit_block): Remove old location code.
9571         * emit-rtl.c (force_next_line_note): Remove old location code.
9572         * profile.c (branch_prob): Remove old location code.
9573         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9574         LOC_LINE): Remove old-location variants.
9575         * langhooks.c (lhd_print_error_function): Remove old location
9576         code.
9577         * configure, config.in: Rebuilt.
9578         * configure.ac (--enable-mapped-location): Remove.
9579         * c-decl.c (c_init_decl_processing): Remove old location code.
9580         (finish_function): Likewise.
9581         * recog.c (decode_asm_operands): Remove old location code.
9582         * c-pch.c (c_common_read_pch): Remove old location code.
9583         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9584         variants.
9585         * gimple-low.c (lower_function_body): Remove old location code.
9586         * toplev.c (unknown_location): Remove.
9587         (push_srcloc): Remove old-location variant.
9588         (process_options): Remove old location code.
9589         (lang_dependent_init): Likewise.
9590         * input.h (UNKNOWN_LOCATION): Move definition.
9591         (location_t): Undeprecate.
9592         (source_locus): Remove.
9593         (location_from_locus): Remove.
9594         (struct location_s): Remove.
9595         Remove all old-location code.
9596         (input_line, input_filename): Remove.
9597         * final.c (final_scan_insn): Remove old location code.
9598         * diagnostic.c (diagnostic_build_prefix): Remove
9599         USE_MAPPED_LOCATION test.
9600         * tree.h (gimple_stmt) <locus>: Now a location_t.
9601         (tree_exp) <locus>: Likewise.
9602         (DECL_IS_BUILTIN): Remove old-location variant.
9603         (annotate_with_file_line, annotate_with_locus): Likewise.
9604         (expr_locus, set_expr_locus): Update.
9605         * tree.c (build1_stat): Remove old location code.
9606         (last_annotated_node): Remove.
9607         (annotate_with_file_line): Remove old-location variant.
9608         (annotate_with_locus): Likewise.
9609         (expr_location): Remove old location code.
9610         (set_expr_location): Likewise.
9611         (expr_has_location): Likewise.
9612         (expr_locus): Likewise.
9613         (set_expr_locus): Likewise.
9614         (expr_filename): Don't use location_from_locus.
9615         (expr_lineno): Likewise.
9616         * rtl-error.c (location_for_asm): Remove old location code.
9617         * c-lex.c (cb_line_change): Remove old location code.
9618         (fe_file_change): Likewise.
9619         (cb_def_pragma): Likewise.
9620         (c_lex_with_flags): Likewise.
9621         * gengtype.c (do_typedef): Don't special-case location types.
9622         (define_location_structures): Remove.
9623         (main): Don't call define_location_structures.
9624         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9625         code.
9626
9627 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9628
9629         PR 26264
9630         * builtins.def (BUILT_IN_STDARG_START): Remove.
9631         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9632         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9633         * tree-inline.c (inline_forbidden_p_1): Likewise.
9634         
9635 2008-02-26  Richard Guenther  <rguenther@suse.de>
9636
9637         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9638         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9639         (lookup_decl_from_uid): Declare.
9640         (remove_decl_from_map): Likewise.
9641         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9642         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9643         (decl_for_uid_map): New global hashtable mapping DECL_UID
9644         to the decl tree.
9645         (init_ttree): Allocate it.
9646         (insert_decl_to_uid_decl_map): New helper function.
9647         (make_node_stat): Insert new decls into the map.
9648         (copy_node_stat): Likewise.
9649         (lookup_decl_from_uid): New function.
9650         (remove_decl_from_map): Likewise.
9651         (print_decl_for_uid_map_statistics): New helper.
9652         (dump_tree_statistics): Call it.
9653
9654         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9655         (referenced_var_iterator): Adjust.
9656         (FOR_EACH_REFERENCED_VAR): Adjust.
9657         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9658         (num_referenced_vars): Adjust.
9659         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9660         (first_referenced_var): Remove.
9661         (end_referenced_vars_p): Likewise.
9662         (next_referenced_var): Likewise.
9663         (referenced_var_iterator_set): New helper function.
9664         * tree-dfa.c (referenced_var_lookup): Adjust.
9665         (referenced_var_check_and_insert): Likewise.
9666         (remove_referenced_var): Likewise.
9667         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9668         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9669         (verify_call_clobbering): Likewise.
9670         (verify_memory_partitions): Likewise.
9671         (init_tree_ssa): Allocate bitmap instead of hashtable for
9672         referenced_vars.
9673         (delete_tree_ssa): Adjust.
9674         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9675         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9676         (compute_tag_properties): Likewise.
9677         (set_initial_properties): Likewise.
9678         (find_partition_for): Likewise.
9679         (update_reference_counts): Likewise.
9680         (dump_may_aliases_for): Likewise.
9681         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9682         (add_call_clobber_ops): Likewise.
9683         (add_call_read_ops): Likewise.
9684         (get_asm_expr_operands): Likewise.
9685         * tree-into-ssa.c (dump_decl_set): Likewise.
9686         (update_ssa): Likewise.
9687         * tree-sra.c (scan_function): Likewise.
9688         (decide_instantiations): Likewise.
9689         (scalarize_parms): Likewise.
9690         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9691         (dsa_named_for): Likewise.
9692         * tree-ssa-structalias.c (update_alias_info): Likewise.
9693         (merge_smts_into): Likewise.
9694
9695 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9696
9697         PR 34351
9698         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9699         * c-opts.c (c_common_handle_option): Wall enables
9700         Wvolatile-register-var.
9701         * common.opt: Move Wvolatile-register-var to...
9702         * c.opt: ...here.
9703         
9704 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9705
9706         * common.opt (Wlarger-than=): New.
9707         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9708         -Wlarger-than=.
9709         * opts.c (common_handle_option): Handle -Wlarger-than=.
9710         * optc-gen.awk: Likewise.
9711         * opth-gen.awk: Likewise.
9712         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9713         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9714         
9715 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9716
9717         * c-common.c (match_case_to_enum_1): Add appropriate
9718         OPT_W* parameter to warning.
9719         (c_do_switch_warnings): Likewise.
9720         * c-typeck.c (warning_init): Add one more parameter following
9721         'warning' function.
9722         (push_init_level): Update call to warning_init.
9723         (pop_init_level): Likewise.
9724         (add_pending_init): Likewise.
9725         (output_init_element: Likewise.
9726
9727 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9728
9729         PR 28322
9730         * toplev.c (toplev_main): If there are warnings or error, print
9731         errors for ignored options.
9732         * opts.c (ignored_options): New static variable.
9733         (postpone_unknown_option_error): New.
9734         (print_ignored_options): New.
9735         (handle_option): Postpone errors for unknown -Wno-* options.
9736         * opts.h (print_ignored_options): Declare.
9737         
9738 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9739
9740         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9741         to "ghost".
9742
9743 2008-02-25  Richard Guenther  <rguenther@suse.de>
9744
9745         Revert:
9746         2008-02-25  Richard Guenther  <rguenther@suse.de>
9747
9748         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9749         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9750         (lookup_decl_from_uid): Declare.
9751         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9752         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9753         (decl_for_uid_map): New global hashtable mapping DECL_UID
9754         to the decl tree.
9755         (init_ttree): Allocate it.
9756         (insert_decl_to_uid_decl_map): New helper function.
9757         (make_node_stat): Insert new decls into the map.
9758         (copy_node_stat): Likewise.
9759         (lookup_decl_from_uid): New function.
9760         (print_decl_for_uid_map_statistics): New helper.
9761         (dump_tree_statistics): Call it.
9762
9763         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9764         (referenced_var_iterator): Adjust.
9765         (FOR_EACH_REFERENCED_VAR): Adjust.
9766         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9767         (num_referenced_vars): Adjust.
9768         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9769         (first_referenced_var): Remove.
9770         (end_referenced_vars_p): Likewise.
9771         (next_referenced_var): Likewise.
9772         (referenced_var_iterator_set): New helper function.
9773         * tree-dfa.c (referenced_var_lookup): Adjust.
9774         (referenced_var_check_and_insert): Likewise.
9775         (remove_referenced_var): Likewise.
9776         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9777         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9778         (verify_call_clobbering): Likewise.
9779         (verify_memory_partitions): Likewise.
9780         (init_tree_ssa): Allocate bitmap instead of hashtable for
9781         referenced_vars.
9782         (delete_tree_ssa): Adjust.
9783         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9784         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9785         (compute_tag_properties): Likewise.
9786         (set_initial_properties): Likewise.
9787         (find_partition_for): Likewise.
9788         (update_reference_counts): Likewise.
9789         (dump_may_aliases_for): Likewise.
9790         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9791         (add_call_clobber_ops): Likewise.
9792         (add_call_read_ops): Likewise.
9793         (get_asm_expr_operands): Likewise.
9794         * tree-into-ssa.c (dump_decl_set): Likewise.
9795         (update_ssa): Likewise.
9796         * tree-sra.c (scan_function): Likewise.
9797         (decide_instantiations): Likewise.
9798         (scalarize_parms): Likewise.
9799         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9800         (dsa_named_for): Likewise.
9801         * tree-ssa-structalias.c (update_alias_info): Likewise.
9802         (merge_smts_into): Likewise.
9803
9804 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9805
9806         PR fortran/29549
9807         * doc/invoke.texi (-fcx-limited-range): Document new option.
9808         * toplev.c (process_options): Handle -fcx-fortran-rules.
9809         * common.opt: Add documentation for -fcx-fortran-rules.
9810
9811 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9812
9813         PR c/35162
9814         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9815         actual behaviour and C99.
9816         
9817 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9818
9819         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9820         (ASM_CPU_POWER6_SPEC): Likewise.
9821         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9822         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9823         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9824
9825 2008-02-25  Richard Guenther  <rguenther@suse.de>
9826
9827         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9828         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9829         (lookup_decl_from_uid): Declare.
9830         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9831         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9832         (decl_for_uid_map): New global hashtable mapping DECL_UID
9833         to the decl tree.
9834         (init_ttree): Allocate it.
9835         (insert_decl_to_uid_decl_map): New helper function.
9836         (make_node_stat): Insert new decls into the map.
9837         (copy_node_stat): Likewise.
9838         (lookup_decl_from_uid): New function.
9839         (print_decl_for_uid_map_statistics): New helper.
9840         (dump_tree_statistics): Call it.
9841
9842         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9843         (referenced_var_iterator): Adjust.
9844         (FOR_EACH_REFERENCED_VAR): Adjust.
9845         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9846         (num_referenced_vars): Adjust.
9847         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9848         (first_referenced_var): Remove.
9849         (end_referenced_vars_p): Likewise.
9850         (next_referenced_var): Likewise.
9851         (referenced_var_iterator_set): New helper function.
9852         * tree-dfa.c (referenced_var_lookup): Adjust.
9853         (referenced_var_check_and_insert): Likewise.
9854         (remove_referenced_var): Likewise.
9855         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9856         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9857         (verify_call_clobbering): Likewise.
9858         (verify_memory_partitions): Likewise.
9859         (init_tree_ssa): Allocate bitmap instead of hashtable for
9860         referenced_vars.
9861         (delete_tree_ssa): Adjust.
9862         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9863         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9864         (compute_tag_properties): Likewise.
9865         (set_initial_properties): Likewise.
9866         (find_partition_for): Likewise.
9867         (update_reference_counts): Likewise.
9868         (dump_may_aliases_for): Likewise.
9869         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9870         (add_call_clobber_ops): Likewise.
9871         (add_call_read_ops): Likewise.
9872         (get_asm_expr_operands): Likewise.
9873         * tree-into-ssa.c (dump_decl_set): Likewise.
9874         (update_ssa): Likewise.
9875         * tree-sra.c (scan_function): Likewise.
9876         (decide_instantiations): Likewise.
9877         (scalarize_parms): Likewise.
9878         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9879         (dsa_named_for): Likewise.
9880         * tree-ssa-structalias.c (update_alias_info): Likewise.
9881         (merge_smts_into): Likewise.
9882
9883 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9884
9885         PR target/35258
9886         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9887         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9888         * alias.h (nonoverlapping_memrefs_p): Likewise.
9889
9890 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9891
9892         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9893         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9894         __emultls_get_address, __emultls_register_common,
9895         __floatundi?f, and _Unwind_GetIPInfo.
9896         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9897         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9898         (gen_regparm_prefix): Likewise.
9899         (i386_nlm_encode_section_info): Sync with
9900         config/i386/winnt.c:i386_pe_encode_section_info().
9901         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9902         i386_nlm_mangle_decl_assembler_name): New.
9903         (netware_override_options): New.
9904         * config/i386/netware.h (netware_override_options): Declare.
9905         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9906         (i386_nlm_mangle_decl_assembler_name): Declare.
9907         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9908
9909 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9910
9911         PR other/32948
9912         * c-decl.c (grokdeclarator): Remove unused local variables
9913         `typedef_type' and `type_as_written'.
9914         * bb-reorder.c
9915         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9916         unused local variable `has_hot_blocks'.
9917         (fix_crossing_conditional_branches): Remove unused local variable
9918         `prev_bb'.
9919         
9920 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9921
9922         PR middle-end/19984
9923         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9924         using DEF_C99_BUILTIN.
9925         (BUILT_IN_NANF): Ditto.
9926         (BUILT_IN_NANL): Ditto.
9927
9928 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9929             Revital Eres  <eres@il.ibm.com>
9930
9931         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9932         regarding the order of two dependent insns in the same row.
9933
9934 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9935
9936         * stor-layout.c (layout_decl): Do not bump the alignment of a
9937         bit-field to more than byte alignment if it is packed.
9938
9939 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9940
9941         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9942         e300c2 and e300c3.
9943
9944 2008-02-24  Diego Novillo  <dnovillo@google.com>
9945
9946         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9947
9948         PR 33738
9949         * tree-vrp.c (vrp_evaluate_conditional): With
9950         -Wtype-limits, emit a warning when comparing against a
9951         constant outside the natural range of OP0's type.
9952         * c.opt (Wtype-limits): Move ...
9953         * common.opt (Wtype-limits): ... here.
9954
9955 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9956
9957         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9958         * config/rs6000/e300c2c3.md: New file.
9959         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9960         e300c2 and e300c3.
9961         (rs6000_override_options): Add e300c2 and e300c3 cases to
9962         processor_target_table. Do not allow usage of Altivec or Spe
9963         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9964         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9965         * config/rs6000/rs6000.h (processor_type): Add
9966         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9967         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9968         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9969         and ppce300c3. Include e300c2c3.md.
9970
9971 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9972
9973         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9974         instead of TARGET_STRICT_ALIGN.
9975
9976 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9977
9978         * explow.c (memory_address): Assert that the generated address is
9979         valid.
9980
9981 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9982
9983         PR target/25477
9984         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9985         * config/darwin-ppc-ldouble-patch.def: New file.
9986         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9987         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9988         SUBTARGET_INIT_BUILTINS if defined.
9989         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9990         New functions.
9991
9992 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9993
9994         PR rtl-opt/33512
9995         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9996         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9997
9998 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9999
10000         PR pch/35027
10001         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
10002         file" warning condtional on -Winvalid-PCH.
10003
10004 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
10005
10006         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
10007
10008 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
10009
10010         PR target/22076
10011         PR target/34256 
10012         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
10013         prevent reload from using MMX registers.
10014         (*mov<mode>_internal): Ditto.
10015         (*movv2sf_internal_rex64): Ditto.
10016         (*movv2sf_internal): Ditto.
10017
10018 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10019
10020         PR documentation/31569
10021         * doc/install.texi2html: Use makeinfo --no-number-sections.
10022
10023 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10024
10025         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
10026         ensure that we can address an entire entity > 8 bytes.  Don't
10027         generate reg+reg addressing for such data.
10028
10029 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10030
10031         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
10032         strings when optimizing for size, unless the target cares about
10033         alignment.
10034
10035 2008-02-22  Tom Tromey  <tromey@redhat.com>
10036
10037         * regclass.c (current_pass): Remove declaration.
10038
10039 2008-02-22  Anatoly Sokolov <aesok@post.ru>
10040
10041         * config/avr/libgcc.S (__RAMPZ__): Define.
10042         (__do_copy_data): Add for devices with 128KB code memory.
10043
10044 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10045
10046         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10047         Use spe_abi.
10048         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
10049
10050 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
10051
10052         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
10053         GENNONACR_REGS.
10054
10055 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10056
10057         PR c/19999
10058         * c-typeck.c (build_binary_op): Warn about floating point
10059         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
10060
10061 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
10062
10063         PR target/34526
10064         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
10065         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
10066         add vrsave.
10067         (rs6000_override_options): Set altivec_abi as default, not override,
10068         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
10069         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
10070         is used; use new member spe_abi.
10071         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
10072         spe_abi and altivec_abi.
10073
10074 2008-02-22  Tomas Bily  <tbily@suse.cz>
10075
10076         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
10077
10078 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10079
10080         PR bootstrap/35273
10081         * config.build (build_file_translate): Set to `CMD //c' only if
10082         it works.
10083         * Makefile.in (build_file_translate): Improve comment.
10084
10085 2008-02-21  Jan Hubicka  <jh@suse.cz>
10086
10087         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
10088         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
10089         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
10090
10091 2008-02-21  Michael Matz  <matz@suse.de>
10092
10093         PR target/35264
10094         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
10095
10096 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
10097
10098         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
10099         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
10100         as insn constraint.
10101         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
10102         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
10103         SSE_VEC_FLOAT_MODE_P as insn constraint.
10104         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
10105         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
10106         sse4a_movntdf using MODEF mode iterator.
10107         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
10108         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
10109         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
10110         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
10111         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
10112         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
10113         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
10114
10115 2008-02-21  Richard Guenther  <rguenther@suse.de>
10116
10117         * tree.def (PAREN_EXPR): New tree code.
10118         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
10119         and PAREN_EXPR.
10120         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
10121         * expr.c (expand_expr_real_1): Likewise.
10122         * tree-inline.c (estimate_num_insns_1): Likewise.
10123         * tree-complex.c (expand_complex_move): Likewise.
10124         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
10125         as plain x.
10126
10127 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10128
10129         PR target/35225
10130         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
10131
10132 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10133
10134         PR target/35190
10135         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
10136
10137         * config/sh/sh.c (find_barrier): Don't go past
10138         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
10139
10140 2008-02-20  DJ Delorie  <dj@redhat.com>
10141
10142         * config/h8300/h8300.md (insv): Force source operand to be a register.
10143
10144         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
10145         as a jump, not as a plain insn.
10146         
10147 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
10148
10149         * doc/invoke.texi (Warning Options): Add new option
10150         -Wframe-larger-than=.
10151         (-Wframe-larger-than): Document.
10152
10153         * flags.h (warn_frame_larger_than, frame_larger_than_size):
10154         Add declarations for new option variables.
10155
10156         * final.c (final_start_function): Check the frame size
10157         before emission and issue a Wframe-larger-than warning.
10158
10159         * opts.c (warn_frame_larger_than, frame_larger_than_size):
10160         Add definitions for new option variables.
10161         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
10162
10163         * common.opt (Wframe-larger-than=): New option.
10164
10165 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10166
10167         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
10168         (<sse>_div<mode>3): Ditto.
10169         (<sse>_vmdiv<mode>3): Ditto.
10170         (<sse>_vmsqrt<mode>2): Ditto.
10171         (*smax<mode>3): Ditto.
10172         (sse5_frcz<mode>2): Ditto.
10173         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
10174         as insn constraint.
10175
10176 2008-02-20  Richard Guenther  <rguenther@suse.de>
10177
10178         PR middle-end/35265
10179         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
10180         be happy with INTEGRAL_TYPE_P.
10181
10182 2008-02-20  Richard Guenther  <rguenther@suse.de>
10183
10184         * fold-const.c (split_tree): Associate floatig-point expressions
10185         if flag_associative_math is set.
10186
10187 2008-02-20  Richard Guenther  <rguenther@suse.de>
10188
10189         * tree.h (fold_real_zero_addition_p): Declare.
10190         * fold-const.c (fold_real_zero_addition_p): Export.
10191         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
10192         floating-point operations with zero and one.
10193
10194 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
10195
10196         * doc/install.texi: Correct references to CFLAGS, replacing them
10197         with BOOT_CFLAGS.  Document flags used during bootstrap for
10198         target libraries.
10199                                 
10200 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10201
10202         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
10203         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
10204         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
10205         insn constraint.
10206         (smin<mode>3): Ditto from similar patterns.
10207         (smax<mode>3): Ditto.
10208         (*ieee_smin<mode>3): Ditto.
10209         (*ieee_smax<mode>3): Ditto.
10210         * config/i386/sse.md (sse): New mode attribute.
10211         (mov<mode>): Macroize expander from movv4sf and movv2df using
10212         SSEMODEF2P mode iterator.
10213         (<sse>_movnt<mode>): Ditto from similar patterns. Use
10214         SSE_VEC_FLOAT_MODE_P as insn constraint.
10215         (storent<mode>): Ditto.
10216         (storent<mode>): Macroize expander from storentsf and storentdf using
10217         MODEF mode iterator.
10218         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
10219         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
10220         (abs<mode>2): Ditto from similar patterns.
10221         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
10222         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
10223         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
10224         (<sse>_vmsqrt<mode>2): Ditto.
10225         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
10226         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
10227         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
10228         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
10229         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
10230         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
10231         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
10232         insn constraint.
10233         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
10234         iterator and SSE_FLOAT_MODE_P as insn constraint.
10235         (<sse>_ucomi): Ditto from similar patterns.
10236         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
10237         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
10238         SSE_VEC_FLOAT_MODE_P as insn constraint.
10239         (vcond<mode>): Ditto from similar patterns.
10240         (and<mode>3, *and<mode>3): Ditto.
10241         (<sse>_nand<mode>3): Ditto.
10242         (ior<mode>3, *ior<mode>3): Ditto.
10243         (xor<mode>3, *xor<mode>3): Ditto.
10244         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
10245         iterator and SSE_FLOAT_MODE_P as insn constraint.
10246         (*nand<mode>3): Ditto from similar patterns.
10247         (*ior<mode>3): Ditto.
10248         (*xor<mode>3): Ditto.
10249
10250 2008-02-20  Ira Rosen  <irar@il.ibm.com>
10251
10252         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
10253         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
10254         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
10255
10256 2008-02-19  Jan Hubicka  <jh@suse.cz>
10257
10258         * predict.c (tree_bb_level_predictions): Remove variable next
10259         mistakely introduced by previous commit.
10260
10261 2008-02-19  Jan Hubicka  <jh@suse.cz>
10262
10263         * predict.c (predict_paths_leading_to): Rewrite.
10264         (predict_paths_for_bb): New.
10265         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
10266
10267 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10268
10269         PR bootstrap/35218
10270         * Makefile.in (build_file_translate): New.
10271         (gcc-vers.texi): Use it for translating $(abs_srcdir).
10272         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
10273         * configure.ac (build_file_translate): Substitute it.
10274         * configure: Regenerate.
10275
10276 2008-02-19  Jan Hubicka  <jh@suse.cz>
10277
10278         PR rtl-optimization/34408
10279         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
10280         invalid sharing.
10281
10282 2008-02-19  Jan Hubicka  <jh@suse.cz>
10283
10284         PR middle-end/28779
10285         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
10286         call_expr.
10287
10288 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
10289
10290         PR Ada/35186
10291         * config/i386/i386-modes.def: Revert the last DI alignment
10292         change until Ada people can look into it.
10293
10294 2008-02-19  Nick Clifton  <nickc@redhat.com>
10295
10296         * opts.c (print_specific_help): Fix typo in --help text.
10297
10298 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
10299
10300         PR target/35239
10301         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
10302         32-bit inline asm without asm alternatives for host GCC < 3.0.
10303
10304 2008-02-19  Richard Guenther  <rguenther@suse.de>
10305
10306         PR tree-optimization/34989
10307         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
10308         Allow propagation to INDIRECT_REF if we can simplify only.
10309
10310 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10311
10312         * c-common.c (warn_for_collisions_1): Use appropriate option when
10313         warning.
10314
10315 2008-02-19  Nick Clifton  <nickc@redhat.com>
10316
10317         PR other/31349
10318         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
10319         (handle_options): Fix indentation.
10320         (print_filtered_help): If no language-specific options were
10321         displayed tell the user how to list all the options supported by
10322         the language's front-end.
10323         (print_specific_help): Fix indentation and remove duplicate line.
10324         (common_handle_option): Handle the -v option.
10325         For --help enable the display of undocumented options if the -v
10326         switch has been included on the command line.
10327         For --help= check for overlaps in the arguments between the option
10328         classes and the language names and issue a warning when they
10329         cannot be disambiguated.
10330         * c.opt (v): Pass on to the common option handler.
10331
10332 2008-02-19  Revital Eres  <eres@il.ibm.com> 
10333
10334         * modulo-sched.c (sms_schedule): Change dump message when
10335         create_ddg function fails.
10336         (try_scheduling_node_in_cycle): Rename row to cycle.
10337         (print_partial_schedule): Rename CYCLE to ROW.
10338
10339 2008-02-19  Christian Bruel  <christian.bruel@st.com>
10340             Zdenek Dvorak  <ook@ucw.cz>
10341
10342         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
10343
10344 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10345
10346         PR target/33555
10347         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
10348         (*x86_movdicc_0_m1_se): Ditto.
10349
10350 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10351
10352         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
10353         (CMPtype): Define as __gcc_CMPtype.
10354         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
10355         (CMPtype): Define as __gcc_CMPtype.
10356
10357 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
10358
10359         Support valgrind 3.3 for --enable-checking=valgrind.
10360         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
10361         here.
10362         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
10363         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
10364         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
10365         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
10366         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
10367         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
10368         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
10369         respectively.
10370         * ggc-zone.c: Similar.
10371         * ggc-page.c: Similar.
10372
10373 2008-02-19  Paul Brook  <paul@codesourcery.com>
10374
10375         PR target/35071
10376         * config/arm/ieee754-df.S: Fix do_it typo.
10377         * config/arm/ieee754-sf.S: Fix do_it typo.
10378
10379 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10380
10381         PR target/35189
10382         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
10383         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
10384         (OPTION_MASK_ISA_SSE_SET): Likewise.
10385         (OPTION_MASK_ISA_SSE2_SET): Likewise.
10386         (OPTION_MASK_ISA_SSE3_SET): Likewise.
10387         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
10388         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
10389         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
10390         (OPTION_MASK_ISA_SSE4_SET): Likewise.
10391         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
10392         (OPTION_MASK_ISA_SSE5_SET): Likewise.
10393         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
10394         (OPTION_MASK_ISA_MMX_UNSET): Updated.
10395         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
10396         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
10397         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
10398         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
10399         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
10400         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
10401         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
10402         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
10403         (OPTION_MASK_ISA_SSE4): Removed.
10404         (ix86_handle_option): Turn on bits in ix86_isa_flags and
10405         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
10406         (override_options): Don't turn on implied SSE/MMX bits in
10407         ix86_isa_flags.
10408
10409 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10410
10411         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10412         32bit host.
10413
10414 2008-02-18  Joey Ye  <joey.ye@intel.com>
10415
10416         PR middle-end/34921
10417         * tree-nested.c (insert_field_into_struct): Set type alignment
10418         to field alignment if the former is less than the latter.
10419
10420 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
10421
10422         * BASE-VER: Set to 4.4.0.
10423
10424 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10425
10426         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10427         * doc/cfg.texi: Likewise.
10428         * doc/extend.texi: Likewise.
10429         * doc/gty.texi: Likewise.
10430         * doc/invoke.texi: Likewise.
10431         * doc/loop.texi: Likewise.
10432         * doc/md.texi: Likewise.
10433         * doc/passes.texi: Likewise.
10434         * doc/rtl.texi: Likewise.
10435         * doc/sourcebuild.texi: Likewise.
10436         * doc/tm.texi: Likewise.
10437         * doc/tree-ssa.texi: Likewise.
10438
10439 2008-02-17  Richard Guenther  <rguenther@suse.de>
10440
10441         PR middle-end/35227
10442         * tree-complex.c (init_parameter_lattice_values): Handle parameters
10443         without default definition.
10444
10445 2008-02-17  Richard Guenther  <rguenther@suse.de>
10446
10447         PR tree-optimization/35231
10448         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10449         if A | B != 1.
10450
10451 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
10452
10453         Revert:
10454         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
10455         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10456         libgcc_cmp_return mode.
10457
10458 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10459
10460         PR c/28368
10461         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10462
10463 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
10464
10465         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10466         multilibs.
10467
10468 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10469
10470         * doc/c-tree.texi: Use `@.' where appropriate.
10471         * doc/extend.texi: Likewise.
10472         * doc/install.texi: Likewise.
10473         * doc/invoke.texi: Likewise.
10474         * doc/loop.texi: Likewise.
10475         * doc/makefile.texi: Likewise.
10476         * doc/md.texi: Likewise.
10477         * doc/passes.texi: Likewise.
10478         * doc/standards.texi: Likewise.
10479         * doc/tm.texi: Likewise.
10480
10481 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10482
10483         PR middle-end/35196
10484         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10485         in entry_bb.
10486         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10487         rather than in entry_bb.
10488
10489 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10490
10491         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10492         libgcc_cmp_return mode.
10493
10494 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10495
10496         PR middle-end/35130
10497         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10498         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10499
10500 2008-02-15  Richard Guenther  <rguenther@suse.de>
10501             Zdenek Dvorak  <ook@ucw.cz>
10502
10503         PR tree-optimization/35164
10504         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10505         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10506         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10507         Only propagate addresses which do not have abnormal SSA_NAMEs
10508         in their operands.
10509
10510 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10511
10512         PR target/35088
10513         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10514
10515 2008-02-15  Jan Hubicka  <jh@suse.cz>
10516
10517         PR middle-end/35149
10518         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10519
10520 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10521
10522         PR middle-end/34621
10523         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10524         when calculating alignment_pad.
10525
10526 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10527
10528         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10529         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10530         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10531         and STACK_BOUNDARY define.
10532
10533 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10534
10535         PR preprocessor/35061
10536         * c-pragma.c (handle_pragma_pop_macro): Check that
10537         pushed_macro_table has been allocated.
10538
10539 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10540
10541         PR middle-end/35136
10542         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10543         (force_gimple_operand): Likewise.
10544         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10545         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10546         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10547         (find_interesting_uses_address): Check addressability and alignment
10548         of the base expression only after substituting bases of IVs into it.
10549
10550 2008-02-14  Michael Matz  <matz@suse.de>
10551
10552         PR target/34930
10553         * function.c (instantiate_virtual_regs_in_insn): Reload address
10554         before falling back to reloading the whole operand.
10555
10556 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10557
10558         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10559         before the first section switch note.
10560
10561 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10562
10563         * doc/bugreport.texi: Update copyright years.
10564         * doc/c-tree.texi: Likewise.
10565         * doc/cfg.texi: Likewise.
10566         * doc/cpp.texi: Likewise.
10567         * doc/cppinternals.texi: Likewise.
10568         * doc/fragments.texi: Likewise.
10569         * doc/frontends.texi: Likewise.
10570         * doc/gcc.texi: Likewise.
10571         * doc/gty.texi: Likewise.
10572         * doc/hostconfig.texi: Likewise.
10573         * doc/implement-c.texi: Likewise.
10574         * doc/libgcc.texi: Likewise.
10575         * doc/loop.texi: Likewise.
10576         * doc/makefile.texi: Likewise.
10577         * doc/options.texi: Likewise.
10578         * doc/passes.texi: Likewise.
10579         * doc/rtl.texi: Likewise.
10580         * doc/sourcebuild.texi: Likewise.
10581         * doc/standards.texi: Likewise.
10582         * doc/tree-ssa.texi: Likewise.
10583         * doc/trouble.texi: Likewise.
10584
10585         * doc/extend.texi: Use @: or add comma where appropriate.
10586         * doc/invoke.texi: Likewise.
10587         * doc/tm.texi: Likewise.
10588
10589 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10590
10591         PR target/34393
10592         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10593         to a reg.
10594
10595 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10596
10597         * doc/md.texi (clz, ctz): Add reference.
10598         * doc/rtl.texi (clz, ctz): Likewise.
10599
10600 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10601
10602         PR other/35148
10603         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10604         srcdir.
10605
10606 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10607
10608         * config/s390/s390.c (struct constant_pool): New field
10609         emit_pool_after added.
10610         (s390_mainpool_start): Set the emit_pool_after flag according
10611         to the section switch notes.
10612         (s390_mainpool_finish): Consider emit_pool_after when emitting
10613         the literal pool at the end of the function.
10614         (s390_chunkify_start): Force literal pool splits at section
10615         switch notes.
10616
10617 2008-02-13  Michael Matz  <matz@suse.de>
10618
10619         PR debug/35065
10620         * var-tracking.c (clobber_variable_part): Correctly traverse the
10621         list.
10622
10623 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10624
10625         PR 29673
10626         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10627         Add -fdump-ipa-inline.
10628         * tree-dump.c (dump_files): Remove tree-inlined dump.
10629         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10630         
10631 2008-02-12  Richard Guenther  <rguenther@suse.de>
10632
10633         PR tree-optimization/35171
10634         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10635         default defs.
10636
10637 2008-02-12  Richard Guenther  <rguenther@suse.de>
10638
10639         PR middle-end/35163
10640         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10641         value-preserving mode.  Disallow final truncation.
10642
10643 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10644
10645         PR middle-end/35136
10646         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10647         code from here to...
10648         (force_gimple_operand): ...here.
10649
10650 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10651
10652         PR c++/35144
10653         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10654         non-compatible pointers.
10655         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10656         different FIELD_DECLs, try harder by comparing field offsets, sizes
10657         and types.
10658
10659         PR inline-asm/35160
10660         * function.c (match_asm_constraints_1): Don't replace the same input
10661         multiple times.
10662
10663 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10664
10665         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10666         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10667         (expand_epilogue): Restore RAMPZ register.
10668         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10669
10670 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10671
10672         * config/i386/cygwin.asm: (__alloca): Correct calling
10673         convention and alignment.
10674         (__chkstk): Force 8 byte stack alignment.
10675
10676 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10677             Richard Guenther  <rguenther@suse.de>
10678
10679         PR tree-optimization/33992
10680         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10681         the zero we compare against.
10682
10683 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10684
10685         PR libfortran/35063
10686         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10687         to CloseHandle after unlocking to prevent accumulation of handle
10688         count.
10689
10690 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10691
10692         PR middle_end/34150
10693         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10694         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10695         and update LABEL_NUSES during and after reload.
10696
10697 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10698
10699         PR middle-end/34627
10700         * combine.c (simplify_if_then_else): Make sure the comparison is
10701         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10702
10703 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10704
10705         PR bootstrap/35051
10706         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10707         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10708         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10709         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10710         * tree.h (get_type_static_bounds): Likewise.
10711
10712 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10713
10714         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10715         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10716         Make -Wfoo language annotations match what the compiler outputs.
10717
10718 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10719
10720         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10721         intrinsics spu_convts, spu_convtu, spu_convtf.
10722
10723 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10724
10725         * doc/extend.texi (Function Attributes) <noinline>: Mention
10726         asm ("") as method to keep calls.
10727
10728 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10729
10730         PR other/32754
10731         * doc/options.texi (Options): Replace references to opts.sh with
10732         optc-gen.awk.
10733         * opts-common.c: Likewise.
10734         * optc-gen.awk: Likewise.
10735         
10736 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10737
10738         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10739
10740 2008-02-07  Richard Henderson  <rth@redhat.com>
10741
10742         PR rtl-opt/33410
10743         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10744         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10745         funny mode.
10746
10747 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10748
10749         PR tree-optimization/35085
10750         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10751         for operand entry oe2 in addition to operand entry oe3 in order to
10752         expose more opportunities for vectorizer sum reduction.
10753
10754 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10755
10756         PR other/35107
10757         * Makefile.in (LIBS): Remove $(GMPLIBS).
10758         (cc1-dummy, cc1): Add $(GMPLIBS).
10759
10760 2008-02-06  Jan Hubicka  <jh@suse.cz>
10761
10762         PR target/23322
10763         * i386.md (moddf_integer): Do not produce partial memory stalls for
10764         targets where it hurts.
10765
10766 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10767
10768         PR target/35083
10769         * optabs.c (expand_float): Do not check for decimal modes when
10770         expanding unsigned integer through signed conversion.
10771
10772 2008-02-06  Nick Clifton  <nickc@redhat.com>
10773
10774         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10775         inside the clobber with a match_operand and duplicated operand
10776         number in the constraint.
10777         (ineqbranchsi): Delete redundant comment.
10778
10779 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10780
10781         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10782         builtin_define ("__USE_INIT_FINI__").
10783         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10784         -msx multilibs.
10785         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10786
10787 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10788
10789         PR documentation/30330
10790         * doc/invoke.texi (C++ Dialect Options)
10791         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10792         For each warning option -Wfoo that allows -Wno-foo, ensure both
10793         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10794         entry of -Wswitch-default, index -Wnormalized= including the
10795         `=', and -Wlarger-than-@var{len} including @var{len}.
10796
10797 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10798
10799         * config/i386/i386.md (floatunssisf2): Use
10800         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10801         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10802         Macroize expander using MODEF mode iterator.
10803
10804 2008-02-05  Diego Novillo  <dnovillo@google.com>
10805
10806         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10807
10808         PR 33738
10809         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10810
10811 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10812
10813         PR other/35070
10814         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10815
10816 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10817
10818         PR target/35084
10819         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10820         to indicate if a message should be generated.
10821         (init_cumulative_args): Updated.
10822         (function_value_32): Likewise.
10823
10824 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10825
10826         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10827
10828 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10829
10830         PR target/35083
10831         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10832         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10833
10834 2008-02-04  Diego Novillo  <dnovillo@google.com>
10835
10836         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10837
10838         PR 33738
10839         * tree-vrp.c (vrp_evaluate_conditional): With
10840         -Wtype-limits, emit a warning when comparing against a
10841         constant outside the natural range of OP0's type.
10842
10843 2008-02-04  Richard Guenther  <rguenther@suse.de>
10844
10845         PR middle-end/33631
10846         * expr.c (count_type_elements): Give for unions instead of
10847         guessing.
10848
10849 2008-02-04  Richard Guenther  <rguenther@suse.de>
10850
10851         PR middle-end/35043
10852         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10853         to TYPE_DOMAINs base type instead of using bitsizetype here.
10854
10855 2008-02-03  Jason Merrill  <jason@redhat.com>
10856
10857         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10858
10859 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10860
10861         PR other/29972
10862         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10863         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10864         (RS/6000 and PowerPC Options): Fix typos and markup.
10865         * doc/passes.texi (Tree-SSA passes): Likewise.
10866
10867 2008-02-02  Michael Matz  <matz@suse.de>
10868
10869         PR target/35045
10870         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10871         from record_last_reg_set_info.
10872         (record_last_reg_set_info): Take an RTX argument, iterate over all
10873         constituent hardregs.
10874         (record_last_set_info, record_opr_changes): Change calls to
10875         new signature or to record_last_reg_set_info_regno.
10876
10877 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10878
10879         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10880
10881 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10882
10883         PR rtl-optimization/34773
10884         * reg-notes.def (EQUAL): Mention significance of combination of
10885         REG_EQUAL and REG_RETVAL.
10886         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10887         insn that has a REG_RETVAL.
10888
10889 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10890
10891         PR bootstrap/33781
10892         * configure.ac (--enable-fixed-point): Disable unless explicitly
10893         requested on IRIX.
10894         * configure: Regenerate.
10895
10896 2008-02-01  Richard Guenther  <rguenther@suse.de>
10897
10898         PR other/35042
10899         * invoke.texi (-finline-limit): Remove no longer true parts
10900         of the documentation.  Note that there is no default value.
10901
10902 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10903             Mark Mitchell  <mark@codesourcery.com>
10904             Ben Elliston  <bje@au.ibm.com>
10905
10906         PR c/29326
10907         * doc/extend.texi (Other Builtins): Document.
10908
10909 2008-01-31  Tom Browder <tom.browder@gmail.com>
10910
10911         * doc/c-tree.texi (Types): Fix grammar.
10912         (Expression trees): Ditto.
10913         * doc/passes.texi (Tree-SSA passes): Ditto.
10914         
10915         * doc/configterms.texi (Configure Terms): Fix typo.
10916         * doc/cpp.texi (Common Predefined Macros): Ditto.
10917         * doc/md.texi (Machine Constraints): Ditto.
10918         
10919         * doc/makefile.texi (Makefile): Add comma.
10920
10921 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10922             Gerald Pfeifer  <gerald@pfeifer.com>
10923         
10924         * doc/sourcebuild.texi (Front End): Remove references to CVS
10925         and CVSROOT/modules.
10926         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10927         (Back End): Remove reference to CVS.
10928
10929 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10930
10931         PR target/34900
10932         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10933         comment from...
10934         (mips16_gp_pseudo_reg): ...here.
10935         * config/mips/mips.md (load_const_gp): Replace with...
10936         (load_const_gp_<mode>): ...this :P-based insn.
10937
10938 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10939
10940         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10941         options. Minor fixes.
10942         (-std): Move reference to standards closer to where language
10943         standards are first mentioned.
10944         
10945 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10946
10947         PR rtl-optimization/34995
10948         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10949         parameter and return a bool.  If the rtx parameter is nonnull,
10950         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10951         (find_reloads): Update call accordingly.  Pass the new operand
10952         if it needed no address reloads, otherwise pass null.
10953
10954 2008-01-30  Richard Henderson  <rth@redhat.com>
10955
10956         PR c/34993
10957         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10958         for unbounded arrays.
10959
10960 2008-01-30  Silvius Rus  <rus@google.com>
10961
10962         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10963
10964 2008-01-30  Jan Hubicka  <jh@suse.cz>
10965
10966         PR target/34982
10967         * i386.c (init_cumulative_args): Use real function declaration when
10968         calling locally.
10969
10970 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10971
10972         PR rtl-optimization/34998
10973         * global.c (build_insn_chain): Treat non-subreg_lowpart
10974         SUBREGs of pseudos as clobbering all the words covered by the
10975         SUBREG, not just all the bytes.
10976         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10977         original df_ref rather than an extract parameter.
10978         (global_conflicts): Update call accordingly.
10979
10980 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10981
10982         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10983         the overflow check to make it easier to read.
10984         (__fixtfdi): Change the type of the ll member in union
10985         long_double to UDItype_x.
10986
10987 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10988
10989         PR middle-end/34969
10990         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10991         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10992         * tree-inline.c (fold_marked_statements): Call
10993         cgraph_update_edges_for_call_stmt if folding a call statement.
10994         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10995         debug_generic_stmt calls, reset it back afterwards.
10996
10997         PR c/35017
10998         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10999         static decls.
11000         * c-typeck.c (build_external_ref): Don't pedwarn about
11001         static vars in current function's scope.
11002
11003 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
11004
11005         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
11006
11007 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
11008
11009         PR c/35002
11010         * ipa-struct-reorg.c: Fix spelling.
11011         * params.def: Ditto.
11012
11013 2008-01-29  Richard Guenther  <rguenther@suse.de>
11014
11015         PR middle-end/35006
11016         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
11017         field.
11018         * tree-inline.c (remap_type): Increment remapping_type_depth
11019         around remapping types.
11020         (copy_body_r): Only add referenced variables if they are referenced
11021         from code, not types.
11022
11023 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
11024
11025         PR c++/34055
11026         PR c++/34103
11027         PR c++/34219
11028         PR c++/34606
11029         PR c++/34753
11030         PR c++/34754
11031         PR c++/34755
11032         PR c++/34919
11033         PR c++/34961
11034         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
11035         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
11036
11037 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
11038
11039         PR target/34412
11040         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
11041         pointer for tiny stack.
11042
11043 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11044
11045         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
11046
11047 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11048
11049         * config/vx-common.h: Fix typo in comment.
11050
11051 2008-01-28  Ian Lance Taylor  <iant@google.com>
11052
11053         PR c++/34862
11054         PR c++/33407
11055         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11056         coalesce pointers if they have different DECL_NO_TBAA_P values.
11057         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
11058         between variables with different DECL_NO_TBAA_P values.
11059
11060 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
11061
11062         PR 31535
11063         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
11064         are not legitimate small data references on SPE targets.
11065
11066 2008-01-28  David Daney  <ddaney@avtrex.com>
11067
11068         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
11069
11070 2008-01-28  David Daney  <ddaney@avtrex.com>
11071
11072         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
11073
11074 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
11075
11076         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
11077         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
11078         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
11079         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
11080         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
11081         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
11082         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
11083         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
11084
11085 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11086
11087         * basic-block.h (condjump_equiv_p): Fix comment.
11088
11089 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11090
11091         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
11092         print_generic_stmt_indented): Fix comment.
11093
11094 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11095
11096         * configure.ac (__stack_chk_fail): Add detecion for availability
11097         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
11098         * configure: Regenerate.
11099
11100 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
11101
11102         PR middle-end/34688
11103         * final.c (output_addr_const): Handle TRUNCATE.
11104
11105 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
11106
11107         PR target/34711
11108         * tree-ssa-loop-ivopts.c (comp_cost): New type.
11109         (zero_cost, infinite_cost): New constants.
11110         (struct cost_pair): Change type of cost to comp_cost.
11111         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
11112         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
11113         New functions.
11114         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
11115         split_address_cost, ptr_difference_cost, difference_cost,
11116         get_computation_cost_at, get_computation_cost,
11117         determine_use_iv_cost_generic, determine_use_iv_cost_address,
11118         determine_use_iv_cost_condition, determine_use_iv_costs,
11119         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
11120         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
11121         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
11122         Change type of cost to comp_cost.
11123         (determine_iv_cost): Increase cost of non-original ivs, instead
11124         of decreasing the cost of original ones.
11125         (get_address_cost): Indicate the complexity of the addressing mode 
11126         in comp_cost.
11127         (try_add_cand_for): Prefer using ivs not specific to some object.
11128         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
11129
11130 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
11131             Janis Johnson  <janis187@us.ibm.com>
11132
11133         PR target/34814
11134         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
11135         (TARGET_INSTANTIATE_DECLS): Likewise.
11136         * target.h (expand_to_rtl_hook): New target hook.
11137         (instantiate_decls): Likewise.
11138         * function.c (instantiate_decl): Make non-static.  Rename to...
11139         (instantiate_decl_rtl): ... this.
11140         (instantiate_expr): Use instantiate_decl_rtl.
11141         (instantiate_decls_1): Likewise.
11142         (instantiate_decls): Likewise.
11143         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
11144         * function.h (instantiate_decl_rtl): Add prototype.
11145         * cfgexpand.c (target.h): New include.
11146         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
11147         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
11148         (TARGET_INSTANTIATE_DECLS): Likewise.
11149         (TARGET_INITIALIZER): New target hooks added.
11150         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11151         New prototype.
11152         * config/rs6000/rs6000.c (tree-flow.h): New include.
11153         (machine_function): Add sdmode_stack_slot field.
11154         (rs6000_alloc_sdmode_stack_slot): New function.
11155         (rs6000_instantiate_decls): Likewise.
11156         (rs6000_secondary_memory_needed_rtx): Likewise.
11157         (rs6000_check_sdmode): Likewise.
11158         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
11159         (TARGET_INSTANTIATE_DECLS): Likewise.
11160         (rs6000_hard_regno_mode_ok): Allow SDmode.
11161         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
11162         (rs6000_emit_move): Handle SDmode.
11163         (function_arg_advance): Likewise.
11164         (function_arg): Likewise.
11165         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
11166         SDmode var args for 32-bit compiles.
11167         (rs6000_secondary_reload_class): Handle SDmode.
11168         (rs6000_output_function_epilogue): Likewise.
11169         (rs6000_function_value): Simplify if statement.
11170         (rs6000_libcall_value): Likewise.
11171         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
11172         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
11173         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
11174         (movsd_hardfloat): New define_insn.
11175         (movsd_softfloat): Likewise.
11176         (movsd_store): Likewise.
11177         (movsd_load): Likewise.
11178         (extendsddd2): Likewise.
11179         (extendsdtd2): Likewise.
11180         (truncddsd2): Likewise.
11181         (movdd_hardfloat64): Fixup comment.
11182         (UNSPEC_MOVSD_LOAD): New constant.
11183         (UNSPEC_MOVSD_STORE): Likewise.
11184
11185 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
11186
11187         PR c++/34965
11188         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
11189         TRUTH_XOR_EXPR.
11190         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
11191         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
11192         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
11193         and TRUTH_XOR_EXPR.
11194
11195 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
11196
11197         PR target/34794
11198         * config.gcc: Separate AIX 5.3 from AIX 6.1.
11199         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11200         __LONGDOUBLE128 too.
11201         * config/rs6000/aix61.h: New file.
11202
11203 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11204
11205         PR rtl-optimization/34959
11206         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
11207         popcount and parity rtxes the same mode as their operand.
11208         Truncate or extend the result to the return value's mode
11209         if necessary.
11210
11211 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11212
11213         PR target/34981
11214         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
11215         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
11216         to GOT_VERSION_REGNUM.
11217         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
11218         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
11219         * config/mips/mips.c (mips_emit_call_insn): New function.
11220         (mips_call_tls_get_addr): Call mips_expand_call directly.
11221         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
11222         emit_call_insn.
11223         (mips16_build_call_stub): Likewise.  Return the call insn or null.
11224         (mips_expand_call): Update the call to mips16_build_call_stub
11225         accordingly and a remove redundant condition.  Assert that MIPS16
11226         stubs do not use lazy binding.  Use mips_emit_call_insn and return
11227         the call insn.
11228         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
11229         TARGET_USE_GOT.
11230         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
11231         (mips_avoid_hazard): Remove hazard_set handling.
11232         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
11233         (UNSPEC_RESTORE_GP): ...this.
11234         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
11235         (FAKE_CALL_REGNO): Rename to...
11236         (GOT_VERSION_REGNUM): ...this.
11237         (type): Add "ghost" value.  Add an associated insn reservation.
11238         (hazard_set): Remove.
11239         (exception_receiver): Rename to...
11240         (restore_gp): ...this and update the unspec identifier accordingly.
11241         (exception_receiver, nonlocal_got_receiver): New expanders.
11242         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
11243         FAKE_CALL_REGNO.  Remove hazard_set attribute.
11244         (set_got_version, update_got_version): New patterns.
11245
11246 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
11247
11248         PR target/34970
11249         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
11250
11251 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11252
11253         PR other/31955
11254         * doc/install.texi2html: Generate gcc-vers.texi.
11255
11256 2008-01-25  DJ Delorie  <dj@redhat.com>
11257
11258         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11259
11260 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11261
11262         * config/c4x: Remove directory.
11263         * config.gcc (crx-*, mt-*): Mark obsolete.
11264         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
11265         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
11266         sh-*-rtemscoff*): Remove cases.
11267         * defaults.h (C4X_FLOAT_FORMAT): Remove.
11268         * real.c (encode_c4x_single, decode_c4x_single,
11269         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
11270         c4x_extended_format): Remove.
11271         * real.h (c4x_single_format, c4x_extended_format): Remove.
11272         * doc/extend.texi (interrupt, naked): Remove mention of attributes
11273         on C4x.
11274         (Pragmas): Remove comment about c4x pragmas.
11275         * doc/install.texi (c4x): Remove target-specific instructions.
11276         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
11277         * doc/md.texi (Machine Constraints): Remove C4x documentation.
11278         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
11279         refer to C4x source files as examples.
11280         (C4X_FLOAT_FORMAT): Remove documentation.
11281
11282 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
11283
11284         * config/bfin/bfin.c (override_options): Reorder tests so that
11285         flag_pic gets enabled for -msep-data.
11286
11287 2008-01-25  Richard Guenther  <rguenther@suse.de>
11288
11289         PR middle-end/32244
11290         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
11291         to its bitfield precision if required.
11292
11293 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11294
11295         PR middle-end/33880
11296         * tree-nested.c (walk_omp_for): New function.
11297         (convert_nonlocal_reference, convert_local_reference): Call
11298         walk_omp_for on OMP_FOR.
11299         (convert_call_expr): Call walk_body on OMP_FOR's
11300         OMP_FOR_PRE_INIT_BODY.
11301
11302 2008-01-25  Richard Guenther  <rguenther@suse.de>
11303
11304         PR tree-optimization/34966
11305         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
11306         default defs and PHI_NODEs we have to insert after the
11307         defining statement.
11308
11309 2008-01-24  Nick Clifton  <nickc@redhat.com>
11310
11311         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
11312         Provide a default definition.
11313         (LIBGCC2_UNITS_PER_WORD): Likewise.
11314
11315         * config/stormy16/stormy16.c: Include df.h for the prototype
11316         for df_regs_ever_live_p.
11317         (xstormy16_expand_builtin_va_start): Convert the stack offset
11318         into a component_ref and then use POINTER_PLUS_EXPR to add it
11319         to the incoming_virtual_args_rtx.
11320         (xstormy16_gimplify_va_arg_expr): Rename to
11321         xstormy16_gimplify_va_arg_expr.
11322         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
11323         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
11324         xstormy16_gimplify_va_arg_expr.
11325         Fix up some formatting issues.
11326
11327         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
11328         Move to predicates.md.
11329         (xs_hi_general_operand): Likewise.
11330         (xs_hi_nonmemory_operand): Likewise.
11331         * config/stormy16/predicates.md:
11332         (xstormy16_carry_plus_operand): New predicate.
11333         (xs_hi_general_operand): New predicate.
11334         (xs_hi_nonmemory_operand): New predicate.
11335         * config/stormy16/stormy16-protos.h:
11336         (xstormy16_carry_plus_operand): Delete prototype.
11337         (xs_hi_general_operand): Likewise.
11338         (xs_hi_nonmemory_operand): Likewise.
11339
11340         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
11341         modifiers as they are no longer needed and they can trigger
11342         reload spill failures.
11343
11344         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
11345         with a match_operand in order to help reload.
11346
11347         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
11348         constraint with 'e' for the 8th alternative as this version of
11349         the mov.w instruction only accepts the lower 8 registers.
11350
11351 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
11352
11353         PR target/34856
11354         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
11355         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
11356         vector elements.
11357
11358 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11359
11360         PR middle-end/33333
11361         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
11362
11363 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11364
11365         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
11366         New functions.
11367         (remove_structure): Update allocations list before removing structure.
11368         
11369 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11370
11371         * ipa-struct-reorg.c (is_safe_cond_expr, 
11372         create_new_stmts_for_cond_expr): Use integer_zerop function,
11373         that recognize not only zero-pointer, but zero-integer too.
11374
11375 2008-01-25  Ben Elliston  <bje@au.ibm.com>
11376
11377         PR other/22232
11378         * fixproto: Escape "." in sed expression that strips leading "./".
11379
11380 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11381
11382         PR driver/34904
11383         * gcc.c (SWITCH_OK): Removed.
11384         (SWITCH_LIVE): Changed to bit.
11385         (SWITCH_FALSE): Likewise.
11386         (SWITCH_IGNORE): Likewise.
11387         (switchstr): Change live_cond to unsigned int.
11388         (process_command): Replace SWITCH_OK with 0.
11389         (do_self_spec): Likewise.
11390         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
11391         (give_switch): Likewise.
11392         (used_arg): Likewise.
11393         (do_spec_1): Set the SWITCH_IGNORE bit.
11394         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
11395         bits.  Set the SWITCH_LIVE bit.
11396
11397 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
11398
11399         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
11400
11401 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
11402
11403         PR tree-optimization/34472
11404         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
11405         parameter to a "bool *" and set *DATA to false if there is
11406         an unsafe access.  Do not delete the structure here.
11407         (check_cond_exprs): Delete it here instead.
11408         (check_cond_exprs, exclude_cold_structs): Do not increase
11409         I when removing a structure.
11410
11411 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
11412
11413         PR target/34856
11414         * config/i386/i386.c (ix86_expand_vector_init): Consider only
11415         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
11416
11417 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
11418
11419         PR middle-end/34934
11420         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
11421         a fixed vector for stack.
11422
11423 2008-01-24  Ben Elliston  <bje@au.ibm.com>
11424
11425         PR c++/25701
11426         * doc/gcc.texi (Software development): Add a direntry for g++.
11427         
11428 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
11429
11430         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11431         stale and straggling -fforce-addr comments above.
11432
11433         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11434         define.
11435         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11436         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11437
11438 2008-01-23  Michael Matz  <matz@suse.de>
11439
11440         PR debug/34895
11441         * dwarf2out.c (force_type_die): Use modified_type_die instead of
11442         gen_type_die.
11443
11444 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
11445
11446         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11447         malloc result type.
11448
11449 2008-01-23 Anatoly Sokolov <aesok@post.ru>
11450
11451         * config/avr/avr.c (avr_current_arch): New variable.
11452         (avr_arch_types): Add 'avr31' and 'avr51' entries.
11453         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11454         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11455         (avr_override_options): Init 'avr_current_arch'. 
11456         (base_arch_s): Move from here...
11457         * config/avr/avr.h (base_arch_s): ... here. Add new members 
11458         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
11459         'mega' to 'have_jmp_call'.
11460         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
11461         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
11462         macros.
11463         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
11464         architectures.
11465         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
11466         MULTILIB_MATCHES): (Ditto.).
11467
11468 2008-01-23  Richard Guenther  <rguenther@suse.de>
11469
11470         PR middle-end/31529
11471         * cgraphunit.c (cgraph_reset_node): Always mark the node
11472         not reachable if it is not queued already.
11473
11474 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11475
11476         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11477         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11478         (cputype_selected): New static variable.
11479         (bfin_handle_option): Set it if -mcpu is used.
11480         (override_option): Select default set of workarounds if no cpu type
11481         selected on the command line.
11482         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11483
11484         From  Michael Frysinger  <michael.frysinger@analog.com>
11485         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11486         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11487
11488         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11489         for bf547, bf523, bf524, and bf526.
11490         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11491         bf526.
11492         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11493         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11494         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11495         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11496         * doc/invoke.texi (Blackfin Options): Document that
11497         -mcpu now accept bf547, bf523, bf524, and bf526.
11498
11499 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11500
11501         PR rtl-optimization/34628
11502         * combine.c (try_combine): Stop and undo after the first combination
11503         if an autoincrement side-effect on the first insn has effectively
11504         been lost.
11505
11506 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11507
11508         PR target/34529
11509         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11510         Offset addresses are not valid for Altivec or paired float modes.
11511
11512 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11513
11514         PR c++/34607
11515         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11516         if DECL_INITIAL (decl) is error_mark_node.
11517
11518         PR c++/34914
11519         * c-common.c (handle_vector_size_attribute): Only allow
11520         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11521         the same way as pointer, array etc. types.
11522         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11523
11524         PR c++/34917
11525         * tree.c (build_type_attribute_qual_variant): Call
11526         build_qualified_type if attributes are equal, but quals are not.
11527
11528 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11529
11530         PR 32102
11531         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11532         * flags.h (warn_strict_aliasing): Remove.
11533         (warn_strict_overflow): Remove.
11534         * opts.c (warn_strict_aliasing): Remove.
11535         (warn_strict_overflow): Remove.
11536         * c-opts.c (c_common_handle_option): -Wall only sets
11537         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11538         (c_common_post_options): Give default values to -Wstrict-aliasing
11539         and -Wstrict-overflow if they are uninitialized.
11540         * common.opt (Wstrict-aliasing): Specify Var and Init.
11541         (Wstrict-overflow): Likewise.
11542
11543 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11544
11545         PR rtl-optimization/26854
11546         PR rtl-optimization/34400
11547         PR rtl-optimization/34884
11548         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11549         DF_RD->gen.
11550         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11551         (df_rd_bb_info.expanded_lr_out): Deleted
11552         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11553         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11554         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11555         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11556         Removed code to allocate, initialize or free expanded_lr_out.
11557         (df_rd_bb_local_compute_process_def): Restructured to make more
11558         understandable.
11559         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11560         sets if the sets are being trimmed.
11561
11562 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11563
11564         PR bootstrap/32287
11565         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11566         (as_vers): Likewise.
11567         * configure: Regenerated.
11568
11569 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11570
11571         PR middle-end/33092
11572         * tree-pass.h (pass_build_alias): New pass.
11573         * tree-ssa-alias.c (gate_build_alias): New.
11574         (pass_build_alias): New.
11575         * passes.c (init_optimization_passes): Add pass_build_alias after
11576         pass_create_structure_vars.
11577
11578 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11579
11580         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11581         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11582         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11583         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11584         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11585         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11586         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11587         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11588         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11589         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11590         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11591         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11592         * config/s390/s390.md (FP_ALL): New mode iterator.
11593         (_d): New mode attribute.
11594         ("*signbit<mode>2>"): Changed mode of first operand.
11595         ("isinf<mode>2"): Changed mode of first operand.
11596         ("*TDC_insn"): Adaptation for DFP modes.
11597
11598 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11599
11600         * tree.c (check_qualified_type): Improve function description.
11601
11602 2008-01-21  Jason Merrill  <jason@redhat.com>
11603
11604         PR c++/34196
11605         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11606         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11607         if it is set.
11608
11609 2008-01-21  DJ Delorie  <dj@redhat.com>
11610
11611         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11612         return zero.
11613
11614 2008-01-21  Richard Guenther  <rguenther@suse.de>
11615
11616         PR middle-end/34856
11617         * tree-cfg.c (verify_expr): Allow all invariant expressions
11618         instead of just constant class ones as reference argument.
11619         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11620         like any other constant.
11621         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11622
11623 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11624
11625         * regmove.c (fixup_match_1): Update call crossed frequencies.
11626
11627 2008-01-21  Richard Guenther  <rguenther@suse.de>
11628
11629         PR c/34885
11630         * tree-inline.c (setup_one_parameter): Deal with mismatched
11631         types using a VIEW_CONVERT_EXPR.
11632
11633 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11634             Olga Golovanevsky  <olga@il.ibm.com>
11635         
11636         PR tree-optimization/34701
11637         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11638         when the structure size is not a power of 2.
11639
11640 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11641
11642         * doc/install.texi: Add doc for --enable-checking=df.
11643         
11644 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11645
11646         PR rtl-optimization/34808
11647         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11648
11649 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11650
11651         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11652         input.
11653
11654 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11655
11656         PR rtl-optimization/26854
11657         PR rtl-optimization/34400
11658         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11659         DF_RD->gen.
11660         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11661         (df_rd_bb_info.expanded_lr_out): New.
11662         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11663         * loop_iv.c (iv_analysis_loop_init): Ditto.
11664         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11665         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11666         Added code to allocate, initialize or free expanded_lr_out.
11667         (df_rd_bb_local_compute_process_def): Restructured to make
11668         more understandable.
11669         (df_rd_confluence_n): Add code to do nothing with fake edges and
11670         code to no apply invalidate_by_call sets if the sets are being trimmed.
11671         (df_lr_local_finalize): Renamed to df_lr_finalize.
11672         (df_live_local_finalize): Renamed to df_live_finalize.
11673
11674 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11675
11676         PR target/34831
11677         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11678         deciding whether to use reciprocal instructions.
11679
11680 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11681
11682         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11683         dwarf2out_note_section_used if cold_text_section is NULL.
11684
11685 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11686
11687         PR gcov-profile/34610
11688         * tree-cfg.c (make_edges): Mark both outgoing edges from
11689         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11690         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11691         from OMP_FOR and OMP_CONTINUE outgoing edges.
11692
11693         * tree-profile.c (tree_profiling): Return early if
11694         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11695         at the end.
11696         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11697         from cfun to child_cfun.
11698         * function.h (struct function): Add after_tree_profile bit.
11699
11700 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11701
11702         * config/avr/avr.S (_exit): Disable interrupt.
11703
11704 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11705             Steven Bosscher  <stevenb.gcc@gmail.com>
11706
11707         PR rtl-optimization/26854
11708         PR rtl-optimization/34400
11709         * df-problems.c (df_live_scratch): New scratch bitmap.
11710         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11711         (df_live_reset): Clear the proper bitmaps.
11712         (df_live_bb_local_compute): Only process the artificial defs once
11713         since the order is not important.
11714         (df_live_init): Init the df_live sets only with the variables
11715         found live by df_lr.
11716         (df_live_transfer_function): Use the df_lr sets to prune the
11717         df_live sets as they are being computed.  
11718         (df_live_free): Free df_live_scratch.
11719
11720 2008-01-18  Ian Lance Taylor  <iant@google.com>
11721
11722         * common.opt: Add fmerge-debug-strings.
11723         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11724         flag_merge_debug_strings rather than flag_merge_constants.
11725         * doc/invoke.texi (Option Summary): Mention
11726         -fmerge-debug-strings.
11727         (Debugging Options): Document -fmerge-debug-strings.
11728
11729 2008-01-18  Ian Lance Taylor  <iant@google.com>
11730
11731         PR c++/33407
11732         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11733         (struct tree_function_decl): Add new field operator_new_flag.
11734         * tree-inline.c (expand_call_inline): When inlining a call to
11735         operator new, force the return value to go into a variable, and
11736         set DECL_NO_TBAA_P on that variable.
11737         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11738
11739 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11740
11741         PR debug/34484
11742         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11743         DWARF2_DEBUGGING_INFO.
11744         (dwarf2out_note_section_used): Ditto.  Add prototype.
11745         (have_multiple_function_sections, text_section_used,
11746         cold_text_section_used, *cold_text_sections): Move declarations
11747         before their uses.
11748
11749 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11750
11751         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11752         field and add signal_ra.
11753         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11754         assignments to frame state pc.  Move end of stack check after
11755         MD_FALLBACK_FRAME_STATE_FOR.
11756         (uw_update_context_1): Use frame state signal_regs if set, instead
11757         of checking signal_frame flag.
11758         (uw_update_context): Use frame state signal_ra if set.
11759         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11760         * config/xtensa/linux-unwind.h: New file.
11761
11762 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11763
11764         * modulo-sched.c (get_sched_window): Fix comment typo.
11765
11766 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11767
11768         PR tree-optimization/34648
11769         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11770
11771 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11772
11773         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11774         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11775
11776 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11777
11778         PR rtl-optimization/34400
11779         * df-core.c (df_worklist_dataflow_overeager,
11780         df_worklist_dataflow_doublequeue): New functions.
11781         (df_worklist_dataflow): Two different worklist solvers.
11782         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11783         New param.
11784
11785 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11786
11787         PR testsuite/34821
11788         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11789         and ftree-parallelize-loops.
11790
11791 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11792
11793         PR rtl-optimization/34826
11794         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11795
11796 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11797
11798         * global.c (find_reg): Mark the eh regs as used if necessary.
11799         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11800         * ra.h (struct allocno): no_eh_reg field added.  Changed
11801         no_stack_reg type to bitfield.
11802
11803 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11804
11805         * tree.c (substitute_in_expr): Add missing 'break'.
11806
11807 2008-01-17  Richard Guenther  <rguenther@suse.de>
11808
11809         PR tree-optimization/34825
11810         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11811         x / x as division to handle.
11812
11813 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11814
11815         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11816         "-pthread" is specified.
11817         * pa-hpux11.h (LIB_SPEC): Likewise.
11818
11819 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11820             Peter Bergner  <bergner@vnet.ibm.com>
11821
11822         PR rtl-optimization/33796
11823         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11824
11825 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11826
11827         PR libgfortran/34699
11828         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11829         static links.
11830         * pa-hpux10.h (LINK_SPEC): Likewise.
11831         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11832
11833 2008-01-16  Richard Guenther  <rguenther@suse.de>
11834
11835         PR middle-end/32628
11836         * fold-const.c (fold_convert_const_int_from_int): Do not
11837         set overflow if that occured only because of a sign extension
11838         change when converting from/to a sizetype with the same
11839         precision and signedness.
11840
11841 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11842
11843         PR debug/34249
11844         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11845         location address to the correct place.  Update copyright year.
11846
11847 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11848
11849         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11850         no dependences in the dependence_relations vector.
11851
11852 2008-01-16  Jan Hubicka  <jh@suse.cz>
11853
11854         PR rtl-optimization/31396
11855         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11856         * cfg.c (dump_reg_info): Print it.
11857         * regs.h (struct reg_info_t): add freq_calls_crossed.
11858         (REG_FREQ_CALLS_CROSSED): New macro.
11859         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11860         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11861         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11862         regmove_optimize): Update call crossed frequencies.
11863         * local-alloc.c (struct qty): Add freq_calls_crossed.
11864         (alloc_qty): Copute freq_calls_crossed.
11865         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11866         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11867         * ra.h (struct allocno): Add freq_calls_crossed.
11868
11869 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11870
11871         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11872         libgomp when compiling with ftree-parallelize-loops.
11873         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11874
11875 2008-01-16  Richard Guenther  <rguenther@suse.de>
11876
11877         PR tree-optimization/34769
11878         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11879         * tree.c (int_cst_value): Instead make this function more
11880         permissive in what it accepts as valid input.  Document this
11881         function always sign-extends the value.
11882
11883 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11884             Richard Guenther  <rguenther@suse.de>
11885
11886         PR c/34668
11887         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11888         (gimple_fold_indirect_ref_rhs): ... this.
11889         (gimple_fold_indirect_ref): New function with foldings
11890         that preserve lvalueness.
11891         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11892         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11893         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11894         to fold an INDIRECT_REF, fall back to the old use of
11895         fold_indirect_ref_1.
11896
11897 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11898
11899         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11900         free_conflict_function.
11901         (compute_self_dependence): Same.
11902
11903 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11904
11905         PR debug/34249
11906         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11907         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11908         function global.
11909         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11910         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11911         for DWARF2_UNWIND_INFO targets.
11912
11913 2008-01-16  Richard Guenther  <rguenther@suse.de>
11914
11915         PR c/34768
11916         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11917         type qualifiers for function types.
11918
11919 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11920
11921         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11922         loop_iterator li from previous commit.
11923
11924 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11925
11926         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11927
11928 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11929
11930         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11931         (parallelize_loops): Don't parallelize irreducible components.
11932
11933 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11934
11935         PR c++/24924
11936         * c-opts (c_common_post_options): Do not enable CPP
11937         flag_pedantic_errors by default.
11938         
11939 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11940
11941         PR rtl-optimization/31944
11942         * cse.c (remove_pseudo_from_table): New function.
11943         (merge_equiv_classes): Use above function to remove pseudo-registers.
11944         (invalidate): Likewise.
11945
11946 2008-01-13  Richard Guenther  <rguenther@suse.de>
11947
11948         PR middle-end/34601
11949         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11950         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11951
11952 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11953
11954         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11955         validate_change to unshare the source of the PC set.
11956
11957 2008-01-12  Jan Hubicka  <jh@suse.cz>
11958
11959         PR middle-end/32135
11960         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11961         references above array bounds.  This might trigger bounds checks for
11962         pointers to arrays.
11963
11964 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11965
11966         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11967         new_replaceable_dependencies.
11968
11969 2008-01-12  Doug Kwan  <dougkwan@google.com>
11970
11971         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11972         instead of OPT_Wreturn_type in warning due to ignored return type
11973         qualifiers.
11974         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11975         options included in -Wextra.
11976         * c.opt: New option -Wignored_qualifiers.
11977         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11978         -Wignore_qualifiers.
11979         (-Wignored-qualifiers): Document.
11980         (-Wreturn-type): Remove description of functionality now handled
11981         by -Wignored-qualifiers.
11982
11983 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11984
11985         PR ada/33788
11986         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11987         NOP_EXPR if it is between integral types with the same precision.
11988
11989 2008-01-12  Jan Hubicka  <jh@suse.cz>
11990
11991         PR other/28023
11992         * invoke.texi (max-inline-recursive-depth): Fix default value.
11993
11994 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11995
11996         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11997         correct type.
11998
11999 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
12000         
12001         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
12002         
12003 2008-01-11  James E. Wilson  <wilson@specifix.com>
12004
12005         PR target/26015
12006         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
12007
12008 2008-01-11  Anatoly Sokolov <aesok@post.ru>
12009
12010         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
12011         save/restore frame pointer register and don't use 'call-prologues' 
12012         optimization in function with "OS_task" attribute.
12013
12014 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12015
12016         PR middle-end/31309
12017         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
12018         when copying to memory.
12019
12020 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
12021
12022         PR rtl-optimization/30905
12023         * cfgcleanup.c: Include dce.h
12024         (crossjumps_occured): New global variable.
12025         (try_crossjump_bb): Exit loop after finding a fallthru edge.
12026         If something changed, set crossjumps_occured to true.
12027         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
12028         Don't add/remove fake edges to exit here...
12029         (cleanup_cfg): ...but do it here, when crossjumping.
12030         Run a fast DCE when successful crossjumps occured in the latest
12031         iteration of try_optimize_cfg.
12032
12033 2008-01-11  Richard Guenther  <rguenther@suse.de>
12034
12035         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
12036         (struct vn_unary_op_s): Likewise.
12037         (vn_reference_insert): Free old reference on hash collision.
12038
12039 2008-01-10  Raksit Ashok  <raksit@google.com>
12040
12041         PR rtl-optimization/27971
12042         * combine.c (find_split_point): Split PLUS expressions which are
12043         inside a MEM rtx, and whose first operand is complex.
12044
12045 2008-01-10  DJ Delorie  <dj@redhat.com>
12046
12047         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
12048         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
12049         (m32c_hard_regno_ok): Call the underlying function.
12050
12051 2008-01-10  Richard Guenther  <rguenther@suse.de>
12052
12053         PR middle-end/34683
12054         * tree-cfg.c (tree_merge_blocks): Do not go through the
12055         full-blown folding and stmt updating path if we just deal
12056         with virtual operands.
12057         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
12058         test for abnormal SSA_NAMEs.
12059
12060 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12061
12062         PR middle-end/34641
12063         * reload.c (push_reload): Add assertions.  All constants from
12064         reg_equiv_constant should have been used for replacing the respective
12065         pseudo earlier.
12066         (find_reloads_address): Invoke find_reloads_address_part for
12067         constant taken from the reg_equiv_constant array.
12068
12069 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
12070
12071         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
12072         field (valnum) the first in the struct.  Replace bools with
12073         unit bit fields.
12074
12075 2008-01-10  Richard Guenther  <rguenther@suse.de>
12076
12077         PR tree-optimization/34651
12078         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
12079         types and ordering for masking and converting.
12080
12081 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
12082
12083         PR tree-optimization/34017
12084         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
12085         also for PHI_NODE expressions.
12086
12087 2008-01-09  Jan Hubicka  <jh@suse.cz>
12088
12089         PR tree-optimization/34708
12090         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
12091         based on number of case labels.
12092         (init_inline_once): Remove switch_cost.
12093         * tree-inline.h (eni_weights_d): Remove switch_cost.
12094
12095 2008-01-09  Richard Guenther  <rguenther@suse.de>
12096         Andrew Pinski  <andrew_pinski@playstation.sony.com>
12097
12098         PR middle-end/30132
12099         * gimplify.c (gimplify_cond_expr): Do not create an addressable
12100         temporary if an rvalue is ok or an lvalue is not required.
12101
12102 2008-01-09  Richard Guenther  <rguenther@suse.de>
12103
12104         PR middle-end/34458
12105         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
12106         adjust return type.
12107
12108 2008-01-09  Richard Guenther  <rguenther@suse.de>
12109
12110         PR middle-end/34679
12111         * tree.c (host_integerp): Check for sizetype only if the
12112         type is an integer type.
12113
12114 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
12115
12116         PR debug/26364
12117         * opts.c (decode_options): Disable inlining of functions called
12118         once if not in unit-at-a-time mode.
12119
12120 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
12121
12122         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
12123
12124 2008-01-08  Richard Guenther  <rguenther@suse.de>
12125
12126         PR middle-end/31863
12127         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
12128         out early if the result will be unused.
12129
12130 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12131
12132         PR target/34709
12133         Revert:
12134
12135         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12136         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12137         for TARGET_RECIP.       
12138         
12139 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
12140         
12141         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
12142         for vectorization tuned.
12143         
12144 2008-01-08  Richard Guenther  <rguenther@suse.de>
12145
12146         PR tree-optimization/34683
12147         * tree-ssa-operands.c (operand_build_cmp): Export.
12148         * tree-ssa-operands.h (operand_build_cmp): Declare.
12149         * tree-vn.c (vuses_compare): Remove.
12150         (sort_vuses): Use operand_build_cmp.
12151         (sort_vuses_heap): Likewise.
12152         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
12153         to re-use old VEC if available.  Do not sort already sorted VUSEs.
12154         (vdefs_to_vec): Do not sort already sorted VDEFs.
12155
12156 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
12157
12158         PR middle-end/34694
12159         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
12160
12161 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12162
12163         PR target/34702
12164         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
12165         limitations of reciprocal sequences on x86 targets.
12166
12167 2008-01-08  Richard Guenther  <rguenther@suse.de>
12168
12169         PR tree-optimization/34683
12170         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
12171
12172 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
12173
12174         PR target/34622
12175         * config/darwin.c (darwin_mergeable_string_section): Don't use
12176         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
12177
12178 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
12179
12180         PR target/34682
12181         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
12182         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
12183         predicates of op0 and op1 to register_operand.
12184         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
12185         expander using X87MODEF mode iterator.  Change predicates of
12186         op0 and op1 to register_operand.
12187         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
12188         corresponding patterns and macroize using MODEF macro.  Change
12189         predicates of op0 and op1 to register_operand and remove
12190         "m" constraint. Disparage "r" alternative with "!".
12191         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
12192         macroize using X87MODEF macro.  Change predicates of op0 and op1
12193         to register_operand and remove "m" constraint.  Disparage "r"
12194         alternative with "!".
12195         (absneg splitter with memory operands): Remove.
12196         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
12197         patterns and macroize using X87MODEF mode iterator.
12198         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
12199         Change predicate of op1 to register_operand.
12200         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
12201         for memory operands.
12202
12203 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
12204
12205         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
12206
12207 2008-01-07  Richard Guenther  <rguenther@suse.de>
12208
12209         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
12210         fields.
12211
12212 2008-01-07  Richard Guenther  <rguenther@suse.de>
12213
12214         PR tree-optimization/34683
12215         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
12216         VOPs of the needed size to save memory.  Use VEC_quick_push
12217         to save compile-time.
12218         (vdefs_to_vec): Likewise.
12219
12220 2008-01-07  Sa Liu  <saliu@de.ibm.com>
12221
12222         * config/spu/spu.md (divdf3): Genetate inline code for double
12223         division.  The implementation doesn't handle INF or NAN, therefore it
12224         only applies when -ffinite-math-only is given.
12225
12226 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
12227
12228         PR libstdc++/34680
12229         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
12230         * doc/cpp.texi ([Common Predefined Macros]): Document.
12231
12232 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
12233
12234         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
12235         order to use commutative addition instead of subtraction.
12236
12237 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12238             Mircea Namolaru  <namolaru@il.ibm.com>
12239             Vladimir Yanovsky  <yanov@il.ibm.com>
12240             Revital Eres  <eres@il.ibm.com>
12241
12242         PR tree-optimization/34263
12243         * tree-outof-ssa.c (process_single_block_loop_latch,
12244         contains_tree_r): New functions.
12245         (analyze_edges_for_bb): Call process_single_block_loop_latch
12246         function to empty single-basic-block latch block if possible.
12247
12248 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12249
12250         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12251         for TARGET_RECIP.
12252         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
12253
12254 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12255
12256         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
12257
12258 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12259
12260         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
12261
12262 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
12263
12264         PR tree-optimization/34618
12265         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
12266         flag from T.
12267
12268 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12269
12270         PR target/34673
12271         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
12272         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
12273         Update copyright year.
12274
12275         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
12276         Update copyright year.
12277         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
12278         using NR fixup.
12279
12280 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
12281
12282         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
12283         edge does not point to current bb before changing need_assert.
12284
12285 2008-01-04  Richard Guenther  <rguenther@suse.de>
12286
12287         PR middle-end/34029
12288         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
12289         for verifying purposes if they are is_gimple_min_invariant.
12290
12291 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
12292
12293         PR tree-optimization/34448
12294         PR tree-optimization/34465
12295         * gimplify.c (gimplify_init_constructor): Add new parameter
12296         notify_temp_creation.  Use it.
12297         (gimplify_modify_expr_rhs): Take volatiles into account when
12298         optimizing constructors.
12299         Do not optimize constructors if gimplify_init_constructor will dump to
12300         memory.
12301         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
12302         * gcc.c-torture/compile/pr34448.c: New.
12303
12304 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
12305
12306         PR gcov-profile/34609
12307         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
12308         return_slot if result is TREE_ADDRESSABLE.
12309
12310 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
12311
12312         * config/mips/mips.md (sqrt_condition): Tweak comment.
12313         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
12314
12315 2008-01-03  Tom Tromey  <tromey@redhat.com>
12316
12317         PR c/34457
12318         * c-common.c (c_type_hash): Handle VLAs.
12319
12320 2008-01-03  Jan Hubicka  <jh@suse.cz>
12321
12322         PR tree-optimization/31081
12323         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
12324         0 when inlining and not inlining to first basic block.
12325         (remap_decl): When var is initialized to 0, don't set default_def.
12326         (expand_call_inline): Set entry_bb.
12327         * tree-inline.h (copy_body_data): Add entry_bb.
12328
12329 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12330
12331         PR c++/34619
12332         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
12333         before returning.
12334
12335         PR tree-optimization/29484
12336         * tree-inline.c (inline_forbidden_p_2): New function.
12337         (inline_forbidden_p): Disallow inlining if some static var
12338         has an address of a local LABEL_DECL in its initializer.
12339         * doc/extend.texi (Labels as Values): Document &&foo behaviour
12340         vs. inlining.
12341
12342 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
12343
12344         PR tree-optimization/34635
12345         * tree-data-ref.c (add_other_self_distances): Make sure that the
12346         evolution step is constant.
12347
12348 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12349
12350         PR middle-end/34608
12351         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
12352
12353 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
12354
12355         * tree-sra.c (scalarize_init): Insert the generate_element_init
12356         statements after the generate_element_zero statements.
12357
12358 2008-01-02  Richard Guenther  <rguenther@suse.de>
12359
12360         PR middle-end/34093
12361         PR middle-end/31976
12362         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
12363         for very large number of operands instead of ICEing.
12364
12365 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
12366
12367         PR target/34013
12368         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
12369         while stack probing.
12370
12371 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
12372
12373         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12374         in C++0x mode.
12375
12376 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
12377
12378         PR libmudflap/26442
12379         * tree-mudflap.c (mx_register_decls): Guard warning by
12380         !DECL_ARTIFICIAL check.
12381
12382 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
12383
12384         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
12385         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
12386         sse5_perm<mode>): Fix constraints.