OSDN Git Service

2008-06-11 Kai Tietz <kai.tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
2
3         * config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
4         w64 abi.
5         (ix86_expand_prologue): Likewise.
6         (ix86_force_to_memory): Likewise.
7         (ix86_free_from_memory): Likewise.
8
9 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
10
11         PR target/36425
12         * config/rs6000/rs6000.c (rs6000_override_options): Set
13         rs6000_isel conditionally to the absence of comand line
14         override.
15         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16         Remove duplicate rs6000_isel setting.
17         * config/rs6000/eabispe.h: Ditto.
18
19 2008-06-11  Richard Guenther  <rguenther@suse.de>
20
21         * alias.c (get_alias_set): Use the element alias-set for arrays.
22         (record_component_aliases): For arrays and vectors do nothing.
23         * c-common.c (strict_aliasing_warning): Handle the cases
24         of alias set zero explicitly.
25         * Makefile.in (dfp.o-warn): Add -Wno-error.
26
27 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
28
29         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
30         tune_32 tune_64.
31         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
32         tune_32 tune_64 to supported_defaults.  Allow values not
33         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
34         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
35         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
36         with_cpu_64 to generic for 64-bit-supporting configurations, not
37         with_cpu.  Remove FIXMEs.
38         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
39         --with-arch-64, --with-tune-32, --with-tune-64): Document.
40         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
41         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
42         arch_32 and arch_64.
43
44 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
45             Olivier Hainque  <hainque@adacore.com>
46
47         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
48         Use DECL_SIZE_UNIT to retrieve the size of the field.
49
50 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
51
52         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
53         with function calls after declarations.  Lay out
54         neon_float_type_node before further use.
55
56 2008-06-11  Richard Guenther  <rguenther@suse.de>
57
58         * tree-flow.h (may_point_to_global_var): Declare.
59         * tree-ssa-alias.c (may_point_to_global_var): New function.
60         * tree-ssa-sink.c (is_hidden_global_store): Use it.
61
62 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
63
64         * configure.ac: Teach that fido supports .debug_line.
65         * configure: Regenerate.
66
67 2008-06-10  Tom Tromey  <tromey@redhat.com>
68
69         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
70         debug hook.
71
72 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
73
74         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
75         (encode_decimal64, decode_decimal64, encode_decimal128,
76         decode_decimal128): Reverse order of 32-bit parts of value if host
77         and target endianness differ.
78
79 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
80         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
81         Avoid division by 0.
82         (tree_mod_pow2_value_transform): Likewise.
83         (tree_ic_transform): Likewise.
84         (tree_stringops_transform): Likewise.
85         (tree_mod_subtract_transform): Likewise.
86         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
87         (copy_edges_for_bb): Likewise.
88         (initialize_cfun): Likewise.
89
90 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
91
92         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
93         nonmemory_operand. Add "N" operand constraint.
94         (*btsi): Ditto.
95         (*jcc_btdi_mask_rex64): New instruction and split pattern.
96         (*jcc_btsi_mask): Ditto.
97         (*jcc_btsi_mask_1): Ditto.
98
99 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
100
101         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
102         TYPE_CANONICAL for copied element type.
103
104 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
105
106         PR target/36473
107         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
108         Add m_CORE2 and m_GENERIC.
109         * config/i386/predicates.md (bt_comparison_operator): New predicate.
110         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
111         (*btsi): Ditto.
112         (*jcc_btdi_rex64): New instruction and split pattern.
113         (*jcc_btsi): Ditto.
114         (*jcc_btsi_1): Ditto.
115         (*btsq): Fix Intel asm dialect operand order.
116         (*btrq): Ditto.
117         (*btcq): Ditto.
118
119 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
120
121         PR middle-end/36447
122         * simplify-rtx.c (simplify_subreg): Add check for shift count 
123         greater than size.
124
125 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
126
127         * doc/md.texi: Synchronize with later constraints.md change.
128         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
129         with a C implementation.
130         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
131         MFLO handling.
132         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
133         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
134         when moving to and from MD_REGNUM.
135         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
136         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
137         Handle byte and halfword moves.
138         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
139         separately.
140         * config/mips/constraints.md (h): Turn into NO_REGS.
141         (l, x): Update documentation.
142         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
143         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
144         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
145         (HILO): New mode iterator.
146         (MOVE128): Add TI.
147         (any_div): New code iterator.
148         (u): Extend code attribute to div and udiv.
149         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
150         d_operand in the splitters.  Remove redundant CONST_INT checks.
151         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
152         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
153         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
154         accordingly, using normal moves instead of unspecs to move LO into
155         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
156         (<u>mulsidi3): Handle expansion in C code.
157         (<u>mulsidi3_32bit_internal): Rename to...
158         (<u>mulsidi3_32bit): ...this.
159         (<u>mulsidi3_32bit_r4000): Fix insn separator.
160         (*<u>mulsidi3_64bit): Rename to...
161         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
162         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
163         to set LO and HI to the multiplication result.  Use a normal move
164         for MFLO and an unspec for MFHI.
165         (*<u>mulsidi3_64bit_parts): Replace with...
166         (<u>mulsidi3_64bit_hilo): ...this new instruction.
167         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
168         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
169         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
170         instead of HI.  Split the instruction into a separate multiplication
171         and MFHI if !TARGET_FIX_R4000.
172         (<su>muldi3_highpart): Likewise.
173         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
174         and the "=h" clobber.
175         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
176         (<u>mulditi3): New expander.
177         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
178         (madsi): Remove "=h" clobber.
179         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
180         Force the modulus result to be a GPR and split the instruction into
181         a division followed by an MFHI after reload.
182         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
183         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
184         the MIPS16 HIGH define_split.
185         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
186         of acc<->gpr moves to "multi".
187         (*movdi_64bit): Replace the single "x" alternative with
188         alternatives for moving into and out of "a".
189         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
190         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
191         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
192         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
193         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
194         (movti): New expander.
195         (*movti, *movti_mips16): New insns.
196         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
197         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
198         (mthi<GPR:mode>_<HILO:mode>): Likewise.
199         * config/mips/predicates.md (fpr_operand): Delete.
200         (d_operand): New predicate.
201
202 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
203
204         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
205         failure on some Bourne shells.
206         (x86_64-*-*): Ditto.
207
208 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
209
210         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
211
212 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
213
214         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
215         (sparc-sun-solaris2*): Likewise.
216
217 2008-06-09  Arnaud Charlet  <charlet@adacore.com
218
219         * doc/install.texi: Update requirements to build the Ada compiler.
220
221 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
222
223         * df-scan.c (struct df_scan_problem_data): Remove the
224         mw_link_pool alloc pool.
225         (df_scan_free_internal): Don't free it.
226         (df_scan_alloc): Don't allocate it.
227         * df.h (struct df_link): Update comment.
228
229 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
230
231         * except.h: Correct checks for when SJLJ exceptions must be used.
232
233 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
234
235         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
236         default.
237         
238 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
239
240         PR tree-optimization/36218
241         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
242         configure for the build system.
243         (BUILD_LDFLAGS): Define.
244         * configure: Regenerate.
245         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
246
247 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
248
249         PR target/36424
250         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
251         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
252         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
253
254 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
255
256         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
257
258 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
259
260         * config.gcc (Obsolete configurations): Remove list of
261         configurations.
262         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
263         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
264         targets matched by those patterns.
265         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
266         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
267         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
268         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
269         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
270         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
271         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
272         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
273         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
274         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
275         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
276         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
277         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
278         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
279         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
280         Make code for Solaris 7 and greater unconditional for Solaris.
281         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
282         Remove --with-* handling.
283         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
284         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
285         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
286         LINK_OS_WINDISS_SPEC): Remove.
287         * config/rs6000/sysv4.opt (mwindiss): Remove.
288         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
289         * configure: Regenerate.
290         * doc/cpp.texi: Don't mention BeOS.
291         * doc/extend.texi (interrupt): Don't mention MS1.
292         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
293         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
294         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
295         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
296         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
297         Remove.
298         * doc/invoke.texi (MT Options): Remove.
299         (-mwindiss): Remove.
300         (CRIS Options): Remove cris-axis-aout references.
301         (HPPA Options): Don't mention hppa1.1-*-pro.
302         * doc/md.texi: (MorphoTech family): Remove.
303         * libgcc2.c: Don't handle UWIN.
304         * config/alpha/t-unicosmk: Remove.
305         * config/alpha/unicosmk.h: Remove.
306         * config/arm/kaos-arm.h: Remove.
307         * config/arm/kaos-strongarm.h: Remove.
308         * config/arm/strongarm-coff.h: Remove.
309         * config/arm/strongarm-elf.h: Remove.
310         * config/arm/strongarm-pe.h: Remove.
311         * config/arm/t-strongarm-pe: Remove.
312         * config/arm/t-xscale-coff: Remove.
313         * config/arm/t-xscale-elf: Remove.
314         * config/arm/xscale-coff.h: Remove.
315         * config/arm/xscale-elf.h: Remove.
316         * config/chorus.h: Remove.
317         * config/cris/aout.h: Remove.
318         * config/cris/aout.opt: Remove.
319         * config/cris/t-aout: Remove.
320         * config/i386/beos-elf.h: Remove.
321         * config/i386/kaos-i386.h: Remove.
322         * config/i386/ptx4-i.h: Remove.
323         * config/i386/sco5.h: Remove.
324         * config/i386/sco5.opt: Remove.
325         * config/i386/sysv4-cpp.h: Remove.
326         * config/i386/sysv5.h: Remove.
327         * config/i386/t-beos: Remove.
328         * config/i386/t-sco5: Remove.
329         * config/i386/t-uwin: Remove.
330         * config/i386/uwin.asm: Remove.
331         * config/i386/uwin.h: Remove.
332         * config/kaos.h: Remove.
333         * config/mips/windiss.h: Remove.
334         * config/mt: Remove directory.
335         * config/pa/pa-osf.h: Remove.
336         * config/pa/pa-pro-end.h: Remove.
337         * config/pa/t-pro: Remove.
338         * config/ptx4.h: Remove.
339         * config/rs6000/beos.h: Remove.
340         * config/rs6000/kaos-ppc.h: Remove.
341         * config/rs6000/t-beos: Remove.
342         * config/rs6000/windiss.h: Remove.
343         * config/sh/kaos-sh.h: Remove.
344         * config/sol2-6.h: Remove.
345         * config/sparc/sol26-sld.h: Remove.
346         * config/sparc/sysv4-only.h: Remove.
347         * config/vax/bsd.h: Remove.
348         * config/vax/t-memfuncs: Remove.
349         * config/vax/ultrix.h: Remove.
350         * config/vax/vaxv.h: Remove.
351         * config/windiss.h: Remove.
352
353 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
354
355         PR rtl-optimization/36438
356         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
357         for vector shifts with constant scalar shift operands.
358
359 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
360
361         * doc/invoke.texi: Document -march=xlr.
362         * config/mips/xlr.md: New file.
363         * config/mips/mips.md: Include it.
364         (cpu): Add "xlr".
365         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
366         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
367         (mips_rtx_cost_data): Likewise.
368
369 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
370
371         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
372         PRE_INC and PRE_DEC cases.
373
374 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
375
376         PR rtl-optimization/36419
377         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
378         the emitting jump insn.
379
380         PR target/36362
381         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
382         is not bool, boolify the whole *expr_p and convert to the desired type.
383
384 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
385
386         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
387         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
388         Add omp_private_outer_ref hook, add another argument to
389         omp_clause_default_ctor hook.
390         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
391         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
392         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
393         hook_tree_tree_tree_tree_null.
394         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
395         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
396         * hooks.c (hook_tree_tree_tree_tree_null): New function.
397         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
398         * tree.def (OMP_TASK): New tree code.
399         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
400         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
401         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
402         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
403         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
404         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
405         OMP_CLAUSE_COLLAPSE_EXPR): Define.
406         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
407         (OMP_DIRECTIVE_P): Add OMP_TASK.
408         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
409         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
410         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
411         and OMP_CLAUSE_UNTIED entries.
412         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
413         num_ops to 2.
414         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
415         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
416         * tree-pretty-print.c (dump_omp_clause): Handle
417         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
418         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
419         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
420         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
421         warning about unsigned iterators.  Change decl/init/cond/incr
422         arguments to TREE_VECs, check arguments for all collapsed loops.
423         (c_finish_omp_taskwait): New function.
424         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
425         ws_clauses.
426         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
427         default_function_array_conversion on init.  Add par_clauses argument.
428         If decl is present in parallel's lastprivate clause, change it to
429         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
430         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
431         collapse count in clauses.
432         (c_parser_omp_for, c_parser_omp_parallel): Adjust
433         c_parser_omp_for_loop callers.
434         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
435         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
436         (c_parser_omp_clause_name): Handle collapse and untied clauses.
437         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
438         functions.
439         (c_parser_omp_clause_schedule): Handle schedule(auto).
440         Include correct location in the error message.
441         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
442         and PRAGMA_OMP_CLAUSE_UNTIED.
443         (OMP_TASK_CLAUSE_MASK): Define.
444         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
445         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
446         * tree-nested.c (convert_nonlocal_omp_clauses,
447         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
448         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
449         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
450         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
451         OMP_CLAUSE_DECL.
452         (conver_nonlocal_reference, convert_local_reference,
453         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
454         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
455         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
456         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
457         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
458         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
459         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
460         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
461         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
462         OMP_CLAUSE_UNTIED.
463         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
464         * c-common.h (c_finish_omp_taskwait): New prototype.
465         * gimple-low.c (lower_stmt): Handle OMP_TASK.
466         * tree-parloops.c (create_parallel_loop): Create 1 entry
467         vectors for OMP_FOR_{INIT,COND,INCR}.
468         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
469         (make_edges): Handle OMP_TASK.
470         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
471         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
472         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
473         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
474         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
475         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
476         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
477         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
478         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
479         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
480         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
481         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
482         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
483         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
484         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
485         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
486         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
487         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
488         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
489         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
490         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
491         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
492         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
493         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
494         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
495         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
496         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
497         original iterator is present in lastprivate clause or if
498         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
499         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
500         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
501         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
502         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
503         if it is set, lookup var in outer contexts too.  Handle
504         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
505         to be implicitly determined firstprivate for task regions.
506         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
507         if it is set, lookup var in outer contexts too.  Set
508         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
509         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
510         OMP_CLAUSE_UNTIED.  Take region_type as last argument
511         instead of in_parallel and in_combined_parallel.
512         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
513         Adjust callers.
514         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
515         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
516         (new_omp_context): Set default_kind to
517         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
518         (omp_region_type): New enum.
519         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
520         fields, add region_type.
521         (new_omp_context): Take region_type as argument instead of is_parallel
522         and is_combined_parallel.
523         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
524         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
525         ctx->is_combined_parallel checks.
526         (gimplify_omp_task): New function.
527         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
528         OMP_CLAUSE_UNTIED.
529         * omp-low.c (extract_omp_for_data): Use schedule(static)
530         for schedule(auto).  Handle pointer and unsigned iterators.
531         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
532         Add loops argument.  Extract data for collapsed OMP_FOR loops.
533         (expand_parallel_call): Assert sched_kind isn't auto,
534         map runtime schedule to index 3.
535         (struct omp_for_data_loop): New type.
536         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
537         Add loop, loops, collapse and iter_type fields.
538         (workshare_safe_to_combine_p): Disallow combined for if
539         iter_type is unsigned long long.  Don't combine collapse > 1 loops
540         unless all bounds and steps are constant.  Adjust extract_omp_for_data
541         caller.
542         (expand_omp_for_generic): Handle pointer, unsigned and long long
543         iterators.  Handle collapsed OMP_FOR loops.  Adjust
544         for struct omp_for_data changes.  If libgomp function doesn't return
545         boolean_type_node, add comparison of the return value with 0.
546         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
547         pointer, unsigned and long long iterators.  Adjust for struct
548         omp_for_data changes.
549         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
550         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
551         unsigned long long.  Allocate loops array, pass it to
552         extract_omp_for_data.  For collapse > 1 loops use always
553         expand_omp_for_generic.
554         (omp_context): Add sfield_map and srecord_type fields.
555         (is_task_ctx, lookup_sfield): New functions.
556         (use_pointer_for_field): Use is_task_ctx helper.  Change first
557         argument's type from const_tree to tree.  Clarify comment.
558         In OMP_TASK disallow copy-in/out sharing.
559         (build_sender_ref): Call lookup_sfield instead of lookup_field.
560         (install_var_field): Add mask argument.  Populate both record_type
561         and srecord_type if needed.
562         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
563         in srecord_type.
564         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
565         and DECL_FIELD_OFFSET.
566         (scan_sharing_clauses): Adjust install_var_field callers.  For
567         firstprivate clauses on explicit tasks allocate the var by value in
568         record_type unconditionally, rather than by reference.
569         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
570         Use is_taskreg_ctx instead of is_parallel_ctx.
571         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
572         (create_omp_child_function_name): Add task_copy argument, use
573         *_omp_cpyfn* names if it is true.
574         (create_omp_child_function): Add task_copy argument, if true create
575         *_omp_cpyfn* helper function.
576         (scan_omp_parallel): Adjust create_omp_child_function callers.
577         Rename parallel_nesting_level to taskreg_nesting_level.
578         (scan_omp_task): New function.
579         (lower_rec_input_clauses): Don't run constructors for firstprivate
580         explicit task vars which are initialized by *_omp_cpyfn*.  
581         Pass outer var ref to omp_clause_default_ctor hook if
582         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
583         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
584         OMP_CLAUSE_REDUCTION_INIT.
585         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
586         avoid duplicate setting of fields.  Handle
587         OMP_CLAUSE_PRIVATE_OUTER_REF.
588         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
589         copy-out if TREE_READONLY, only copy-in.
590         (expand_task_copyfn): New function.
591         (expand_task_call): New function.
592         (struct omp_taskcopy_context): New type.
593         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
594         New functions.
595         (lower_omp_parallel): Rename to...
596         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
597         Call create_task_copyfn if srecord_type is needed.  Adjust
598         sender_decl type.
599         (task_shared_vars): New variable.
600         (check_omp_nesting_restrictions): Warn if work-sharing,
601         barrier, master or ordered region is closely nested inside OMP_TASK.
602         Add warnings for barrier if closely nested inside of work-sharing,
603         ordered, or master region.
604         (scan_omp_1): Call check_omp_nesting_restrictions even for
605         GOMP_barrier calls.  Rename parallel_nesting_level to
606         taskreg_nesting_level.  Handle OMP_TASK.
607         (lower_lastprivate_clauses): Even if some lastprivate is found on a
608         work-sharing construct, continue looking for them on parent parallel
609         construct.
610         (lower_omp_for_lastprivate): Add lastprivate clauses
611         to the beginning of dlist rather than end.  Adjust for struct
612         omp_for_data changes.
613         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
614         not after it.  Handle collapsed OMP_FOR loops, adjust for
615         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
616         (get_ws_args_for): Adjust extract_omp_for_data caller.
617         (scan_omp_for): Handle collapsed OMP_FOR
618         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
619         (lower_omp_single_simple): If libgomp function doesn't return
620         boolean_type_node, add comparison of the return value with 0.
621         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
622         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
623         (parallel_nesting_level): Rename to...
624         (taskreg_nesting_level): ... this.
625         (is_taskreg_ctx): New function.
626         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
627         of is_parallel_ctx.
628         (execute_lower_omp): Rename parallel_nesting_level to
629         taskreg_nesting_level.
630         (expand_omp_parallel): Rename to...
631         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
632         Call omp_task_call for OMP_TASK regions.
633         (expand_omp): Adjust caller, handle OMP_TASK.
634         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
635
636         * bitmap.c (bitmap_default_obstack_depth): New variable.
637         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
638         if argument is NULL and bitmap_default_obstack is already initialized.
639         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
640         at the end.
641         * matrix-reorg.c (matrix_reorg): Likewise.
642
643 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
644
645         * config/i386/i386.md (*indirect_jump): Macroize using P
646         mode iterator.  Remove !TARGET_64BIT from insn constraints.
647         (*tablejump_1): Ditto.
648         (*indirect_jump_rex64): Remove insn pattern.
649         (*tablejump_1_rex64): Ditto.
650         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
651         and eh_return_si insn patterns.
652
653 2008-06-06  Richard Guenther  <rguenther@suse.de>
654
655         * tree-ssa-structalias.c (merge_smts_into): Remove.
656         (find_what_p_points_to): Do not bother to compute the
657         points-to set for pt_anything pointers.
658         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
659         for pt_anything pointers is ok.
660
661 2008-06-06  Jan Hubicka  <jh@suse.cz>
662
663         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
664
665 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
666
667         * cgraph.c: Fix typos in comments.
668         (cgraph_availability_names): Fix string typo.
669         * fold-const.c: Fix typos in comments.
670         (fold_binary): Fix typo in warning.
671         * genautomata.c: Fix typos in comments.
672         (check_presence_pattern_sets): Fix typo in local variable.
673         (output_description): Fix typo in output.
674         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
675         * hwint.h: Likewise.
676         * matrix-reorg.c (check_allocation_function): Likewise.
677         * omega.c (smooth_weird_equations): Likewise.
678         * auto-inc-dec.c: Fix typos in comments.
679         * bb-reorder.c: Likewise.
680         * builtins.c: Likewise.
681         * c-common.c: Likewise.
682         * c-cppbuiltin.c: Likewise.
683         * c-parser.c: Likewise.
684         * c-pretty-print.c: Likewise.
685         * cfgcleanup.c: Likewise.
686         * cfgexpand.c: Likewise.
687         * cfghooks.c: Likewise.
688         * cfglayout.c: Likewise.
689         * cfgloopmanip.c: Likewise.
690         * cgraphunit.c: Likewise.
691         * coverage.c: Likewise.
692         * dbxout.c: Likewise.
693         * df-byte-scan.c: Likewise.
694         * df-core.c: Likewise.
695         * df-problems.c: Likewise.
696         * df-scan.c: Likewise.
697         * dfp.c: Likewise.
698         * dominance.c: Likewise.
699         * domwalk.c: Likewise.
700         * dse.c: Likewise.
701         * dwarf2out.c: Likewise.
702         * emit-rtl.c: Likewise.
703         * et-forest.c: Likewise.
704         * function.c: Likewise.
705         * function.h: Likewise.
706         * gcc.c: Likewise.
707         * gcov-io.c: Likewise.
708         * gcov.c: Likewise.
709         * gcse.c: Likewise.
710         * genattrtab.c: Likewise.
711         * ggc-page.c: Likewise.
712         * gimplify.c: Likewise.
713         * gthr-lynx.h: Likewise.
714         * haifa-sched.c: Likewise.
715         * ipa-cp.c: Likewise.
716         * ipa-inline.c: Likewise.
717         * ipa-prop.h: Likewise.
718         * ipa-pure-const.c: Likewise.
719         * ipa-struct-reorg.c: Likewise.
720         * ipa-struct-reorg.h: Likewise.
721         * ipa-type-escape.c: Likewise.
722         * ipa.c: Likewise.
723         * loop-doloop.c: Likewise.
724         * mips-tfile.c: Likewise.
725         * mkmap-flat.awk: Likewise.
726         * mkmap-symver.awk: Likewise.
727         * modulo-sched.c: Likewise.
728         * omp-low.c: Likewise.
729         * optabs.c: Likewise.
730         * optabs.h: Likewise.
731         * opts.c: Likewise.
732         * passes.c: Likewise.
733         * postreload-gcse.c: Likewise.
734         * postreload.c: Likewise.
735         * predict.c: Likewise.
736         * pretty-print.h: Likewise.
737         * profile.c: Likewise.
738         * protoize.c: Likewise.
739         * ra-conflict.c: Likewise.
740         * real.c: Likewise.
741         * recog.c: Likewise.
742         * regclass.c: Likewise.
743         * regs.h: Likewise.
744         * reload.c: Likewise.
745         * rtl-error.c: Likewise.
746         * rtlanal.c: Likewise.
747         * scan.h: Likewise.
748         * sched-rgn.c: Likewise.
749         * see.c: Likewise.
750         * stmt.c: Likewise.
751         * target.h: Likewise.
752         * tree-dfa.c: Likewise.
753         * tree-eh.c: Likewise.
754         * tree-flow-inline.h: Likewise.
755         * tree-inline.c: Likewise.
756         * tree-into-ssa.c: Likewise.
757         * tree-loop-distribution.c: Likewise.
758         * tree-nested.c: Likewise.
759         * tree-parloops.c: Likewise.
760         * tree-pass.h: Likewise.
761         * tree-pretty-print.c: Likewise.
762         * tree-profile.c: Likewise.
763         * tree-scalar-evolution.c: Likewise.
764         * tree-sra.c: Likewise.
765         * tree-ssa-alias-warnings.c: Likewise.
766         * tree-ssa-ccp.c: Likewise.
767         * tree-ssa-coalesce.c: Likewise.
768         * tree-ssa-dom.c: Likewise.
769         * tree-ssa-dse.c: Likewise.
770         * tree-ssa-forwprop.c: Likewise.
771         * tree-ssa-live.c: Likewise.
772         * tree-ssa-live.h: Likewise.
773         * tree-ssa-loop-im.c: Likewise.
774         * tree-ssa-loop-ivopts.c: Likewise.
775         * tree-ssa-loop-niter.c: Likewise.
776         * tree-ssa-loop-prefetch.c: Likewise.
777         * tree-ssa-phiopt.c: Likewise.
778         * tree-ssa-phiprop.c: Likewise.
779         * tree-ssa-sccvn.c: Likewise.
780         * tree-ssa-ter.c: Likewise.
781         * tree-ssa-threadupdate.c: Likewise.
782         * tree-ssa.c: Likewise.
783         * tree-vect-analyze.c: Likewise.
784         * tree-vect-transform.c: Likewise.
785         * tree-vectorizer.c: Likewise.
786         * tree-vn.c: Likewise.
787         * tree-vrp.c: Likewise.
788         * tree.c: Likewise.
789         * tree.def: Likewise.
790         * tree.h: Likewise.
791         * unwind-dw2-fde.c: Likewise.
792         * unwind.inc: Likewise.
793         * value-prof.c: Likewise.
794         * vmsdbgout.c: Likewise.
795
796 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
797
798         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
799         always place FP constants in the TOC for TARGET_POWERPC64.
800         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
801
802 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
803
804         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
805         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
806         enable for TARGET_E500_DOUBLE.
807         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
808         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
809         floating-point modes like integer modes for E500 double.
810         (rs6000_legitimate_offset_address_p): Likewise.
811         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
812         addressing for DDmode for E500 double.
813         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
814         modes as using 64-bits of registers for E500 double.
815         (spe_build_register_parallel): Do not handle DDmode or TDmode.
816         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
817         specially for E500 double.
818         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
819         TDmode for E500 double.
820         (rs6000_gimplify_va_arg): Only handle SDmode in registers
821         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
822         (rs6000_split_multireg_move): Do not handle TDmode specially for
823         E500 double.
824         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
825         using 64-bit registers for E500 double.
826         (emit_frame_save): Do not handle DDmode specially for E500 double.
827         (gen_frame_mem_offset): Likewise.
828         (rs6000_function_value): Do not call spe_build_register_parallel
829         for DDmode or TDmode.
830         (rs6000_libcall_value): Likewise.
831         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
832         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
833         for E500 double.
834
835 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
836
837         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
838         in comments.
839
840 2008-06-04  Junjie Gu <jgu@tensilica.com>
841
842         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
843         comparison for frame pointers.
844
845 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
846
847         PR target/27386
848         * config/avr/avr.h (PUSH_ROUNDING): Remove.
849
850 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
851
852         PR target/30243
853         * builtins.c (expand_builtin_signbit): Don't take lowpart when
854         register is already smaller or equal to required mode. 
855
856 2008-06-04  Xinliang David Li  <davidxl@google.com>
857
858         * tree-call-cdce.c: New file. 
859         (cond_dead_built_in_calls): New static variable.
860         (input_domain): New struct.
861         (check_pow): New function.
862         (check_builtin_call): Ditto.
863         (check_target_format): Ditto.
864         (is_call_dce_candidate): Ditto.
865         (gen_one_condition): Ditto.
866         (gen_conditions_for_domain): Ditto.
867         (get_domain): Ditto.
868         (gen_conditions_for_pow_cst_base): Ditto.
869         (gen_conditions_for_pow_int_base): Ditto.
870         (gen_conditions_for_pow): Ditto.
871         (get_no_error_domain): Ditto.
872         (gen_shrink_wrap_conditions): Ditto.
873         (shrink_wrap_one_built_in_call): Ditto.
874         (shink_wrap_conditional_dead_built_in_calls): Ditto.
875         (tree_call_cdce): Ditto.
876         (gate_call_cdce): Ditto.
877         (pass_call_cdce): New gimple pass.
878         * passes.c: (init_optimization_passes): New pass.
879         * tree-pass.h: New pass declaration.
880         * opts.c (decode_options): New flag setting.
881         * common.opt: Add -ftree-builtin-call-dce flag.
882         * Makefile.in: Add new source file.
883         * tempvar.def: New tv_id.
884         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
885
886 2008-06-04  Richard Guenther  <rguenther@suse.de>
887
888         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
889         (is_call_clobbered): Always check var_ann->call_clobbered.
890         (mark_call_clobbered): Always set var_ann->call_clobbered.
891         (clear_call_clobbered): Always clear var_ann->call_clobbered.
892         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
893         (reset_alias_info): Clear call clobbering info on MTAGs and
894         globals as well.
895         (set_pt_anything): Set pt_global_mem.
896         (create_tag_raw): Adjust comment.
897         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
898
899 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
900             Maxim Kuvyrkov  <maxim@codesourcery.com>
901
902         * config/m68k/m68k.opt (mxgot): New option.
903         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
904         (m68k_output_addr_const_extra): New.
905         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
906         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
907         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
908         * doc/invoke.texi (M680x0 Options): Document -mxgot.
909
910 2008-06-04  Richard Guenther  <rguenther@suse.de>
911
912         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
913         negative or non-representable offsets.
914
915 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
916
917         * config/i386/i386.c (ix86_gen_leave): New.
918         (ix86_gen_pop1): Likewise.
919         (ix86_gen_add3): Likewise.
920         (ix86_gen_sub3): Likewise.
921         (ix86_gen_sub3_carry): Likewise.
922         (ix86_gen_one_cmpl2): Likewise.
923         (ix86_gen_monitor): Likewise.
924         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
925         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
926         ix86_gen_one_cmpl2 and ix86_gen_monitor.
927         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
928         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
929         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
930         (ix86_expand_epilogue): Updated.
931         (print_operand): Handle integer register operand for 'z'.
932         (ix86_expand_strlensi_unroll_1): Likewise.
933         (ix86_expand_strlen): Likewise.
934         (ix86_expand_builtin): Likewise.
935         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
936         mov{q}/mov{l} and add{q}/add{l}.
937
938 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
939
940         * config/i386/i386.md (P): New mode iterator.
941         (SFmode push_operand splitter): Macroize DImode and SImode pushes
942         using P mode iterator.
943         (DFmode push_operand splitter): Ditto.
944         (XFmode push_operand splitter): Ditto.
945         (DFmode float_extend SFmode push_operand splitter): Ditto.
946         (XFmode float_extend SFmode push_operand splitter): Do not generate
947         SImode pushes for 64bit target.  Macroize Dimode and SImode
948         pushes using P mode iterator.
949         (XFmode float_extend DFmode push_operand splitter): Ditto.
950
951 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
952
953         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
954         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
955         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
956         return type to int.
957         (ix86_call_abi_override): Remove check for call_used_regs.
958
959 2008-06-03  Richard Guenther  <rguenther@suse.de>
960
961         * tree-ssa-structalias.c (find_func_aliases): Add constraints
962         for the lhs of calls if the return type contains pointers.
963
964 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
965
966         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
967         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
968         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
969         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
970         of cfun and DEFAULT_ABI to deceide abi mode.
971         (DEFAULT_ABI): New.
972         (REG_PARM_STACK_SPACE): Removed.
973         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
974         (STACK_BOUNDARY): Use default target to deceide stack boundary.
975         * config/i386/i386-protos.h (ix86_cfun_abi): New.
976         (ix86_function_abi): Likewise.
977         (ix86_function_type_abi): Likewise.
978         (ix86_call_abi_override): Likewise.
979         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
980         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
981         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
982         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
983         specific defines.
984         (X86_64_REGPARM_MAX): New.
985         (X86_64_SSE_REGPARM_MAX): New.
986         (X64_REGPARM_MAX): New.
987         (X64_SSE_REGPARM_MAX): New.
988         (X86_32_REGPARM_MAX): New.
989         (X86_32_SSE_REGPARM_MAX): New.
990         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
991         (ix86_function_regparm): Handle user calling abi.
992         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
993         by DEFAULT_ABI versus SYSV_ABI check.
994         (ix86_reg_parm_stack_space): New.
995         (ix86_function_type_abi): New.
996         (ix86_call_abi_override): New.
997         (ix86_function_abi): New.
998         (ix86_cfun_abi): New.
999         (init_cumulative_args): Call abi specific initialization.
1000         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1001         (function_arg_64): Extend SSE_REGPARM_MAX check.
1002         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1003         (ix86_pass_by_reference): Likewise.
1004         (ix86_function_value_regno_p): Likewise.
1005         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1006         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1007         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1008         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1009         (setup_incoming_varargs_64): Adjust regparm for call abi.
1010         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1011         (ix86_va_start): Likewise.
1012         (ix86_gimplify_va_arg): Likewise.
1013         (ix86_expand_prologue): Likewise.
1014         (output_pic_addr_const): Likewise.
1015         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1016         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1017         (x86_output_mi_thunk): Likewise.
1018         (x86_function_profiler): Likewise.
1019         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1020         (SYSV_ABI, MS_ABI): New constants.
1021         (DEFAULT_ABI): New.
1022         (init_regs): Add prototype of function in regclass.c file.
1023         (OVERRIDE_ABI_FORMAT): New.
1024         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1025         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1026         (OUTGOING_REG_PARM_STACK_SPACE): New.
1027         (ix86_reg_parm_stack_space): New prototype.
1028         (CUMULATIVE_ARGS): Add call_abi member.
1029         (machine_function): Add call_abi member.
1030         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1031         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1032
1033 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1034
1035         PR target/34879
1036         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1037         (avr_builtin_setjmp_frame_value): New function.
1038         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1039         (nonlocal_goto): Define.
1040
1041 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1042
1043         * config/mips/mips.c (mips_emit_loadgp): Return early if
1044         there is nothing do to, otherwise emit a blockage if
1045         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1046         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1047
1048 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1049
1050         * configure.ac: Drop unneeded backslash ending up in config.in.
1051         * acinclude.m4: Likewise.
1052         * config.in: Regenerate.
1053
1054 2008-05-26  Jan Hubicka  <jh@suse.cz>
1055
1056         * predict.c (maybe_hot_frequency_p): Break out of...
1057         (maybe_hot_bb_p): ... here.
1058         (maybe_hot_edge_p): New.
1059         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1060         * basic-block.h (maybe_hot_edge_p): Declare.
1061
1062 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1063
1064         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1065         (*cmpfp_<mode>_cc): Ditto.
1066         (*fp_jcc_8<mode>_387): Ditto.
1067         (*fop_<MODEF:mode>_2_i387): Ditto.
1068         (*fop_<MODEF:mode>_3_i387): Ditto.
1069         (*fop_xf_2_i387): Ditto.
1070         (*fop_xf_3_i387): Ditto.
1071
1072 2008-06-02  Tomas Bily  <tbily@suse.cz>
1073
1074         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1075
1076 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1077
1078         * config/mips/mips.c (mips_valid_offset_p): New function.
1079         (mips_valid_lo_sum_p): Likewise.
1080         (mips_classify_address): Use them.
1081         (mips_force_address): New function.
1082         (mips_legitimize_address): Use it.
1083         * config/mips/mips.md (MOVE128): New mode iterator.
1084         (movtf): Require TARGET_64BIT.  Remove empty strings.
1085         (*movtf_internal): Rename to...
1086         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1087         of "R" and use {,fp}{load,store} attributes instead of "multi".
1088         Use a separate define_split.
1089         (*movtf_mips16): New pattern.
1090
1091 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1092
1093         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1094         * config/mips/mips.c (mips_expand_before_return): New function.
1095         (mips_expand_epilogue): Call it.
1096         * config/mips/mips.md (return): Turn into a define_expand.
1097         (*return): New insn.
1098
1099 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1100
1101         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1102         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1103         functions.  Do not emit uses and clobbers of CONCATs; individually
1104         use and clobber their operands.
1105         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1106         gen_clobber, emit_use and gen_use.
1107         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1108         (expand_builtin_return): Likewise.
1109         * cfgbuild.c (count_basic_blocks): Likewise.
1110         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1111         * explow.c (emit_stack_restore): Likewise.
1112         * expmed.c (extract_bit_field_1): Likewise.
1113         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1114         (emit_move_multi_word, store_constructor): Likewise.
1115         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1116         (thread_prologue_and_epilogue_insns): Likewise.
1117         * lower-subreg.c (resolve_simple_move): Likewise.
1118         * optabs.c (widen_operand, expand_binop): Likewise.
1119         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1120         * reload.c (find_reloads): Likewise.
1121         * reload1.c (eliminate_regs_in_insn): Likewise.
1122         * stmt.c (expand_nl_goto_receiver): Likewise.
1123         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1124         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1125         * config/arm/arm.c (arm_load_pic_register): Likewise.
1126         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1127         * config/arm/arm.md (untyped_return): Likewise.
1128         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1129         * config/avr/avr.c (expand_prologue): Likewise.
1130         * config/bfin/bfin.c (do_unlink): Likewise.
1131         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1132         * config/cris/cris.c (cris_expand_prologue): Likewise.
1133         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1134         (machopic_legitimize_pic_address): Likewise.
1135         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1136         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1137         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1138         (ix86_expand_convert_uns_didf_sse): Likewise.
1139         (ix86_expand_vector_init_general): Likewise.
1140         * config/ia64/ia64.md (eh_epilogue): Likewise.
1141         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1142         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1143         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1144         (config/iq2000/iq2000.c): Likewise.
1145         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1146         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1147         (builtin_longjmp): Likewise.
1148         * config/mn10300/mn10300.md (call, call_value): Likewise.
1149         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1150         * config/pdp11/pdp11.md (abshi2): Likewise.
1151         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1152         * config/s390/s390.c (s390_emit_prologue): Likewise.
1153         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1154         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1155         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1156         * config/sh/sh.c (prepare_move_operands): Likewise.
1157         (output_stack_adjust, sh_expand_epilogue): Likewise.
1158         (sh_set_return_address, sh_expand_t_scc): Likewise.
1159         * config/sparc/sparc.c (load_pic_register): Likewise.
1160         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1161         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1162         * config/v850/v850.c (expand_epilogue): Likewise.
1163
1164 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1165
1166         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1167         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1168         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1169         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1170         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1171         stack pointer register.
1172         (output_movhi): Remove code for interrupt specific writing to the 
1173         stack pointer register.
1174
1175 2008-05-31  Richard Guenther  <rguenther@suse.de>
1176
1177         PR tree-optimization/34244
1178         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1179         (tree_expr_nonzero_warnv_p): Likewise.
1180         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1181         ssa_name_nonnegative_p.
1182         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1183         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1184         not tree_expr_nonzero_warnv_p.
1185
1186         PR tree-optimization/36262
1187         Revert
1188         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1189
1190         PR tree-optimization/34244
1191         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1192         (record_numbers_of_iterations): New function.
1193         (execute_vrp): Cache the numbers of iterations of loops.
1194         * tree-scalar-evolution.c (scev_reset_except_niters):
1195         New function.
1196         (scev_reset): Use scev_reset_except_niters.
1197         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1198
1199 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1200
1201         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1202         __WORKAROUND_RETS when appropriate.
1203
1204 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1205
1206         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1207         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1208         mode iterator.
1209         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1210         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1211         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1212         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1213         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1214         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1215         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1216         *fop_df_1_sse insn patterns using MODEF mode iterator.
1217         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1218         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1219         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1220         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1221         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1222         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1223         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1224         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1225         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1226         (*fop_xf_5_i387): Ditto.
1227         (*fop_xf_6_i387): Ditto.
1228
1229 2008-05-30  Richard Guenther  <rguenther@suse.de>
1230
1231         * builtins.c (build_string_literal): Avoid generating
1232         a non-gimple_val result.
1233
1234 2008-05-30  DJ Delorie  <dj@redhat.com>
1235
1236         * exec-tool.in: Use an environment variable (private) instead of a
1237         file (shared) as a semaphore, so as to not break parallel builds.
1238
1239 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1240
1241         * optabs.c (maybe_encapsulate_block): Remove.
1242         (emit_libcall_block): Adjust accordingly.
1243         * optabs.h (maybe_encapsulate_block): Remove prototype.
1244
1245         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1246         Don't use maybe_encapsulate_block.
1247
1248 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1249
1250         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1251         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1252         rtx is a SYMBOL_REF before calling get_pool_constant.
1253
1254 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1255
1256         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1257
1258 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1259
1260         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1261         rather than OS names to choose INO_T_EQ definition.
1262         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1263         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1264
1265 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1266
1267         PR target/36348
1268         * config/darwin-f.c: New.
1269         * config/t-darwin: Added rule to build darwin-f.o.
1270         * config.gcc: Defined new variable, fortran_target_objs.
1271         (*-*-darwin*): Set fortran_target_objs.
1272         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1273         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1274         * configure: Regenerated.
1275
1276 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1277
1278         PR target/35771
1279         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1280         canonical type if needed.
1281
1282 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1283
1284         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1285
1286 2008-05-29  Richard Guenther  <rguenther@suse.de>
1287
1288         PR tree-optimization/36343
1289         PR tree-optimization/36346
1290         PR tree-optimization/36347
1291         * tree-flow.h (clobber_what_p_points_to): Declare.
1292         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1293         pointed-to variable is dereferenced is irrelevant to whether
1294         the pointer can access the pointed-to variable.
1295         (clobber_what_p_points_to): New function.
1296         * tree-ssa-alias.c (set_initial_properties): Use it.
1297         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1298         call clobber check for NMTs.
1299
1300 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1301         
1302         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1303         for printing gcov_type.
1304
1305 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1306
1307         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1308         and the eh region information.
1309         * value-prof.c (gimple_move_stmt_histograms): New function.
1310         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1311
1312 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1313
1314         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1315
1316 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1317
1318         * value-prof.c (tree_ic_transform): Print counts.
1319         * tree-profile.c (tree_gen_ic_func_profiler):
1320         Clear __gcov_indreict_call_callee variable to avoid misattribution
1321         of the profile.
1322
1323 2008-05-28  Rafael Espindola  <espindola@google.com>
1324
1325         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1326         invalid sharing.
1327
1328 2008-05-28  Richard Guenther  <rguenther@suse.de>
1329
1330         PR tree-optimization/36339
1331         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1332         and clobbering code out of the loop.
1333
1334 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1335
1336         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1337         letters defined.
1338
1339         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1340         s390_contiguous_bitmask_p, s390_symref_operand_p,
1341         s390_check_symref_alignment, s390_reload_larl_operand,
1342         s390_reload_symref_address): New functions.
1343         (s390_branch_condition_mnemonic): Support compare and branch
1344         instructions.
1345         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1346         and 'W' constraints.
1347         (s390_secondary_reload): Add secondary reloads for unaligned
1348         symbol refs or symbol refs to floating point or QI/TI mode
1349         integer values.
1350         (legitimate_address_p): Accept symbol references as addresses.
1351         (s390_expand_insv): Use rotate and insert selected bits
1352         instruction for insv when building for z10.
1353         (print_operand_address): Handle symbol ref addresses.
1354         (print_operand): Output modifier 'c' added for signed byte values.
1355         (s390_encode_section_info): Mark symbol refs with
1356         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1357
1358         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1359         (length attribute): RRF, RRR have 4 byte length.
1360         (FPALL, INTALL): New mode iterators added.
1361         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1362         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1363         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1364         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1365         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1366         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1367         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1368         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1369         instructions.
1370         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1371         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1372         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1373         reload<INTALL:mode><P:mode>_toreg_z10,
1374         reload<FPALL:mode><P:mode>_tomem_z10,
1375         reload<FPALL:mode><P:mode>_toreg_z10,
1376         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1377         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1378         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1379         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1380         definition.
1381         (movmem, clrmem, cmpmem): New splitters added.
1382
1383         * config/s390/predicates.md (larl_operand): Use
1384         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1385         SYMBOL_REF_ALIGN1_P.
1386         (s390_signed_integer_comparison,
1387         s390_unsigned_integer_comparison): New predicates.
1388
1389         * config/s390/s390-protos.h (s390_check_symref_alignment,
1390         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1391         s390_reload_symref_address,
1392         s390_compare_and_branch_condition_mask): Prototypes added.
1393
1394         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1395         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1396         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1397
1398 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1399
1400         * config/s390/s390.c (z10_cost): New cost function for z10.
1401         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1402         (s390_issue_rate): Adjust issue rate for z10.
1403         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1404         (processor_flags): Add PF_Z10.
1405         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1406         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1407         * gcc/config.gcc: Add z10.
1408
1409 2008-05-28  Richard Guenther  <rguenther@suse.de>
1410
1411         PR tree-optimization/36291
1412         * tree-flow. h (struct gimple_df): Remove var_anns member.
1413         * tree-flow-inline.h (gimple_var_anns): Remove.
1414         (var_ann): Simplify.
1415         * tree-dfa.c (create_var_ann): Simplify.
1416         (remove_referenced_var): Clear alias info from var_anns of globals.
1417         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1418         (delete_tree_ssa): Clear alias info from var_anns of globals.
1419         Do not free var_anns.
1420         (var_ann_eq): Remove.
1421         (var_ann_hash): Likewise.
1422
1423 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1424
1425         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1426         and loongson2f entries.
1427         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1428         * config/mips/mips.h (processor_type): Add Loongson-2E
1429         and Loongson-2F entries.
1430         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1431         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1432         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1433         * doc/invoke.texi (MIPS Options): Document loongson2e
1434         and loongson2f processor names.
1435
1436 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1437
1438         PR target/35767
1439         PR target/35771
1440         * config/i386/i386.c (ix86_function_arg_boundary): Use
1441         alignment of canonical type.
1442         (ix86_expand_vector_move): Check unaligned memory access for
1443         all SSE modes.
1444
1445 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1446
1447         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1448         Moved to the front of file.
1449
1450 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1451             H.J. Lu  <hongjiu.lu@intel.com>
1452
1453         * dwarf2out.c (current_fde): New.
1454         (add_cfi): Use it.
1455         (lookup_cfa:): Likewise.
1456         (dwarf2out_end_epilogue): Likewise.
1457         (dwarf2out_note_section_used): Likewise.
1458
1459 2008-05-27  Michael Matz  <matz@suse.de>
1460
1461         PR c++/27975
1462         * c.opt (Wenum-compare): New warning option.
1463         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1464
1465 2008-05-27  Michael Matz  <matz@suse.de>
1466
1467         PR middle-end/36326
1468         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1469         non-BLKmode types.
1470         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1471         into memory as tail calls.
1472
1473 2008-05-27  Richard Guenther  <rguenther@suse.de>
1474
1475         PR tree-optimization/36339
1476         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1477         pointers cause all addressable variables to be call clobbered.
1478
1479 2008-05-27  Richard Guenther  <rguenther@suse.de>
1480
1481         PR tree-optimization/36245
1482         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1483
1484 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1485
1486         * config/s390/s390.md: Replace all occurences of the 'm'
1487         constraint with 'RT'.
1488
1489 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1490
1491         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1492         definitions added.
1493         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1494         "*movdi_64".
1495         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1496         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1497         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1498
1499 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1500
1501         * reload.c: (find_reloads): Skip alternatives according to the
1502         "enabled" attribute. Constify the constraint variable.
1503         * recog.c (get_attr_enabled): Add default implementation.
1504         (extract_insn): Set the alternative_enabled_p array
1505         in the recog_data struct.
1506         (preprocess_constraints, constrain_operands): Skip
1507         alternatives according to the "enabled" attribute
1508         * recog.h (struct recog_data): New field alternative_enabled_p.
1509         (skip_alternative): New inline function.
1510         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1511         (record_reg_classes): Skip alternative according to the
1512         "enabled" attribute.
1513
1514         * doc/md.texi: Add documention for the "enabled" attribute.
1515
1516 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1517
1518         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1519         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1520         constraint with TARGET_MEM_CONSTRAINT.
1521         * recog.c (asm_operand_ok, preprocess_constraints,
1522         constrain_operands): Likewise.
1523         * regclass.c (record_reg_classes): Likewise.
1524         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1525         * reload1.c (maybe_fix_stack_asms): Likewise.
1526         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1527         * recog.h: Adjust comment.
1528         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1529         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1530         * doc/md.texi: Add a note to description of 'm' constraint.
1531         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1532
1533 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1534
1535         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1536         that the bitfield is of integral type before testing its precision.
1537
1538 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1539             Sa Liu  <saliu@de.ibm.com> 
1540
1541         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1542         __modti3, __udivti3, __umodti3 and __udivmodti4.
1543         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1544         that implement TImode mul and div functions.
1545         * config/spu/multi3.c: New. Implement __multi3.
1546         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1547         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1548         functions on SPU.
1549
1550 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1551
1552         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1553         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1554         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1555         tls_sysv_suffix): New mode and mode attribute iterators.
1556         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1557         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1558         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1559         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1560         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1561         iterators.
1562
1563 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1564
1565         PR tree-optimization/36329
1566         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1567         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1568         * cgraphbuild.c (initialize_inline_failed): Use the latter
1569         macro in lieu of the former.
1570         * ipa-inline.c (cgraph_mark_inline): Likewise.
1571         (cgraph_decide_inlining_of_small_function): Likewise.
1572         (cgraph_decide_inlining): Likewise.
1573         (cgraph_decide_inlining_incrementally): Likewise.
1574
1575 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1576             Anatoly Sokolov  <aesok@post.ru>
1577
1578         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1579         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1580         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1581         optimization for 'avr6' architecture.
1582
1583 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1584
1585         PR target/34932
1586         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1587
1588 2008-05-26  Richard Guenther  <rguenther@suse.de>
1589
1590         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1591         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1592
1593 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1594
1595         PR middle-end/36253
1596         * caller-save.c (insert_restore): Verify alignment of spill space.
1597         (insert_save): Likewise.
1598         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1599         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1600         (STACK_SLOT_ALIGNMENT): Likewise.
1601         * function.c (LOCAL_ALIGNMENT): Removed.
1602         (get_stack_local_alignment): New.
1603         (assign_stack_local): Use it.  Set alignment on stack slot.
1604         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1605         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1606         (STACK_SLOT_ALIGNMENT): New.
1607         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1608         stack slot in XFmode.
1609
1610         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1611
1612 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1613
1614         PR/36321
1615         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1616         argument operand in rax isn't removed.
1617
1618 2008-05-26  Richard Guenther  <rguenther@suse.de>
1619
1620         PR middle-end/36300
1621         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1622         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1623
1624 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1625
1626         PR bootstrap/36331
1627         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1628
1629 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1630
1631         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1632         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1633
1634 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1635
1636         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1637         build a trampoline if we don't want one.
1638         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1639         return zero for nested functions if we don't want a trampoline.
1640
1641 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1642
1643         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1644
1645 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1646
1647         PR fortran/18428
1648         * c.opt: Removed undocumented option '-lang-fortran'.
1649         * c-common.h: Removed global variable 'lang_fortran'.
1650         * c-opts.c (c_common_handle_option): Removed code to handle
1651         option '-lang-fortran'. Updated includes.
1652         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1653         definition of '__GFORTRAN__'.
1654         (define__GNUC__): Reimplemented to use BASEVER and
1655         cpp_define_formatted.
1656         (builtin_define_with_value_n): Removed.
1657         * c-incpath.h: Renamed to ...
1658         * incpath.h: ... this.
1659         * c-incpath.c: Renamed to ...
1660         * incpath.c: ... this. Updated includes.
1661         * fix-header.c: Updated includes.
1662         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1663         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1664         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1665
1666 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1667
1668         * tree.h: Update the table of flags used on tree nodes.
1669         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1670         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1671         (FORCED_LABEL): Add access check.
1672         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1673         (ASM_INPUT_P): Likewise.
1674         (ASM_VOLATILE_P): Likewise.
1675         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1676         (OMP_SECTION_LAST): Access private_flag directly.
1677         (OMP_RETURN_NOWAIT): Likewise.
1678         (OMP_PARALLEL_COMBINED): Likewise.
1679         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1680         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1681         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1682         deprecated_flag directly.
1683
1684 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1685
1686         * final.c (frame_pointer_needed): Removed.
1687         * flags.h (frame_pointer_needed): Likewise.
1688
1689         * function.h (rtl_data): Add frame_pointer_needed.
1690         (frame_pointer_needed): New.
1691
1692 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1693
1694         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1695
1696 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1697
1698         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1699         SRC is a REG.
1700
1701 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1702
1703         * c-common.c (strip_array_types): Move function to..
1704         * tree.c: ..here.
1705         (get_inner_array_type): Delete.
1706         * c-common.h (strip_array_types): Move declaration to..
1707         * tree.h: ..here.
1708         (get_inner_array_type): Delete.
1709         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1710         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1711         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1712         * config/pa/pa.c (emit_move_sequence): Likewise.
1713
1714 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1715
1716         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1717         attribute to 34.
1718
1719 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1720
1721         * function.c: Include target hook for nonlocal_goto frame value.
1722
1723 2008-05-24  Richard Guenther  <rguenther@suse.de>
1724
1725         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1726         variable can be only accessed through a pointer or a union.
1727
1728 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1729
1730         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1731         * doc/extend.texi: Likewise.
1732
1733 2008-05-23  DJ Delorie  <dj@redhat.com>
1734
1735         * config/m32c/jump.md (untyped_call): Add.
1736
1737         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1738         for A24 to PSImode.
1739         (m32c_address_cost): Detail costs for indirect offsets.
1740
1741 2008-05-23  Rafael Espindola  <espindola@google.com>
1742
1743         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1744         if a node is a SUBREG.
1745         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1746         is a SUBREG.
1747
1748 2008-05-23  Paul Brook  <paul@codesourcery.com>
1749             Carlos O'Donell  <carlos@codesourcery.com>
1750
1751         * doc/extend.texi: Clarify use of __attribute__((naked)).
1752         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1753         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1754         * function.c (use_register_for_decl): Use
1755         targetm.calls.allocate_stack_slots_for_args.
1756         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1757         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1758         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1759
1760 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1761
1762         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1763
1764 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1765
1766         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1767         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1768         is only rounded once.
1769
1770 2008-05-23  Richard Guenther  <rguenther@suse.de>
1771
1772         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1773
1774 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1775             Jakub Jelinek  <jakub@redhat.com>
1776
1777         PR target/36079
1778         * configure.ac: Handle --enable-cld.
1779         * configure: Regenerated.
1780         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1781         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1782         (ix86_current_function_needs_cld): New define.
1783         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1784         (cld): New isns pattern.
1785         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1786         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1787         * config/i386/i386.opt (mcld): New option.
1788         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1789         TARGET_CLD and ix86_current_function_needs_cld.
1790         (override_options): Use -mcld by default for 32-bit code if
1791         USE_IX86_CLD.
1792
1793         * doc/install.texi (Options specification): Document --enable-cld.
1794         * doc/invoke.texi (Machine Dependent Options)
1795         [i386 and x86-64 Options]: Add -mcld option.
1796         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1797
1798 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1799         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1800         (return_in_memory_64): Likewise.
1801         (return_in_memory_ms_64): Likewise.
1802
1803 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1804
1805         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1806         * builtins.c (fold_builtin_fpclassify): New.
1807         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1808         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1809         * c-common.c (handle_type_generic_attribute): Adjust to accept
1810         fixed arguments before an elipsis.
1811         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1812         * doc/extend.texi: Document __builtin_fpclassify.
1813
1814 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1815
1816         * omp-low.c (gate_expand_omp_ssa): Remove.
1817         (pass_expand_omp_ssa): Remove.
1818         (gate_expand_omp): Do not check for flag_openmp_ssa.
1819         * common.opt (-fopenmp-ssa): Remove.
1820         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1821
1822 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1823
1824         * config/sh/sh.opt (mfixed-range): New option.
1825         * config/sh/sh-protos.h (sh_fix_range): Declare.
1826         * config/sh/sh.c (sh_fix_range): New function.
1827         * config/sh/sh.h (sh_fixed_range_str): Declare.
1828         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1829         is not empty.
1830         * doc/invoke.texi (SH Options): Document -mfixed-range.
1831
1832 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1833
1834         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1835         it before the redeclaration.
1836
1837 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1838
1839         * config/avr/avr.c (get_sequence_length): Add new function.
1840         (expand_prologue, expand_epilogue): Remove duplicate code.
1841
1842 2008-05-22  Rafael Espindola  <espindola@google.com>
1843
1844         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1845         sharing.
1846
1847 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1848
1849         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1850         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1851
1852         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1853         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1854         (vect_update_misalignment_for_peel): Likewise.
1855         (vector_alignment_reachable_p): Likewise.
1856         * tree-vect-transform.c (vectorizable_load): Likewise.
1857         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1858         (get_vectype_for_scalar_type): Pass mode of scalar_type
1859         to UNITS_PER_SIMD_WORD.
1860
1861         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1862         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1863         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1864         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1865         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1866
1867 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1868
1869         PR tree-optimization/36293
1870         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1871         if the first load must be skipped because of a gap.
1872
1873 2008-05-22  Richard Guenther  <rguenther@suse.de>
1874
1875         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1876         more cases of offset disambiguation that is possible if
1877         strict-aliasing rules apply.
1878         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1879         for basic offset and type-based disambiguation.
1880
1881 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1882
1883         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1884         ix86_expand_vector_set on V16QImode for SSE4.1.
1885
1886 2008-05-21  Tom Tromey  <tromey@redhat.com>
1887
1888         * c.opt (Wimport): Mark as undocumented.
1889         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1890         -Wno-import.
1891         (Warning Options): Likewise.
1892         * doc/cppopts.texi: Don't mention -Wimport.
1893
1894 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1895
1896         PR tree-optimization/36287
1897         PR tree-optimization/36286
1898         * lambda-code.c (build_access_matrix): Do not use the loop->num
1899         for computing the number of induction variables: use the loop depth
1900         instead.
1901
1902 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1903
1904         PR/36280
1905         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1906         option -f(no-)leading-underscore.
1907
1908 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1909
1910         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1911         GET_MODE_NUNITS (mode).
1912
1913 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1914
1915         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1916         (-mmulhw): Add 464 to description.
1917         (-mdlmzb): Likewise.
1918         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1919         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1920         464fp entries.
1921         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1922         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1923         * config/rs6000/rs6000.md: Update comments for 464.
1924
1925 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1926
1927         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1928
1929 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1930
1931         * config/i386/sse.md (vec_extractv4sf): Removed.
1932         (vec_extractv2df): Likewise.
1933         (vec_extractv2di): Likewise.
1934         (vec_extractv4si): Likewise.
1935         (vec_extractv8hi): Likewise.
1936         (vec_extractv16qi): Likewise.
1937         (vec_extract<mode>): New.
1938
1939 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1940
1941         * config/i386/sse.md (vec_setv4sf): Removed.
1942         (vec_setv2df): Likewise.
1943         (vec_setv2di): Likewise.
1944         (vec_setv4si): Likewise.
1945         (vec_setv8hi): Likewise.
1946         (vec_setv16qi): Likewise.
1947         (vec_set<mode>): New.
1948
1949 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1950
1951         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1952         goto for vec_concat and vec_interleave.
1953
1954 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1955
1956         * config/i386/sse.md (vec_initv4sf): Removed.
1957         (vec_initv2df): Likewise.
1958         (vec_initv2di): Likewise.
1959         (vec_initv4si): Likewise.
1960         (vec_initv8hi): Likewise.
1961         (vec_initv16qi): Likewise.
1962         (vec_init<mode>): New.
1963
1964 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1965
1966         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1967
1968 2008-05-21  Tom Tromey  <tromey@redhat.com>
1969
1970         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1971         (zone_find_object_offset): Likewise.
1972         (gt_ggc_m_S): Likewise.
1973         (highest_bit): Likewise.
1974         * ggc-page.c (gt_ggc_m_S): New function.
1975         * stringpool.c (string_stack): Remove.
1976         (init_stringpool): Update.
1977         (ggc_alloc_string): Use ggc_alloc.
1978         (maybe_delete_ident): New function.
1979         (ggc_purge_stringpool): Likewise.
1980         (gt_ggc_m_S): Remove.
1981         * ggc-common.c (ggc_protect_identifiers): New global.
1982         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1983         ggc_protect_identifiers.
1984         * ggc.h (ggc_protect_identifiers): Declare.
1985         (gt_ggc_m_S): Update.
1986         (ggc_purge_stringpool): Declare.
1987         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1988         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1989         special case.
1990         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1991
1992 2008-05-21  David S. Miller  <davem@davemloft.net>
1993
1994         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1995         tmake_file.
1996
1997 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1998
1999         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2000         once finished.
2001
2002 2008-05-20  David Daney  <ddaney@avtrex.com>
2003
2004         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2005         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2006         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2007         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2008         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2009         (atomic_hiqi_op): New define_code_iterator.
2010         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2011         mips_expand_compare_and_swap_12.
2012         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2013         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2014         (sync_<optab><mode>, sync_old_<optab><mode>,
2015         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2016         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2017         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2018         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2019         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2020         (test_and_set_12): New insn.
2021         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2022         sync_new_<optab><mode>, sync_old_nand<mode>,
2023         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2024         clobber to operand 0 for SI and DI mode insns.
2025         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2026         mips_gen_fn_4): New typedefs.
2027         (mips_gen_fn_ptrs): Define new union type.
2028         (mips_expand_compare_and_swap_12): Remove declaration.
2029         (mips_expand_atomic_qihi): Declare function.
2030         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2031         (mips_expand_atomic_qihi): ... this.  Use new generator function
2032         parameter.
2033         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2034         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2035         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2036         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2037         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2038         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2039         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2040         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2041         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2042         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2043         New macros.
2044
2045 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2046
2047         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2048         the missing break.
2049
2050 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2051
2052         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2053         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2054         (avr_attribute_table): Add 'OS_main' function attribute.
2055         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2056         functions with 'OS_main' attribute.
2057
2058 2008-05-20  Richard Guenther  <rguenther@suse.de>
2059
2060         PR tree-optimization/35204
2061         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2062         helper, split out from ...
2063         (DFS): ... here.  Make the DFS walk non-recursive.
2064
2065 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2066             Jan Sjodin  <jan.sjodin@amd.com>
2067
2068         PR tree-optimization/36181
2069         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2070         (parallelize_loops): Don't parallelize when the loop has vector
2071         phi nodes.
2072
2073 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2074             Sebastian Pop  <sebastian.pop@amd.com>
2075
2076         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2077         matrix, and never look at the tree representation of the memory
2078         accesses.
2079         (linear_transform_loops): Computes parameters and access matrices.
2080         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2081         when fails.
2082         (access_matrix_get_index_for_parameter): New.
2083         * tree-data-ref.h (struct access_matrix): New.
2084         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2085         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2086         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2087         am_vector_index_for_loop): New.
2088         (struct data_reference): Add field access_matrix.
2089         (DR_ACCESS_MATRIX): New.
2090         (compute_data_dependences_for_loop): Update declaration.
2091         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2092         * lambda.h (lambda_vector_vec_p): Declared.
2093         * lambda-code.c: Depend on pointer-set.h.
2094         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2095         av_for_af_base, av_for_af, build_access_matrix,
2096         lambda_compute_access_matrices): New.
2097         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2098
2099 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2100
2101         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2102         $SOURCEDIR/include.
2103
2104 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2105             Sebastian Pop  <sebastian.pop@amd.com>
2106
2107         PR tree-optimization/36206
2108         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2109         FOLD_CONVERSIONS.
2110         (instantiate_scev_1): Rename flags to fold_conversions.
2111         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2112         outeside instantiation_loop.
2113         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2114         (evolution_function_is_affine_or_constant_p): Removed.
2115         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2116         instantiate_scev.
2117         (analyze_siv_subscript): Pass in the loop nest number.
2118         Call evolution_function_is_affine_in_loop instead of 
2119         evolution_function_is_affine_p.
2120         (analyze_overlapping_iterations): Pass in the loop nest number.
2121
2122 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2123             Sebastian Pop  <sebastian.pop@amd.com>
2124
2125         PR tree-optimization/36206
2126         * tree-chrec.h (chrec_fold_op): New.
2127         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2128         and other trees.
2129
2130 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2131
2132         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2133         (DIRS_EQ): New.
2134         (remove_duplicates): Do not set inode on non-inode systems.
2135         Use DIRS_EQ.
2136
2137 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2138
2139         * config.gcc (tm_file): Update comments about relative pathnames.
2140
2141 2008-05-20  Richard Guenther  <rguenther@suse.de>
2142
2143         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2144         * tree-ssa-sccvn.c (process_scc): Likewise.
2145         * tree-ssa-sink.c (execute_sink_code): Likewise.
2146         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2147         * tree-vrp.c (process_assert_insertions): Likewise.
2148         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2149         (perform_tree_ssa_dce): Likewise.
2150         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2151         (dump_dominator_optimization_stats): Likewise.
2152         * tree-vectorizer.c (vectorize_loops): Likewise.
2153
2154 2008-05-20  Richard Guenther  <rguenther@suse.de>
2155
2156         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2157
2158 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2159
2160         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2161         (ix86_i386elf_return_in_memory): Likewise.
2162         (ix86_i386interix_return_in_memory): Likewise.
2163         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2164         (SUBTARGET_RETURN_IN_MEMORY): New.
2165         * config/i386/i386elf.h: Likewise.
2166         * config/i386/ptx4-i.h: Likewise.
2167         * config/i386/sol2-10.h: Likewise.
2168         * config/i386/sysv4.h: Likewise.
2169         * config/i386/vx-common.h: Likewise.
2170         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2171         * config/i386/i386.c (ix86_return_in_memory): Made static and
2172         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2173         (ix86_i386elf_return_in_memory): Removed.
2174         (ix86_i386interix_return_in_memory): Removed.
2175         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2176         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2177
2178 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2179
2180         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2181
2182 2008-05-19  Xinliang David Li  <davidxl@google.com>
2183
2184         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2185         * opts.c: Ditto.
2186         * common.opt: Ditto.
2187         * doc/invoke.texi: Ditto.
2188
2189 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2190
2191         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2192         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2193
2194 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2195
2196         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2197         sizes of operand array from 8/4 to 4/2.
2198         (ix86_expand_vector_init_general): Change size of operand array
2199         from 32 to 16.  Remove op0, op1 and half_mode.
2200
2201 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2202
2203         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2204         (ix86_expand_vector_init_interleave): Likewise.
2205         (ix86_expand_vector_init_general): Use them.  Assert
2206         word_mode == SImode when n_words == 4.
2207
2208 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2209
2210         * config/i386/i386.c (ix86_secondary_reload): New static function.
2211         (TARGET_SECONDARY_RELOAD): New define.
2212         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2213         * config/i386/i386.md (reload_outqi): Remove.
2214
2215 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2216
2217         PR middle-end/35509
2218         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2219         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2220         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2221         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2222         (fold_builtin_1): Likewise.
2223         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2224         c-common.c (check_builtin_function_arguments): Handle
2225         BUILT_IN_ISINF_SIGN.
2226         * doc/extend.texi: Document __builtin_isinf_sign.
2227         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2228
2229 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2230
2231         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2232         EH cleanup at the end of the pass, search for those that have been
2233         turned into forwarder blocks and do the cleanup on their successor.
2234
2235 2008-05-18  Richard Guenther  <rguenther@suse.de>
2236
2237         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2238         pointers to sizetype and vice versa.
2239
2240 2008-05-18 Xinliang David Li   <davidxl@google.com>
2241
2242         * gcc/tree-ssa-dce.c: Coding style fix.
2243         (check_pow): Documentation comment. 
2244         (check_log): Documenation comment. Coding style fix.
2245         (is_unnecessary_except_errno_call): Ditto.
2246         (gen_conditions_for_pow): Ditto.
2247         (gen_conditions_for_log): Ditto.
2248         (gen_shrink_wrap_conditions): Ditto.
2249         (shrink_wrap_one_built_in_calls): Ditto.
2250         * gcc/doc/invoke.texi: Better documentation string.
2251         * ChangeLog: Fix wrong change log entries from 
2252         May 17 checkin on function call DCE.
2253
2254 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2255
2256         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2257
2258 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2259
2260         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2261         * df-problems.c (simulation routines): Fixed block comment to
2262         properly say how to add forwards scanning functions.
2263         
2264 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2265
2266         * tree-inline.c (setup_one_parameter): Remove dead code.
2267
2268 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2269
2270         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2271         a BIT_AND_EXPR only for an INTEGER_TYPE.
2272
2273 2008-05-17 Xinliang David Li   <davidxl@google.com>
2274
2275         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2276         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2277         functions to check for eliminating math functions that are pure 
2278         except for setting errno.
2279         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2280         general condition expressions for shrink-wrapping pow/log calls.
2281         (gen_shrink_wrap_conditions): Ditto.
2282         (shrink_wrap_one_built_in_call): Ditto.
2283         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2284         (mark_operand_necessary): If debugging, output if OP is necessary.
2285         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2286         unnecessary.
2287         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2288         opt level >= 2.
2289         * gcc/common.opt: New user flag -ftree-builtin-dce.
2290         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2291
2292 2008-05-16  David S. Miller  <davem@davemloft.net>
2293
2294         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2295         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2296
2297 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2298
2299         PR target/36246
2300         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2301
2302 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2303
2304         * ifcvt.c (dead_or_predicable): Rename
2305         df_simulate_one_insn_backwards to df_simulate_one_insn.
2306         * recog.c (peephole2_optimize): Ditto.
2307         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2308         Ditto.
2309         * df.h: Rename df_simulate_one_insn_backwards to
2310         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2311         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2312         scanning of defs and uses.
2313         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2314         (df_simulate_one_insn_forwards): Removed.
2315
2316 2008-05-16  Doug Kwan  <dougkwan@google.com>
2317
2318         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2319         QNaN & SNaN.
2320         (real_from_string): Handle NaNs and Inf as approriate.
2321
2322 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2323
2324         * doc/gty.texi (Source Files Containing Type Information): Note
2325         that headers should appear first in the gtfiles list.
2326
2327 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2328
2329         * tree.def (COND_EXEC): Properly documented this code.
2330
2331 2008-05-16  Diego Novillo  <dnovillo@google.com>
2332
2333         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2334         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2335         the new field.
2336
2337 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2338
2339         * tree-ssa-dse (max_stmt_uid): Removed.
2340         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2341         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2342         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2343         * function.h (cfun.last_stmt_uid): New field.
2344         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2345         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2346         New functions.
2347         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2348         (create_stmt_ann): Initialize the ann->uid field.
2349         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2350         with new calls.
2351         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2352
2353 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2354
2355         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2356         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2357         (init_empty_tree_cfg): Call it.
2358
2359 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2360
2361         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2362         Update all users.
2363
2364 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2365
2366         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2367         * tree-dump.c (dump_options): New verbose option.
2368         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2369         Add verbose dump.
2370         * tree-pass.h (TDF_VERBOSE): New dump flag.
2371         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2372         (tree-flow.h): Added include.
2373         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2374
2375 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2376
2377         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2378
2379         From Jie Zhang  <jie.zhang@analog.com>
2380         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2381         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2382         mcpu=bf561-none and mcpu=bf561-0.2.
2383         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2384         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2385         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2386         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2387         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2388         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2389         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2390         option.
2391         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2392         (cputype_selected): Remove.
2393         (bfin_handle_option): Don't use cputype_selected.
2394         (override_options): When no mcpu option, enable all workarounds.
2395         Don't use bfin_workarounds.
2396         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2397         processor type.
2398         (DEFAULT_CPU_TYPE): Don't define.
2399
2400 2008-05-16  Richard Guenther  <rguenther@suse.de>
2401
2402         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2403         on deletion of the last stmt.
2404
2405 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2406
2407         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2408         V8HImode for SSE2 and V16QImode for SSE4.1.
2409
2410 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2411
2412         * cgraph.h (compute_inline_parameters): Made public.
2413         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2414         variable_generate_summary, function_write_summary,
2415         variable_write_summary, variable_read_summary.  Added generate_summary,
2416         write_summary, read_summary.
2417         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2418         pass_ipa_inline.function_generate_summary, to
2419         compute_inline_parameters. 
2420         * ipa-inline.c (compute_inline_parameters): Made public and added
2421         node parameter.
2422         (compute_inline_parameters_for_current): New function.
2423         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2424         (inline_generate_summary): Removed parameter and made to loop over
2425         all cgraph nodes.
2426         (pass_ipa_inline): Updated for new IPA_PASS structure.
2427         * passes.c (execute_ipa_summary_passes): Now is called once per
2428         pass rather than once per node*pass.
2429         
2430 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2431
2432         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2433         avr_have_mul_p, avr_asm_only_p): Remove variables.
2434         (avr_override_options): Remove initialization of removed variables.
2435         (avr_file_start):  Convert removed variables to fields of 
2436         'struct base_arch_s *avr_current_arch'. 
2437         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2438         (AVR_HAVE_MUL): (Ditto.).
2439         (AVR_HAVE_MOVW): (Ditto.).
2440         (AVR_HAVE_LPMX): (Ditto.). 
2441         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2442         avr_asm_only_p): Remove declaration.
2443
2444 2008-05-15  Diego Novillo  <dnovillo@google.com>
2445
2446         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2447         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2448
2449 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2450
2451         PR middle-end/36194
2452         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2453         Don't call record_truncated_value from here.
2454         (record_truncated_value): Turn it into a for_each_rtx callback.
2455         (record_truncated_values): New function.
2456         (combine_instructions): Call note_uses with record_truncated_values.
2457         Change name of check_conversion to check_promoted_subreg. 
2458
2459 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2460
2461         * doc/sourcebuild.texi: Document support for torture tests.
2462
2463 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2464
2465         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2466         to alternative 4 of operand 2.
2467
2468 2008-05-15  Richard Guenther  <rguenther@suse.de>
2469
2470         * tree-pass.h (current_pass): Declare.
2471         (get_pass_for_id): Likewise.
2472         * passes.c (passes_by_id, passes_by_id_size): New globals.
2473         (set_pass_for_id): New function.
2474         (get_pass_for_id): Likewise.
2475         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2476         (execute_function_todo): Flush per function statistics.
2477         * toplev.c (compile_file): Init statistics.
2478         (general_init): Do early statistics initialization.
2479         (finalize): Finish statistics.
2480         * statistics.h (statistics_early_init): Declare.
2481         (statistics_init): Likewise.
2482         (statistics_fini): Likewise.
2483         (statistics_fini_pass): Likewise.
2484         (statistics_counter_event): Likewise.
2485         (statistics_histogram_event): Likewise.
2486         * statistics.c: New file.
2487         * Makefile.in (OBJS-common): Add statistics.o.
2488         (statistics.o): Add dependencies.
2489         * doc/invoke.texi (-fdump-statistics): Document.
2490
2491         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2492         (insert): Likewise.
2493         (execute_pre): Use statistics_counter_event.
2494         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2495         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2496
2497 2008-05-15  Diego Novillo  <dnovillo@google.com>
2498
2499         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2500
2501         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2502         * tree-ssa-alias.c (new_type_alias): Remove references to
2503         sub-variables from comment.
2504         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2505
2506 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2507
2508         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2509         attribute to 1 only for insertps alternative.
2510
2511 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2512
2513         * config/bfin/bfin.md (loadbytes): New pattern.
2514         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2515         (bfin_init_builtins): Initialize it.
2516         (bdesc_1arg): Add it.
2517
2518 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2519
2520         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2521         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2522         * testsuite/lib/target-supports.exp: Add
2523         check_effective_target_fortran_integer_16.
2524
2525 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2526
2527         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2528         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2529         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2530         (TARGET_RETURN_IN_MEMORY): Define.
2531
2532 2008-05-15  Richard Guenther  <rguenther@suse.de>
2533
2534         PR middle-end/36244
2535         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2536         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2537         represent unmodifiable vars.
2538
2539 2008-05-15  Richard Guenther  <rguenther@suse.de>
2540
2541         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2542         INDIRECT_REF and TARGET_MEM_REF.
2543         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2544         TARGET_MEM_REF.
2545
2546 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2547             H.J. Lu  <hongjiu.lu@intel.com>
2548
2549         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2550         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2551         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2552         insn alternatives.  Add missing alternatives.
2553         (*vec_concatv2di_rex64_sse4_1): Likewise.
2554         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2555         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2556         Require TARGET_SSE.
2557
2558 2008-05-15  Richard Guenther  <rguenther@suse.de>
2559
2560         PR tree-optimization/36009
2561         PR tree-optimization/36204
2562         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2563         (determine_invariantness_stmt): Record the loop a store is
2564         always executed in.
2565         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2566         dependency.
2567
2568 2008-05-15  Richard Guenther  <rguenther@suse.de>
2569
2570         PR tree-optimization/34330
2571         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2572         through the pointer will alias the SMT.
2573
2574 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2575
2576         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2577
2578 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2579
2580         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2581
2582 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2583             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2584
2585         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2586         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2587         (vashl_optab): New optab for vector/vector shifts.
2588         (vashr_optab): Ditto.
2589         (vlshr_optab): Ditto.
2590         (vrotl_optab): Ditto.
2591         (vrotr_optab): Ditto.
2592         (optab_subtype): New enum for optab_for_tree_code call.
2593         (optab_for_tree_code): Add enum optab_subtype argument.
2594
2595         * optabs.c (optab_for_tree_code): Take an additional argument to
2596         distinguish between a vector shift by a scalar and vector shift by
2597         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2598         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2599         vector shift by a vector.
2600         (expand_widen_pattern_expr): Pass additional argument to
2601         optab_for_tree_code.
2602
2603         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2604         vrotl_optab, vrotr_optab.
2605
2606         * expr.c (expand_expr_real_1): Update calls to
2607         optab_for_tree_code to distinguish between vector shifted by a
2608         scalar and vector shifted by a vector.
2609         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2610         (supportable_narrowing_operation): Ditto.
2611         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2612         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2613         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2614         (vect_create_epilog_for_reduction): Ditto.
2615         (vectorizable_reduction): Ditto.
2616         (vectorizable_operation): Ditto.
2617         (vect_strided_store_supported): Ditto.
2618         (vect_strided_load_supported): Ditto.
2619         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2620         * expmed.c (expand_shift): Ditto.
2621
2622         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2623         scalar type.
2624         (ashr@var{m}3): Ditto.
2625         (vashl@var{m}3): Document new vector/vector shift standard name.
2626         (vashr@var{m}3): Ditto.
2627         (vlshr@var{m}3): Ditto.
2628         (vrotl@var{m}3): Ditto.
2629         (vrotr@var{m}3): Ditto.
2630
2631         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2632         (PPERM_INVERT): Ditto.
2633         (PPERM_REVERSE): Ditto.
2634         (PPERM_REV_INV): Ditto.
2635         (PPERM_ZERO): Ditto.
2636         (PPERM_ONES): Ditto.
2637         (PPERM_SIGN): Ditto.
2638         (PPERM_INV_SIGN): Ditto.
2639         (PPERM_SRC1): Ditto.
2640         (PPERM_SRC2): Ditto.
2641
2642         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2643         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2644         allows a memory operand to be the value being added, and split it
2645         to improve vectorization.
2646         (sse5_pmacsdqh_mem): Ditto.
2647         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2648         (sse5_mulv2div2di3_high): Ditto.
2649         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2650         (vec_pack_trunc_v4si): Ditto.
2651         (vec_pack_trunc_v2di): Ditto.
2652         (sse5_pcmov_<mode>): Remove code that tried to use use
2653         andps/andnps instead of pcmov.
2654         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2655         pmacsdqh instructions.
2656         (vec_widen_smult_lo_v4si): Ditto.
2657
2658         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2659         (PPERM_INVERT): Ditto.
2660         (PPERM_REVERSE): Ditto.
2661         (PPERM_REV_INV): Ditto.
2662         (PPERM_ZERO): Ditto.
2663         (PPERM_ONES): Ditto.
2664         (PPERM_SIGN): Ditto.
2665         (PPERM_INV_SIGN): Ditto.
2666         (PPERM_SRC1): Ditto.
2667         (PPERM_SRC2): Ditto.
2668         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2669         true/false tests.
2670         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2671         comparisons.
2672         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2673         says ignore whether the last reference is a memory operand.
2674
2675 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2676             Paolo Bonzini <bonzini at gnu dot org>
2677
2678         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2679         shift patterns.
2680
2681         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2682         (vlshr<mode>3): Rename from vlshr<mode>3.
2683         (vashr<mode>3): Rename from vashr<mode>3.
2684         (mulv4sf3): Change the names of vector shift patterns.
2685         (mulv4si3): Ditto.
2686         (negv4sf2): Ditt.
2687
2688         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2689         shift insns.
2690
2691         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2692         (SI_SHLHI): Ditto.
2693         (SI_SHL): Ditto.
2694         (SI_SHLI): Ditto.
2695         (SI_ROTH): Ditto.
2696         (SI_ROTHI): Ditto.
2697         (SI_ROT): Ditto.
2698         (SI_ROTI): Ditto.
2699         (SPU_RL_0): Ditto.
2700         (SPU_RL_1): Ditto.
2701         (SPU_RL_2): Ditto.
2702         (SPU_RL_3): Ditto.
2703         (SPU_RL_4): Ditto.
2704         (SPU_RL_5): Ditto.
2705         (SPU_RL_6): Ditto.
2706         (SPU_RL_7): Ditto.
2707         (SPU_SL_0): Ditto.
2708         (SPU_SL_1): Ditto.
2709         (SPU_SL_2): Ditto.
2710         (SPU_SL_3): Ditto.
2711         (SPU_SL_4): Ditto.
2712         (SPU_SL_5): Ditto.
2713         (SPU_SL_6): Ditto.
2714         (SPU_SL_7): Ditto.
2715
2716         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2717         (floatunssidf2_internal): Change vector/vector shift names.
2718         (floatunsdidf2_internal): Ditto.
2719         (mulv8hi3): Ditto.
2720         (ashrdi3): Ditto.
2721         (ashrti3): Ditto.
2722         (cgt_df): Ditto.
2723         (cgt_v2df): Ditto.
2724         (dftsv): Ditto.
2725         (vashl<mode>3): Rename from ashl<mode>3.
2726         (vashr<mode>3): Rename from ashr<mode>3.
2727         (vlshr<mode>3): Rename from lshr<mode>3.
2728         (vrotl<mode>3): Rename from rotl<mode>3.
2729
2730 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2731
2732         PR target/36224
2733         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2734         multiply gives the wrong value when doing widening multiplies.
2735         (vec_widen_smult_lo_v4si): Ditto.
2736
2737 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2738
2739         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2740         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2741         emit_library_call_value. 
2742         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2743         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2744         * calls.c (initialize_argument_information, precompute_arguments, 
2745         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2746         (precompute_arguments): Removed flags parameter.
2747         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2748         
2749 2008-05-14  Richard Guenther  <rguenther@suse.de>
2750
2751         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2752         Make sure to register the store if the use is a PHI_NODE.
2753
2754 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2755
2756         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2757         memory if the component is to be referenced in BLKmode according
2758         to get_inner_reference.
2759
2760 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2761
2762         * calls.c (emit_library_call_value_1): Restore code clearing
2763         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2764
2765 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2766             Nicolas Roche  <roche@adacore.com>
2767
2768         * configure.ac: Add support for a "gcc_subdir" variable in
2769         config-lang.in, to denote a subdirectory where the language/GCC
2770         integration files are to be found.
2771         * configure: Regenerate.
2772
2773 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2774
2775         PR tree-optimization/36098
2776         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2777         value for the first load in the group in case of a gap.
2778         (vect_build_slp_tree): Check that there are no gaps in loads.
2779
2780 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2781
2782         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2783         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2784         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2785         emit_insn and remove unneeded code to construct extra args.
2786         (emit_no_conflict_block): Removed.
2787         * optabls.h: (emit_no_conflict_block): Removed.
2788         * cse.c (cse_extended_basic_block): Remove search for
2789         REG_NO_CONFLICT note.
2790         * global.c: Removed incorrect comment added in revision 117.
2791         * expr.c (convert_move): Change call to emit_no_conflict_block to
2792         emit_insn.
2793         * recog.c: Change comments so that they do not mention
2794         REG_NO_CONFLICT.
2795         * local_alloc.c (combine_regs): Removed last parameter.
2796         (no_conflict_p): Removed.
2797         (block_alloc): Removed note, no_conflict_combined_regno and set
2798         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2799         (combine_regs): Removed already_dead and code to look for
2800         REG_NO_CONFLICT notes.
2801         * lower_subreg (remove_retval_note): Removed code to look for
2802         REG_NO_CONFLICT block.
2803         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2804         (resolve_clobber): Remove code to process libcalls that have
2805         REG_NO_CONFLICT notes.
2806         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2807         case.
2808         * combine.c (can_combine_p, distribute_notes):  Removed
2809         REG_NO_CONFLICT case.
2810         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2811         to emit_insns.
2812         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2813         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2814         Ditto.
2815         * reg-notes.def (NO_CONFLICT): Removed.
2816
2817 2008-05-14  David S. Miller  <davem@davemloft.net>
2818
2819         * config/sparc/sparc.c (sparc_profile_hook): If
2820         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2821         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2822         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2823
2824 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2825
2826         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2827
2828 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2829
2830         PR target/36222
2831         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2832         and op1 expansion before vector concat to have less live pseudos.
2833
2834 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2835
2836         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2837         ix86_expand_vector_set if supported.
2838
2839 2008-05-13  Diego Novillo  <dnovillo@google.com>
2840             Kenneth Zadeck  <zadeck@naturalbridge.com>
2841
2842         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2843
2844         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2845         phinodes_print_statistics, init_ssanames, fini_ssanames,
2846         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2847         release_ssa_name, release_defs, replace_ssa_name_symbol,
2848         ssanames_print_statistics): Move ...
2849         * tree-flow.h: ... here.
2850         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2851         Use FN instead of cfun.
2852         (make_ssa_name_fn): Rename from make_ssa_name.
2853         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2854         * tree-flow-inline.h (make_ssa_name): Move from
2855         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2856         * omp-low.c (expand_omp_parallel):
2857         * tree-flow-inline.h (redirect_edge_var_map_result):
2858         * tree-ssa.c (init_tree_ssa): Add argument FN.
2859         Use it instead of cfun.  Update all users.
2860
2861 2008-05-13  Tom Tromey  <tromey@redhat.com>
2862
2863         PR preprocessor/22168:
2864         * doc/cpp.texi (Top): Update menu.
2865         (Alternatives to Wrapper #ifndef): New node.
2866         (Other Directives): Document deprecation.
2867         (Obsolete Features): Remove menu.
2868         (Assertions): Merge node into Obsolete Features.
2869         (Obsolete once-only headers): Move earlier; rename to Alternatives
2870         to Wrapper #ifndef.
2871         * doc/cppopts.texi: Update.
2872         * c.opt (Wdeprecated): Enable for C and ObjC.
2873         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2874         (C++ Dialect Options): Move -Wno-deprecated from here to...
2875         (Warning Options): ... here.
2876
2877 2008-05-13  Richard Guenther  <rguenther@suse.de>
2878
2879         PR middle-end/36227
2880         * fold-const.c (fold_sign_changed_comparison): Do not allow
2881         changes in pointer-ness.
2882
2883 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2884
2885         PR target/24713
2886         * config/sh/sh.c (sh_expand_prologue): Don't clear
2887         RTX_FRAME_RELATED_P for push insns.
2888
2889 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2890
2891         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2892
2893 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2894
2895         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2896         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2897         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2898
2899 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2900
2901         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2902         (*vec_concatv4sf_sse): This.
2903         (*sse2_concatv2si): Renamed to ...
2904         (*vec_concatv2si_sse2): This.
2905         (*sse1_concatv2si): Renamed to ...
2906         (*vec_concatv2si_sse): This.
2907         (*vec_concatv2di_rex): Renamed to ...
2908         (*vec_concatv2di_rex64): This.
2909         (*vec_concatv2si_sse4_1): New.
2910         (*vec_concatv2di_rex64_sse4_1): Likewise.
2911
2912 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2913
2914         PR rtl-optimization/36111
2915         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2916         that was created for swappable operands.
2917
2918 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2919
2920         PR ada/36001
2921         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2922         * configure.ac: Add call to ACX_PROG_GNAT.
2923
2924 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2925
2926         * optc-gen.awk: Fix comment typo.
2927
2928 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2929
2930         * pretty-print.c (pp_integer_with_precision): Use
2931         HOST_LONG_LONG_FORMAT.
2932
2933 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2934
2935         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2936                 
2937 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2938
2939         * config/i386/i386.c (bdesc_ptest): Removed.
2940         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2941         (bdesc_args): Add __builtin_ia32_ptestz128,
2942         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2943         (ix86_init_mmx_sse_builtins): Updated.
2944         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2945         (ix86_expand_builtin): Updated.
2946
2947 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2948
2949         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2950         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2951
2952 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2953
2954         * value-prof.c (interesting_stringop_to_profile): Do not
2955         return early for BUILT_IN_MEMPCPY.
2956
2957 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2958
2959         * calls.c (expand_call): Don't use callgraph to increase
2960         preferred_stack_boundary.
2961
2962         * cgraph.h (cgraph_rtl_info): Use unsigned on
2963         preferred_incoming_stack_boundary.
2964
2965         * final.c (rest_of_clean_state): Use unsigned on
2966         preferred_stack_boundary.
2967
2968 2008-05-09  Tom Tromey  <tromey@redhat.com>
2969
2970         PR preprocessor/22231:
2971         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2972         proceeding.
2973
2974 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2975
2976         PR tree-optimization/36129
2977         * tree-ssa-ccp.c: Include value-prof.h.
2978         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2979         built-in function was folded to a constant.
2980         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2981
2982 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2983             Sebastian Pop  <sebastian.pop@amd.com>
2984
2985         * tree-scalar-evolution.c: Document instantiate_scev.
2986         (instantiate_parameters_1): Renamed instantiate_scev_1.
2987         Don't use the same loop for instantiation_loop and evolution_loop.
2988         (instantiate_scev): New.
2989         (instantiate_parameters): Moved...
2990         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2991         same loop twice.  Maintains the semantics for this function.
2992         * tree-scalar-evolution.h (instantiate_scev): Declare.
2993         (instantiate_parameters): ...here.  Now static inline.
2994         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2995         instead of resolve_mixers.
2996
2997 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2998
2999         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3000
3001 2008-05-09  Tomas Bily  <tbily@suse.cz>
3002
3003         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3004         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3005         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3006         * c-common.c (c_common_truthvalue_conversion): Likewise.
3007         * tree-object-size.c (compute_object_offset): Likewise.
3008         * tree-inline.c (estimate_num_insns_1): Likewise.
3009         * varasm.c (const_hash_1, compare_constant, copy_constant)
3010         (compute_reloc_for_constant, output_addressed_constants)
3011         (initializer_constant_valid_p): Likewise.
3012         * c-omp.c (check_omp_for_incr_expr): Likewise.
3013         * gimplify.c (gimplify_expr): Likewise.
3014         * c-typeck.c (c_finish_return): Likewise.
3015         * tree-vectorizer.c (supportable_widening_operation)
3016         (supportable_narrowing_operation): Likewise.
3017         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3018         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3019         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3020         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3021         (descr_info_loc): Likewise.
3022         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3023         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3024         (fold_unary): Likewise.
3025         * builtins.c (get_pointer_alignment): Likewise.
3026         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3027         (instantiate_parameters_1): Likewise.
3028         * tree.c (expr_align, stabilize_reference): Likewise.
3029         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3030         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3031         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3032         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3033         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3034         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3035         Likewise.
3036         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3037         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3038         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3039         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3040         (forward_propagate_comparison)
3041         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3042         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3043         * emit-rtl.c (component_ref_for_mem_expr)
3044         (set_mem_attributes_minus_bitpos): Likewise.
3045         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3046         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3047         Likewise.
3048         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3049         (build_function_call, pointer_diff, build_compound_expr)
3050         (c_finish_return): Likewise.
3051         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
3052         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3053         Likewise.
3054         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3055         * expr.c (is_aligning_offset): Likewise.
3056         * tree-ssa-alias.c (is_escape_site): Likewise.
3057         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3058         (check_all_va_list_escapes): Likewise.
3059         * tree-ssa-loop-ivopts.c (determine_base_object)
3060         (determine_common_wider_type): Likewise.
3061         * dojump.c (do_jump): Likewise.
3062         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3063         * tree-gimple.c (is_gimple_cast): Likewise.
3064         * fold-const.c (decode_field_reference, )
3065         (fold_sign_changed_comparison, fold_unary, fold_comparison)
3066         (fold_binary): Likewise.
3067         * tree-ssa-alias-warnings.c (find_alias_site_helper)
3068         (already_warned_in_frontend_p): Likewise.
3069         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3070         * tree.c (really_constant_p, get_unwidened): Likewise.
3071         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3072         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
3073         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3074         Likewise.
3075         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3076         CONVERT_EXPR_P.
3077         (CONVERT_EXPR_P): Define.
3078         (CASE_CONVERT): Define.
3079         
3080 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3081
3082         PR middle-end/36117
3083         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3084         (delete_unmarked_insns): When deleting a call, call
3085         delete_unreachable_blocks.
3086         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3087         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3088
3089 2008-05-08  Richard Guenther  <rguenther@suse.de>
3090
3091         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3092         (-ftree-salias): Likewise.
3093         (salias-max-implicit-fields): Remove param documentation.
3094         (salias-max-array-elements): Likewise.
3095         * tree-pass.h (pass_create_structure_vars): Remove.
3096         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3097         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3098         * tree-ssa-alias.c (create_structure_vars): Remove.
3099         (gate_structure_vars): Likewise.
3100         (pass_create_structure_vars): Likewise.
3101         (gate_build_alias): Likewise.
3102         (pass_build_alias): Adjust to run always and dump the function.
3103         * common.opt (ftree-salias): Hide.
3104         * passes.c (init_optimization_passes): Remove
3105         pass_create_structure_vars, adjust comment.
3106         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3107         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3108         * opts.c (decode_options): Do not set flag_tree_salias.
3109         (common_handle_option): Add OPT_ftree_salias to the backward
3110         compatibility section.
3111
3112 2008-05-08  Richard Guenther  <rguenther@suse.de>
3113
3114         * tree-flow-inline.h (var_can_have_subvars): Move ...
3115         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3116         * tree-flow.h (var_can_have_subvars): Remove.
3117         (push_fields_onto_fieldstack): Remove.
3118         (sort_fieldstack): Likewise.
3119         (struct fieldoff): Move ...
3120         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
3121         alias_set and base_for_components fields.
3122         (sort_fieldstack): Make static.
3123         (push_fields_onto_fieldstack): Likewise.  Remove code that
3124         handles anything but RECORD_TYPEs.  Remove alias_set and
3125         base_for_components handling.
3126         (create_variable_info_for): Adjust.
3127
3128 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
3129
3130         * common.opt (Wframe-larger-than=): Shorten the help message
3131         to one line.
3132         * doc/invoke.texi (Wframe-larger-than=): Add more description.
3133
3134 2008-05-08  Rafael Espindola  <espindola@google.com>
3135
3136         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3137         trap.
3138         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3139         trap and that both operands are gimple values.
3140         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3141         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3142         is a fp operation.
3143
3144 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3145
3146         * read-rtl.c (join_c_conditions): Return the first string if the
3147         two strings are equal.
3148
3149 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3150
3151         * gensupport.h (pred_data): Add a "num_codes" field.
3152         (add_predicate_code): Declare.
3153         * gensupport.c (add_predicate_code): New function.
3154         (std_pred_table): Add an "allows_const_p" field.
3155         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3156         Remove the (incomplete) list of such codes from the codes field.
3157         (init_predicate_table): Use add_predicate_code.  Add all
3158         RTX_CONST_OBJs if allows_const_p is true.
3159         * genrecog.c (process_define_predicate): Use add_predicate_code.
3160
3161 2008-05-08  David Daney  <ddaney@avtrex.com>
3162             Richard Sandiford  <rsandifo@nildram.co.uk>
3163         
3164         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3165         special case of constant zero operands.
3166         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3167         old and new values.  Special case constant zero values.
3168         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3169         fails.
3170         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3171         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3172
3173 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
3174
3175         PR target/36090
3176         * simplify-rtx.c (simplify_plus_minus): Create CONST of
3177         similar RTX_CONST_OBJ before CONST_INT.
3178
3179 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
3180
3181         * stmt.c (expand_stack_restore): Change sa mode if needed.
3182
3183 2008-05-08  Richard Guenther  <rguenther@suse.de>
3184
3185         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3186         return type to bool.
3187         (ix86_sol10_return_in_memory): Likewise.
3188         (ix86_i386elf_return_in_memory): Likewise.
3189         (ix86_i386interix_return_in_memory): Likewise.
3190         * config/i386/i386.c (ix86_return_in_memory): Likewise.
3191         (ix86_sol10_return_in_memory): Likewise.
3192         (ix86_i386elf_return_in_memory): Likewise.
3193         (ix86_i386interix_return_in_memory): Likewise.
3194
3195 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3196
3197         PR bootstrap/36180
3198         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3199         fndecl argument.
3200         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3201         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3202         declared in front.
3203
3204 2008-05-08  Richard Guenther  <rguenther@suse.de>
3205
3206         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3207         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3208         (DR_SUBVARS): Remove.
3209         * tree-dfa.c (dump_subvars_for): Remove.
3210         (debug_subvars_for): Likewise.
3211         (dump_variable): Do not dump subvars.
3212         (remove_referenced_var): Do not remove subvars.
3213         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3214         (lookup_subvars_for_var): Remove.
3215         (get_subvars_for_var): Likewise.
3216         (get_subvars_at): Likewise.
3217         (get_first_overlapping_subvar): Likewise.
3218         (overlap_subvar): Likewise.
3219         * tree-flow.h (subvar_t): Remove.
3220         (struct var_ann_d): Remove subvars field.
3221         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3222         argument.  Remove special handling of SFTs.
3223         (compute_tag_properties): Likewise.
3224         (set_initial_properties): Likewise.
3225         (compute_call_clobbered): Likewise.
3226         (count_mem_refs): Likewise.
3227         (compute_memory_partitions): Likewise.
3228         (compute_flow_insensitive_aliasing): Likewise.
3229         (setup_pointers_and_addressables): Likewise.
3230         (new_type_alias): Likewise.
3231         (struct used_part): Remove.
3232         (used_portions): Likewise.
3233         (struct used_part_map): Likewise.
3234         (used_part_map_eq): Likewise.
3235         (used_part_map_hash): Likewise.
3236         (free_used_part_map): Likewise.
3237         (up_lookup): Likewise.
3238         (up_insert): Likewise.
3239         (get_or_create_used_part_for): Likewise.
3240         (create_sft): Likewise.
3241         (create_overlap_variables_for): Likewise.
3242         (find_used_portions): Likewise.
3243         (create_structure_vars): Likewise.
3244         * tree.def (STRUCT_FIELD_TAG): Remove.
3245         * tree.h (MTAG_P): Adjust.
3246         (struct tree_memory_tag): Remove base_for_components and
3247         unpartitionable flags.
3248         (struct tree_struct_field_tag): Remove.
3249         (SFT_PARENT_VAR): Likewise.
3250         (SFT_OFFSET): Likewise.
3251         (SFT_SIZE): Likewise.
3252         (SFT_NONADDRESSABLE_P): Likewise.
3253         (SFT_ALIAS_SET): Likewise.
3254         (SFT_UNPARTITIONABLE_P): Likewise.
3255         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3256         (union tree_node): Remove sft field.
3257         * alias.c (get_alias_set): Remove special handling of SFTs.
3258         * print-tree.c (print_node): Remove handling of SFTs.
3259         * tree-dump.c (dequeue_and_dump): Likewise.
3260         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3261         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3262         * tree-predcom.c (set_alias_info): Do not set subvars.
3263         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3264         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3265         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3266         (add_vars_for_offset): Remove.
3267         (add_virtual_operand): Remove special handling of SFTs.
3268         (add_call_clobber_ops): Likewise.
3269         (add_call_read_ops): Likewise.
3270         (get_asm_expr_operands): Likewise.
3271         (get_modify_stmt_operands): Likewise.
3272         (get_expr_operands): Likewise.
3273         (add_to_addressable_set): Likewise.
3274         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3275         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3276         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3277         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3278         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3279         (tree_node_structure): Likewise.
3280         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3281         handling of SFTs.
3282         (find_what_p_points_to): Likewise.
3283
3284 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3285
3286         * config/spu/spu.md: Fixed subti3 pattern.
3287
3288 2008-05-08  Richard Guenther  <rguenther@suse.de>
3289
3290         PR middle-end/36154
3291         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3292         sure to create a representative for trailing arrays for PTA.
3293
3294 2008-05-08  Richard Guenther  <rguenther@suse.de>
3295
3296         PR middle-end/36172
3297         * fold-const.c (operand_equal_p): Two objects which types
3298         differ in pointerness are not equal.
3299
3300 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3301
3302         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3303         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3304         (emit_library_call_value_1): Add new variable fndecl initialized by
3305         NULL_TREE. It should be the decl type of orgfun, but this information
3306         seems not to be available here, so it uses the default calling abi.
3307         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3308         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3309         by TARGET_RETURN_IN_MEMORY.
3310         * config/i386/i386-interix.h: Likewise.
3311         * config/i386/i386.h: Likewise.
3312         * config/i386/i386elf.h: Likewise.
3313         * config/i386/ptx4-i.h: Likewise.
3314         * config/i386/sol2-10.h: Likewise.
3315         * config/i386/sysv4.h: Likewise.
3316         * config/i386/vx-common.h: Likewise.
3317         * config/cris/cris.h: Removed #if 0 clause.
3318         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3319         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3320         argument.
3321         (ix86_sol10_return_in_memory): Likewise.
3322         (ix86_i386elf_return_in_memory): New.
3323         (ix86_i386interix_return_in_memory): New.
3324         * config/mt/mt-protos.h (mt_return_in_memory): New.
3325         * config/mt/mt.c: Likewise.
3326         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3327         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3328         * config/bfin/bfin.h: Likewise.
3329         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3330         argument.
3331         * config/bfin/bfin.c: Likewise.
3332         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3333         * config/alpha/unicosmk.h: Likewise.
3334         * config/i386/cygming.h: Likewise.
3335         * config/iq2000/iq2000.h: Likewise.
3336         * config/mips/mips.h: Likewise.
3337         * config/mn10300/mn10300.h: Likewise.
3338         * config/rs6000/rs6000.h: Likewise.
3339         * config/score/score.h: Likewise.
3340         * config/spu/spu.h: Likewise.
3341         * config/v850/v850.h: Likewise.
3342         * defaults.h: Likewise.
3343         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3344         * expr.c (emit_block_move): Adjust use of
3345         OUTGOING_REG_PARM_STACK_SPACE.
3346         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3347         OUTGOING_REG_PARM_STACK_SPACE.
3348         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3349
3350 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3351
3352         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3353         on OMP_RETURN for OMP_FOR.
3354
3355         PR debug/35896
3356         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3357         (fortran_common): New function.
3358         (gen_variable_die): Call fortran_common instead of common_check,
3359         adjust for it returning tree instead of rtx.  Formatting.
3360
3361 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3362
3363         PR rtl/7335
3364         PR rtl/33826
3365         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3366         * c-decl.c (merge_decls): Ditto.
3367         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3368         to RTL_CONST_OR_PURE_CALL_P.
3369         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3370         Initialized DECL_LOOPING_CONST_PURE.
3371         (process_call_operands): Set tree_side_effects properly.
3372         * tree.h (TREE_READONLY_DECL_P): Removed.
3373         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3374         (DECL_LOOPING_OR_CONST_P): New macro.
3375         (struct tree_function_decl): Added looping_const_or_pure_p.
3376         (ECF_*) Renumbered.
3377         (ECF_LOOPING_OR_CONST_P): New macro.
3378         * rtlanal.c (pure_const_p): Removed.
3379         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3380         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3381         to RTL_CONST_CALL_P.
3382         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3383         (check_decl, check_tree, check_call, scan_function): Initialize
3384         looping.
3385         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3386         (static_execute): Set looping true for recursive functions.
3387         Undo setting state to IPA_NEITHER for recursive functions.
3388         * cse.c (cse_insn): 
3389         * ifcvt.c (noce_can_store_speculate_p): Changed
3390         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3391         RTL_CONST_OR_PURE_CALL_P.
3392         * dse.c (scan_insn): Ditto.
3393         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3394         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3395         RTL_CONST_OR_PURE_CALL_P.
3396         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3397         pure_call_p to RTL_CONST_CALL_P.
3398         * gimplify.c (gimplify_call_expr): Clear side effects for
3399         non-looping pure and constant calls.
3400         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3401         (flags_from_decl_or_type): Set ecf flags from decl flags.
3402         (initialize_argument_information): Turn off
3403         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3404         Change const to pure if callee_copies is true rather than just
3405         turning off const.
3406         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3407         way of marking pure calls.
3408         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3409         Remove hack that was supposed to fix pr7335 and remove old
3410         way of marking pure calls.
3411         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3412         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3413         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3414         RTL_CONST_OR_PURE_CALL_P.
3415         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3416         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3417         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3418         * sched-deps.c (schedule_analyze): Ditto.
3419         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3420         return_val field of calls to represent pure and const function info.
3421         (CONST_OR_PURE_CALL_P): Deleted macro.
3422         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3423         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3424         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3425         TREE_READONLY.
3426         * tree-optimize.c (execute_fixup_cfg): Added test for
3427         ECF_LOOPING_CONST_OR_PURE.
3428         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3429         DECL_PURE_P.
3430         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3431         effects for looping pure or const calls.
3432         (verify_gimple_expr): Added verification code. 
3433         * config/alpha/alpha.c (alpha_legitimize_address,
3434         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3435         RTL_CONST_CALL_P.
3436         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3437         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3438         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3439         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3440         RTL_CONST_OR_PURE_CALL_P.
3441         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3442         and const calls to be deleted.
3443
3444 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3445
3446         PR target/35714
3447         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3448         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3449         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3450         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3451         to handle nonimmediate operands.
3452         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3453         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3454         to handle nonimmediate operands.
3455         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3456         (mmx_pmulhrwv4hi3): New expander.  Use
3457         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3458         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3459         (sse2_umulv1siv1di3): New expander.  Use
3460         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3461         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3462         (mmx_eq<mode>3): New expander.  Use
3463         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3464         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3465         (mmx_uavgv8qi3): New expander.  Use
3466         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3467         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3468         (mmx_uavgv4hi3): New expander.  Use
3469         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3470
3471         * config/i386/sse.md
3472         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3473         to handle nonimmediate operands.
3474         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3475         to handle nonimmediate operands.
3476         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3477         to handle nonimmediate operands.
3478         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3479         to handle nonimmediate operands.
3480         (sse2_unpckhpd_exp): New expander.  Use
3481         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3482         (sse2_unpcklpd_exp): New expander.  Use
3483         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3484         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3485         to handle nonimmediate operands.
3486         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3487         to handle nonimmediate operands.
3488         (*sse2_<plusminus_insn><mode>3): Rename from
3489         sse2_<plusminus_insn><mode>3 insn pattern.
3490         (sse2_<plusminus_insn><mode>3): New expander.  Use
3491         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3492         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3493         (sse2_umulv2siv2di3): New expander.  Use
3494         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3495         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3496         (sse4_1_mulv2siv2di3): New expander.  Use
3497         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3498         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3499         (sse2_pmaddwd): New expander.  Use
3500         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3501         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3502         (sse2_eq<mode>3): New expander.  Use
3503         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3504         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3505         (sse4_1_eqv2di3): New expander.  Use
3506         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3507         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3508         (sse2_uavgv16qi3): New expander.  Use
3509         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3510         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3511         (sse2_uavgv16qi3): New expander.  Use
3512         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3513         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3514         (sse2_uavgv8hi3): New expander.  Use
3515         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3516         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3517         (ssse3_pmulhrswv8hi3): New expander.  Use
3518         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3519         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3520         (ssse3_pmulhrswv4hi3): New expander.  Use
3521         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3522
3523         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3524         (<sse>_vmmul<mode>3): Ditto.
3525         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3526         (divv2df3): Ditto.
3527         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3528         (ssse3_pmaddubsw): Ditto.
3529
3530         * config/i386/i386.c (struct_builtin_description)
3531         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3532         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3533         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3534         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3535         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3536         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3537         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3538         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3539         (ix86_fixup_binary_operands): Assert that src1
3540         and src2 must have the same mode when swapped.
3541         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3542         and ix86_binary_operator_ok.  Do not force operands in registers
3543         when optimizing.
3544
3545 2008-05-07  Jan Hubicka  <jh@suse.cz>
3546
3547         * cgraph.c (dump_cgraph_node): Update.
3548         * cgraph.h (cgraph_local_info): Break out inline summary.
3549         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3550         hook.
3551         * ipa-inline (inline_summary): New accestor function.
3552         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3553         cgraph_decide_inlining, compute_inline_parameters): Update.
3554         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3555
3556 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3557
3558         Cleanup ColdFire scheduling support and add V4 pipeline model.
3559
3560         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3561         (define_attr cpu): Add cfv4 value.
3562         (define_attr type, define_attr type1): Merge into a single 'type'
3563         attribute.  Update all uses.
3564         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3565         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3566         Update all uses.
3567         (define_attr opx_mem, define_attr opy_mem): Remove.
3568         (define_attr op_mem): Clean up, update comment.
3569         (define_attr size): Use specific values instead of general int.
3570         (define_attr guess, define_attr split): Remove.  Update all uses.
3571         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3572         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3573         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3574         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3575         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3576         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3577         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3578         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3579         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3580         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3581         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3582         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3583         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3584         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3585         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3586         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3587         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3588         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3589         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3590         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3591         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3592         Update or set attributes.
3593         (stack_tie): New fake instruction.
3594
3595         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3596         (m68k_sched_attr_size): Update declaration.
3597         (m68k_sched_attr_type2): Remove.
3598         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3599         Declare new bypass predicates.
3600
3601         * config/m68k/m68k.c (m68k_sched_issue_rate,
3602         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3603         implementations.
3604         (TARGET_SCHED_ISSUE_RATE,
3605         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3606         (override_options): Handle scheduling for ColdFire V4 core.
3607         (m68k_expand_prologue): Emit stack_tie.
3608         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3609         'OP_TYPE_FPN'.  Update all uses.
3610         (sched_guess_p): Remove.
3611         (sched_address_type): Handle symbolic addresses.
3612         (sched_get_operand): New static function.
3613         (sched_operand_type): Merge into sched_attr_op_type.
3614         (sched_attr_op_type): Handle FP registers, handle quick constants,
3615         update.
3616         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3617         (m68k_sched_attr_size): Update.  Move logic to ...
3618         (sched_get_attr_size_int): New static function.
3619         (sched_get_opxy_mem_type): New static function.
3620         (m68k_sched_attr_op_mem): Update.
3621         (m68k_sched_attr_type2): Remove.
3622         (sched_cfv4_bypass_data): New static variable.
3623         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3624         (m68k_sched_issue_rate): Implement scheduler hook.
3625         (struct _sched_ib: enabled_p): New field.
3626         (m68k_sched_variable_issue): Update.  Handle V4.
3627         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3628         sched_dump_class_func_t, sched_dump_split_class,
3629         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3630         sched_dump_dfa_class, m68k_sched_dump): Remove.
3631         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3632         hook.
3633         (m68k_sched_init_global): Remove statisctics dumping, introduce
3634         sanity check that all instructions have pipeline reservations.  Handle
3635         ColdFire V4 core.
3636         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3637         Handle ColdFire V4 core.
3638         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3639         New static functions.
3640         (m68k_sched_address_bypass_p): New bypass predicate.
3641         (sched_get_indexed_address_scale): New static function.
3642         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3643
3644         * cf.md: Update comments.
3645         (define_attr type2): Remove.  Use 'type' attribute instead.
3646         Update all uses.
3647         (cf_ib): Rename to cfv123_ib.  Update all uses.
3648         (cf_oep): Rename to cfv123_oep.  Update all uses.
3649         (cf_chr): Rename to cfv123_chr.  Update all uses.
3650         (cf_mem): Rename to cfv123_mem.  Update all uses.
3651         (cf_mac): Move to more appropriate place.
3652         (cfv123_guess): New automaton and cpu_unit.
3653         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3654         Update uses of 'size' attribute.  Handle before reload scheduling.
3655         (cfv123_guess): New dummy reservation for unhandled instructions.
3656         (cfv4_*): Pipeline description of ColdFire V4 core.
3657         (ignore): New reservation to handle 'ignore' type.
3658
3659 2008-05-07  Ian Lance Taylor  <iant@google.com>
3660
3661         PR middle-end/36013
3662         * gimplify.c (find_single_pointer_decl_1): Don't look through
3663         indirections.
3664         (find_single_pointer_decl): Adjust comments.
3665
3666 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3667
3668         PR middle-end/36137
3669         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3670         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3671
3672         PR middle-end/36106
3673         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3674         integral type rather than floating point, then VIEW_CONVERT_EXPR
3675         to the floating point type.
3676
3677 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3678
3679         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3680         TFmode op0 to register.
3681
3682 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3683
3684         * c-decl.c (grokdeclarator): Comment typo.
3685
3686 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3687
3688         * tree-flow.h: Remove prototype for computed_goto_p.
3689         * tree-cfg.c (computed_goto_p): Make static.
3690
3691 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3692
3693         PR target/35657
3694         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3695         (contains_aligned_value_p): This.  Handle _Decimal128.
3696         (ix86_function_arg_boundary): Only align _Decimal128 to its
3697         natural boundary and handle it properly.
3698
3699 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3700
3701         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3702         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3703         (ipcp_method_set_orig_node): Removed.
3704         (ipcp_cval_get_cvalue_type): Removed.
3705         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3706         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3707         (ipcp_cval_set_cvalue_type): Removed.
3708         (ipcp_cval_get_cvalue): Removed.
3709         (ipcp_cval_set_cvalue): Removed.
3710         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3711         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3712         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3713         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3714         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3715         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3716         (ipcp_get_ith_lattice): Changed parameters.
3717         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3718         (ipcp_lattice_from_jfunc): Changed parameters.
3719         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3720         (ipcp_method_cval_print): Added temporary variable info.
3721         (ipcp_redirect): Removed already unused local variable caller.
3722         (ipcp_redirect): New temporary variable orig_callee_info
3723         (ipcp_redirect): Removed newly unused local variable callee.
3724         (ipcp_redirect): Removed (a bit confusing) local variable type.
3725         (ipcp_insert_stage): Added local variable info.
3726         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3727         renamed too
3728         (ipcp_formal_create): Removed.
3729         (ipcp_method_cval_set): Removed.
3730         (ipcp_propagate_stage): Renamed lattice variables.
3731         (ipcp_method_cval_set_cvalue_type): Removed.
3732         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3733         (ipcp_print_all_lattices): Changed printed strings to refer to 
3734         lattices rather than cvals.
3735         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3736         (ipcp_propagate_const): Changed formal parameters.
3737         (build_const_val): Changed formal parameters.
3738         (ipcp_insert_stage): Removed useless variable cvalue
3739         (build_const_val): Changed formal parameters.
3740         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3741         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3742         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3743         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3744         (ipcp_print_func_profile_counts): Changed string from "method" to 
3745         "function"
3746         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3747         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3748         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3749         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3750         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3751         (ipcp_lat_is_const): Changed parameters and made inline.
3752         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3753         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3754         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3755         the predicate condition directly
3756         (ipcp_propagate_stage): Added local variable args. Removed local
3757         variable callee.  (Both are mere code simplifications.)
3758         (ipcp_method_dont_insert_const): Renamed to
3759         ipcp_node_not_modifiable_p.
3760         (ipcp_node_not_modifiable_p): Made inline.
3761         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3762         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3763         (ipcp_print_all_lattices): Removed variable cvalue
3764         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3765         Updated comments.
3766
3767 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3768
3769         * tree-sra.c (try_instantiate_multiple_fields): Early return
3770         if field has POINTER_TYPE.
3771
3772 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3773
3774         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3775         by using 'q' specifier for instruction.
3776         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3777
3778 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3779
3780         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3781         Change mode of zero_extract from QImode to HImode.
3782         (sign bit tests peepholes): (Ditto.).
3783
3784 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3785
3786         * config/i386/mmx.md: Remove double backslashes from asm templates.
3787         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3788         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3789         to handle nonimmediate operands.
3790         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3791         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3792         to handle nonimmediate operands.
3793         (*mmx_<code>v2sf3_finite): New insn pattern.
3794         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3795         (mmx_<code>v2sf3): New expander.  Use
3796         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3797         (mmx_<plusminus_insn><mode>3): New expander.  Use
3798         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3799         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3800         (mmx_add<mode>3): Removed.
3801         (mmx_ssadd<mode>3): Ditto.
3802         (mmx_usadd<mode>3): Ditto.
3803         (mmx_sub<mode>3): Ditto.
3804         (mmx_sssub<mode>3): Ditto.
3805         (mmx_ussub<mode>3): Ditto.
3806         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3807         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3808         to handle nonimmediate operands.
3809         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3810         insn pattern.
3811         (mmx_smulv4hi3_highpart): New expander.  Use
3812         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3813         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3814         insn pattern.
3815         (mmx_umulv4hi3_highpart): New expander.  Use
3816         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3817         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3818         (mmx_<code>v4hi3): New expander.  Use
3819         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3820         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3821         (mmx_<code>v8qi3): New expander.  Use
3822         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3823         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3824         (mmx_<code><mode>3): New expander.  Use
3825         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3826
3827 2008-05-05  Jan Hubicka  <jh@suse.cz>
3828
3829         PR tree-optimization/36118
3830         * passes.c (pass_init_dump_file): Fix dump header.
3831
3832 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3833
3834         PR middle-end/36141
3835         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3836         VCE for function decls.
3837
3838 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3839
3840         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3841
3842 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3843
3844         * config/i386/i386.md (sat_plusminus): New.
3845         (plusminus_insn): Likewise.
3846         (plusminus_mnemonic): Likewise.
3847         (addsub): Removed.
3848         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3849         (*<addsub><mode>3_cc_overflow): Renamed to ...
3850         (*<plusminus_insn><mode>3_cc_overflow): This.
3851         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3852         (*<plusminus_insn>si3_zext_cc_overflow): This.
3853
3854         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3855         (<plusminus_insn><mode>3): This.
3856         (*<addsub><mode>3): Renamed to ...
3857         (*<plusminus_insn><mode>3): This.
3858         (<sse>_vm<addsub><mode>3): Renamed to ...
3859         (<sse>_vm<plusminus_insn><mode>3): This.
3860         (sse3_h<addsub>v4sf3): Renamed to ...
3861         (sse3_h<plusminus_insn>v4sf3): This.
3862         (sse3_h<addsub>v2df3): Renamed to ...
3863         (sse3_h<plusminus_insn>v2df3): This.
3864         (<plusminus_insn><mode>3): New.
3865         (*<plusminus_insn><mode>3): Likewise.
3866         (sse2_<plusminus_insn><mode>3): Likewise.
3867         (add<mode>): Removed.
3868         (*add<mode>3): Likewise.
3869         (sse2_ssadd<mode>3): Likewise.
3870         (sse2_usadd<mode>3): Likewise.
3871         (sub<mode>3): Likewise.
3872         (*sub<mode>3): Likewise.
3873         (sse2_sssub<mode>3): Likewise.
3874         (sse2_ussub<mode>3): Likewise.
3875
3876 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3877
3878         * gthr-single.h: Add in required interface elements as per gthr.h.
3879         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3880         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3881         Generalize UNUSED macro. 
3882         (__gthread_once): Add.
3883         (__gthread_key_create): Add.
3884         (__gthread_key_delete): Add.
3885         (__gthread_getspecific): Add.
3886         (__gthread_setspecific): Add.
3887         
3888 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3889
3890         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3891         the same size types for the indirect reference on the rhs, then
3892         create a VCE.
3893
3894 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3895
3896         * config/i386/i386.md
3897         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3898         one insn template instead of template series.
3899         (*xordi_1_rex64): Ditto.
3900         (*xordi_2_rex64): Ditto.
3901
3902 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3903
3904         PR tree-optimization/36119
3905         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3906         in case of SLP.
3907
3908 2008-06-04  Jan Hubicka  <jh@suse.cz>
3909
3910         tree-optimization/36100
3911         * tree-pass.h (pass_O0_always_inline): Declare.
3912         * ipa-inline.c (inline_transform): Remove dead code.
3913         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3914         pass_O0_always_inline): New.
3915         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3916
3917 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3918
3919         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3920         mnemonic in this_param move for TARGET_64BIT.
3921
3922 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3923
3924         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3925         (*strmovsi_rex_1): Ditto.
3926         (*strsetsi_1): Ditto.
3927         (*strsetsi_rex_1): Ditto.
3928
3929         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3930         adddicc expanders using SWI mode iterator.
3931
3932 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3933
3934         PR target/36121
3935         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3936         argument handling.
3937
3938 2008-05-04  David S. Miller  <davem@davemloft.net>
3939
3940         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3941         (sparc*-*-linux*): Use linux.h in tm_file.
3942         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3943         compiler defaulting to 32-bit.
3944         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3945         no longer needed.
3946         * config/sparc/linux.h: Remove definitions now obtained
3947         properly from linux.h
3948         * config/sparc/linux64.h: Likewise.
3949         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3950         don't want this setting for 32-bit builds in a biarch compiler.
3951         * doc/install.texi: Add sparc-linux to list of targets
3952         supporting --enable-targets=all.
3953
3954 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3955
3956         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3957
3958 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3959
3960         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3961         after V4SI_FTYPE_V8HI.
3962         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3963         case V4SI_FTYPE_V2DF.
3964
3965 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3966
3967         * doc/invoke.texi (max-flow-memory-locations): Removed.
3968         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3969         
3970 2008-05-03  Richard Guenther  <rguenther@suse.de>
3971
3972         PR middle-end/34973
3973         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3974
3975 2008-05-02  David S. Miller  <davem@davemloft.net>
3976
3977         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3978
3979 2008-05-02  Simon Baldwin <simonb@google.com>
3980
3981         PR bootstrap/36108
3982         * c-common.h (warn_array_subscript_range): Removed.
3983         * c-common.c (warn_array_subscript_range): Ditto.
3984         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3985         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3986
3987 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3988
3989         * config/i386/i386.c (ix86_special_builtin_type): New.
3990         (bdesc_special_args): Likewise.
3991         (ix86_expand_special_args_builtin): Likewise.
3992         (ix86_init_mmx_sse_builtins): Updated.
3993         (ix86_expand_builtin): Updated.
3994         (ix86_expand_store_builtin): Removed.
3995         (ix86_expand_unop_builtin): Likewise.
3996
3997         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3998         * config/i386/mmintrin.h (__v2sf): Here.
3999
4000         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
4001         const __v2sf.
4002         (_mm_loadl_pi): Likewise.
4003         (_mm_storeh_pi): Replace __v2si with __v2sf.
4004         (_mm_storel_pi): Likewise.
4005
4006         * doc/extend.texi: Correct __builtin_ia32_loadhps,
4007         __builtin_ia32_loadlps, __builtin_ia32_storehps,
4008         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
4009         __builtin_ia32_loadlpd.
4010
4011 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4012
4013         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
4014         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
4015         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
4016         (ix86_init_mmx_sse_builtins): Updated.
4017         (ix86_expand_args_builtin): Likewise.
4018         (ix86_expand_builtin): Likewise.
4019         (ix86_expand_unop1_builtin): Renamed to ...
4020         (ix86_expand_unop_vec_merge_builtin): This.
4021
4022 2008-05-01  Jan Hubicka  <jh@suse.cz>
4023
4024         PR bootstrap/36100
4025         * ipa-inline.c (inline_generate_summary): Make static.
4026         (inline_transform): Do not call inlining at -O0; make static.
4027         * passes.c (execute_todo): Add sanity check.
4028         (execute_one_ipa_transform_pass): Execute proper flags.
4029
4030 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4031
4032         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
4033         (DECL_NONADDRESSABLE_P): Likewise.
4034         * alias.c (record_component_aliases): Fix comment.
4035
4036 2008-05-01  Simon Baldwin <simonb@google.com>
4037
4038         * c-common.h (warn_array_subscript_range): New function.
4039         * c-common.c (warn_array_subscript_range): Ditto.
4040         * tree-vrp.c (check_array_ref): Corrected code to agree with
4041         comment, ignoring only arrays of size 0 or size 1.
4042         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
4043
4044 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4045
4046         * config/i386/i386.c (ix86_builtin_type): Replace
4047         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
4048         (bdesc_args): Updated.
4049         (ix86_init_mmx_sse_builtins): Likewise.
4050         (ix86_expand_args_builtin): Likewise.
4051
4052         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
4053         with __v1di.
4054
4055         * doc/extend.texi: Correct __builtin_ia32_palignr.
4056
4057 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4058
4059         PR target/36095
4060         * config/i386/i386.c (bdesc_crc32): Removed.
4061         (ix86_expand_crc32): Likewise.
4062         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
4063         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
4064         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
4065         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
4066         UINT_FTYPE_UINT_UCHAR.
4067         (bdesc_args): Updated. Add crc32 builtins.
4068         (ix86_init_mmx_sse_builtins): Updated.
4069         (ix86_expand_args_builtin): Updated to support subreg.
4070
4071         * doc/extend.texi: Correct __builtin_ia32_crc32di.
4072
4073 2008-05-01  Jan Hubicka  <jh@suse.cz>
4074
4075         * tree-pass.h (opt_pass): Add IPA_PASS.
4076         (varpool_node, cgraph_node): Forward declare.
4077         (ipa_opt_pass): Define.
4078         (pass_ipa_inline): Turn into ipa_opt_pass.
4079         (pass_apply_inline): Remove.
4080         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
4081         (apply_inline): Turn into ....
4082         (inline_transform): ... this one.
4083         (inline_generate_summary): New function.
4084         (pass_apply_inline): Remove.
4085         * function.h (ipa_opt_pass): Forward declare structure; typedef;
4086         vector.
4087         (struct function): Add ipa_transforms_to_apply.
4088         * passes.c (register_one_dump_file): Work on IPA_PASS.
4089         (init_optimization_passes): Remove pass_inline_parameters and
4090         pass_apply_inline.
4091         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
4092         (execute_one_pass) ... here; apply transforms when possible.
4093         (add_ipa_transform_pass, execute_ipa_summary_asses,
4094         execute_one_ipa_transform_pass): New.
4095         (execute_ipa_pass_list): Update for IPA_PASS type.
4096
4097 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4098
4099         * config/i386/i386.c (ix86_builtin_type): Add
4100         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
4101         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
4102         (bdesc_args): Add SSE4a builtins.
4103         (ix86_init_mmx_sse_builtins): Updated.
4104         (ix86_expand_args_builtin): Likewise.
4105         (ix86_expand_builtin): Likewise.
4106
4107 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4108
4109         * config/i386/i386.c (ix86_builtin_type): Add
4110         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
4111         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
4112         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
4113         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
4114         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
4115         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
4116         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
4117         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
4118         and DI_FTYPE_DI_DI_INT.
4119         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
4120         (ix86_init_mmx_sse_builtins): Updated.
4121         (ix86_expand_args_builtin): Likewise.
4122         (ix86_expand_builtin): Likewise.
4123         (ix86_expand_binop_imm_builtin): Removed.
4124
4125         * doc/extend.texi: Correct __builtin_ia32_palignr128.
4126
4127 2008-04-30  Richard Guenther  <rguenther@suse.de>
4128
4129         PR tree-optimization/32921
4130         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
4131
4132 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
4133
4134         * config/arm/arm.c (arm_unwind_emit): Use
4135         crtl->all_throwers_are_sibcalls instead of
4136         cfun->all_throwers_are_sibcalls.
4137         (arm_output_fn_unwind): Likewise.
4138         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
4139         instead of cfun->uses_pic_offset_table.
4140         (frv_expand_prologue): Likewise.
4141         (frv_frame_pointer_required): Likewise.
4142         (frv_expand_fdpic_call): Likewise.
4143         (frv_emit_movsi): Likewise.
4144         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
4145         cfun->returns_pcc_struct instead of
4146         current_function_returns_pcc_struct.
4147         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
4148         instead of cfun->calls_eh_return.
4149         (m32c_pushm_popm): Likewise.
4150         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
4151         "extern" declaration.
4152
4153 2008-04-30  Richard Guenther  <rguenther@suse.de>
4154
4155         PR tree-optimization/21636
4156         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
4157         constant address.
4158         (evaluate_stmt): Print the likely value.
4159         (ccp_visit_stmt): Avoid excessive vertical spacing.
4160
4161 2008-04-30  Rafael Espindola  <espindola@google.com>
4162
4163         * builtins.c (fold_call_expr): Return realret.
4164         * tree-ssa-threadedge.c
4165         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
4166         __builtin_object_size.
4167
4168 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
4169
4170         * gcc.c (wrapper_string): New variable.
4171         (insert_wrapper): New function.
4172         (execute): New option -wrapper.
4173         * doc/invoke.texi (Overall Options): New driver option -wrapper.
4174
4175 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
4176
4177         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
4178         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
4179         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
4180         from...
4181         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
4182         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
4183         config/rs6000/e500crtres64gprctr.asm,
4184         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
4185         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
4186         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
4187         config/rs6000/e500crtsav64gprctr.asm,
4188         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
4189         config/rs6000/e500crtsavg64gprctr.asm: New files.
4190         * config/rs6000/t-ppccomm: Add build rules for new files.
4191         (LIB2FUNCS_STATIC_EXTRA): Add new files.
4192         * config/rs6000/t-netbsd: Add build rules for new files.
4193         (LIB2FUNCS_STATIC_EXTRA): New variable.
4194         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
4195         (CRTSAVRES_DEFAULT_SPEC): Likewise.
4196         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
4197
4198 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
4199
4200         * config/i386/i386.c (ix86_builtin_type): Add
4201         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
4202         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
4203         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
4204         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
4205         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
4206         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4207         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4208         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4209         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4210         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4211         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4212         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4213         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4214         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4215         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4216         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4217         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4218         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4219         V1DI_FTYPE_V2SI_V2SI.
4220         (bdesc_2arg): Moved to ...
4221         (bdesc_args): Here.
4222         (ix86_init_mmx_sse_builtins): Updated.
4223         (ix86_expand_args_builtin): Updated.  Take a pointer
4224         to const struct builtin_description.  Handle comparison
4225         builtin functions.
4226         (ix86_expand_sse_compare): Take a new argument for swapping operands.
4227         (ix86_expand_builtin): Updated.
4228
4229         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4230         (ssse3_pmaddubsw128): This.
4231         (ssse3_pmaddubswv4hi3): Renamed to ...
4232         (ssse3_pmaddubsw): This.
4233
4234         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
4235         (__builtin_ia32_packssdw128): Likewise.
4236         (__builtin_ia32_packuswb128): Likewise.
4237         (__builtin_ia32_pmaddubsw): Likewise.
4238         (__builtin_ia32_pmaddubsw128): Likewise.
4239
4240 2008-04-30  Richard Guenther  <rguenther@suse.de>
4241
4242         PR tree-optimization/14847
4243         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4244         (recognize_bits_test): Use it.
4245         (recognize_single_bit_test): Likewise.
4246
4247 2008-04-30  Martin Jambor  <mjambor@suse.cz>
4248
4249         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4250         instead of setting number of formal parameters to zero.
4251         (ipcp_init_stage): Do not set the number of actual parameters to zero 
4252         either.
4253         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4254         which are called with variable number of arguments.
4255         (ipcp_insert_stage): Explicitely skipping all nodes which are
4256         called with variable number of arguments.
4257         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4258         number of parameters.
4259
4260         * ipa-prop.h (struct ipa_node_params): Added flag
4261         called_with_var_arguments
4262         (ipa_set_param_count): Added.  Changed sole setter to use it.
4263         (ipa_get_param_count): Added.  All readers of param_count
4264         converted to use it instead.
4265         (ipa_set_called_with_variable_arg): Added.
4266         (ipa_is_called_with_var_arguments): Added.
4267         (ipa_get_ith_param): Added.  All readers of param_decls converted
4268         to use it instead.
4269         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4270         changed to use it. 
4271         (ipa_get_cs_argument_count): Added, all readers of argument_count
4272         changed to cal it.
4273         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4274         to use it.
4275         
4276         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4277         (struct ipcp_lattice): Renamed cval_type to type
4278         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4279
4280         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4281         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4282         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4283         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4284         (build_const_val): Changed the type of parameter cvalue to tree
4285         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4286         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4287         
4288         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4289         constant 
4290
4291         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4292         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4293         (ipa_add_method): Renamed to ipa_push_func_to_list
4294         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4295         (ipa_callsite_param_count): Removed.
4296         (ipa_callsite_param_count_set): Removed.
4297         (ipa_callsite_param): Removed.
4298         (ipa_callsite_callee): Removed.
4299         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4300         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4301         (ipa_method_formal_count): Removed.
4302         (ipa_method_formal_count_set): Removed.
4303         (ipa_method_get_tree): Removed.
4304         (ipa_method_tree_map_create): Removed.
4305         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4306         (ipa_create_param_decls_array): Creates the array itself
4307         (ipa_create_param_decls_array): Temporary variable info instead of 
4308         a few dereferences.
4309         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4310         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4311         (get_type): Removed.
4312         (ipa_jf_get_info_type): Removed.
4313         (ipa_node_create): Renamed to ipa_create_node_params
4314         (ipa_free): Renamed to ipa_free_all_node_params
4315         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4316         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4317         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4318         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4319         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4320         ipa_free_all_edge_args
4321         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4322         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4323         (ipa_create_methodlist_node): Removed.
4324         (ipa_methodlist_method): Removed.
4325         (ipa_methodlist_method_set): Removed.
4326         (ipa_methodlist_next_method): Removed.
4327         (ipa_methodlist_next_method_set): Removed.
4328         (ipa_method_is_modified): Removed.
4329         (ipa_method_modify_create): Removed.
4330         (ipa_method_modify_init): Temporary variable info instead of a few 
4331         dereferences.
4332         (ipa_detect_param_modifications): Temporary variable info instead of 
4333         a few dereferences.
4334         (ipa_compute_jump_functions): Temporary variable info instead of 
4335         a few dereferences.
4336         (ipa_method_modify_set): Removed.
4337         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4338         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4339         than craph_node as the first parameter.
4340         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4341         (ipa_method_modify_init): Removed.
4342         (ipa_compute_jump_functions): Added a temp variable instead of 
4343         repeatadly dereferencing the cgraph_edge.aux pointer
4344         (ipa_callsite_param_set_type): Removed.
4345         (ipa_compute_jump_functions): i renamed to index and moved to 
4346         an inner block
4347         (ipa_callsite_param_set_info_type_formal): Removed.
4348         (ipa_callsite_param_set_info_type): Removed.
4349         (ipa_callsite_param_map_create): Removed.
4350         (ipa_callsite_tree): Removed.
4351         (ipa_callsite_caller): Removed.
4352         (ipa_pop_func_from_list): return_method removed to return_func
4353
4354         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4355         prefixed all values with IPA_. Changed all users.
4356         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4357         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4358         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4359         (union parameter_info): Renamed to jump_func_value.
4360         (union jump_func_value): Renamed value to constant
4361         (struct ipa_jump_func): Renamed info_type to value
4362         (struct ipa_node): Renamed to ipa_node_params
4363         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4364         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4365         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4366         (struct ipa_edge): Renamed to ipa_edge_args
4367         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4368         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4369         (struct ipa_methodlist): Renamed to ipa_func_list
4370         (struct ipa_func_list): method_p renamed to node, next_method
4371         renamed to next
4372         (ipa_methodlist_p): Removed, switched all users to struct pointer
4373         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4374
4375 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4376
4377         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4378         (rs6000_emit_epilogue): Use backchain to restore only when we
4379         have a large frame.  Make use of frame pointer to restore if we
4380         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4381
4382 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4383
4384         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4385         Add mode to zero_extract.
4386         (sign bit tests peepholes): (Ditto.).
4387
4388 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4389
4390         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4391         Instructions in comments with SSE3.
4392         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4393         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4394         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4395         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4396         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4397         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4398         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4399         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4400         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4401         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4402         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4403         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4404         (bdesc_sse_args): Renamed to ...
4405         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4406         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4407         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4408         IX86_BUILTIN_FABSQ.
4409         (bdesc_1arg): Moved to ...
4410         (bdesc_args): Here.
4411         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4412         Instructions in comments with SSE3.
4413         (ix86_expand_sse_operands_builtin): Renamed to ...
4414         (ix86_expand_args_builtin): This.  Updated.
4415         (ix86_expand_unop1_builtin): Update comments.
4416         (ix86_expand_builtin): Updated.
4417
4418 2008-04-29  Richard Guenther  <rguenther@suse.de>
4419
4420         PR tree-optimization/36078
4421         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4422         Update virtual SSA form after cleaning up the CFG.
4423
4424 2008-04-29  Richard Guenther  <rguenther@suse.de>
4425
4426         PR middle-end/15255
4427         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4428
4429 2008-04-29  Richard Guenther  <rguenther@suse.de>
4430
4431         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4432         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4433         (compute_flow_insensitive_aliasing): Do not treat
4434         PTR_IS_REF_ALL pointers special.
4435         (get_smt_for): Likewise.
4436         (may_alias_p): Re-structure.
4437         (is_escape_site): A ref-all pointer conversion is not an escape site.
4438         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4439         PTR_IS_REF_ALL pointers special.
4440         * tree-ssa-structalias.h (struct alias_info): Remove
4441         ref_all_symbol_mem_tag field.
4442         (PTR_IS_REF_ALL): Remove.
4443
4444 2008-04-29  Richard Guenther  <rguenther@suse.de>
4445
4446         PR middle-end/36077
4447         * fold-const.c (extract_muldiv_1): In combining division constants
4448         make sure to never overflow.
4449
4450 2008-04-29  Nick Clifton  <nickc@redhat.com>
4451
4452         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4453
4454 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4455
4456         PR bootstrap/35169
4457         * optc-gen.awk: Work around HP-UX/IA awk bug.
4458
4459 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4460
4461         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4462         2008-04-25 commit.
4463
4464 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4465
4466         PR target/36073
4467         * config/i386/i386.md
4468         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4469         Change operand 1 predicate to nonimmediate_operand.
4470
4471 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4472
4473         PR debug/36060
4474         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4475         die_sub field.
4476         * gengtype.c (walk_type, write_func_for_structure): Handle
4477         chain_circular.
4478         * doc/gty.texi: Document chain_circular.
4479
4480 2008-04-28  Richard Guenther  <rguenther@suse.de>
4481
4482         PR tree-optimization/36066
4483         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4484         SCEV and loop.
4485
4486 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4487
4488         PR target/36064
4489         * config/i386/i386.md
4490         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4491         Use match_scratch instead of match_operand for operands 3 and 4.
4492
4493 2008-04-27  Richard Guenther  <rguenther@suse.de>
4494
4495         PR tree-optimization/18754
4496         PR tree-optimization/34223
4497         * tree-pass.h (pass_complete_unrolli): Declare.
4498         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4499         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4500         Rewrite loop into loop closed SSA form if it is not already.
4501         (tree_unroll_loops_completely): Re-structure to iterate over
4502         innermost loops with intermediate CFG cleanups.
4503         Unroll outermost loops only if requested or the code does not grow
4504         doing so.
4505         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4506         loops are available.
4507         (tree_vectorize): Instead do so here.
4508         (tree_complete_unroll): Also unroll outermost loops.
4509         (tree_complete_unroll_inner): New function.
4510         (gate_tree_complete_unroll_inner): Likewise.
4511         (pass_complete_unrolli): New pass.
4512         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4513         uses outside of the loop.
4514         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4515         form if it is available.  
4516         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4517         * passes.c (init_optimization_passes): Schedule complete inner
4518         loop unrolling pass before the first CCP pass after final inlining.
4519
4520 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4521
4522         * targhooks.h (default_emutls_var_fields,
4523         default_emutls_var_init): Declare.
4524         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4525         * target.h (struct gcc_target): Add struct emutls member.
4526         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4527         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4528         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4529         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4530         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4531         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4532         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4533         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4534         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4535         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4536         emit debug information.
4537         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4538         * varasm.c: Include targhooks.h.
4539         (emutls_object_section, emutls_tmpl_section): New.
4540         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4541         (EMUTLS_SEPARATOR): New.
4542         (prefix_name): New.
4543         (get_emutls_object_name): New.
4544         (default_emutls_var_fields): New, broken out of ...
4545         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4546         (get_emutls_init_templ_addr): Adjust to use target hooks.
4547         (emutls_decl): Adjust to use target hooks.
4548         (emutls_finish): Likewise.
4549         (default_emutls_var_init): New, broken out of ...
4550         (assemble_variable): ... here.  Adjust to use target hooks.
4551         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4552         SECCAT_EMUTLS_TMPL.
4553         * c-common.c (handle_section_attribute): Prevent overriding
4554         sections for emulated tls with special sections.
4555         * config/i386/i386.c (x86_64_elf_select_section): Add
4556         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4557         (x86_64_elf_unique_section): Likewise.
4558         * config/vxworks.c: Include tree.h.
4559         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4560         (vxworks_override_options): Set TLS scheme.
4561         * doc/tm.texi (Emulated TLS): New node.
4562
4563 2008-04-26  Simon Baldwin <simonb@google.com>
4564
4565         PR c/35652
4566         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4567         with propagated string constants.
4568
4569 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4570
4571         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4572         constraint for operand 2 when operand 0 is memory operand.
4573         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4574         operand 0 is memory operand.
4575         (fix_trunc<mode>_i387_with_temp): Ditto.
4576         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4577         operand 2 when operand 1 is memory operand.
4578         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4579         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4580         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4581         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4582         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4583         operands 2,3 and 4 when operand 1 is memory operand.
4584         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4585         is memory operand.
4586         (fistdi2_floor_with_temp): Ditto.
4587         (fist<mode>2_floor_with_temp): Ditto.
4588         (fistdi2_ceil_with_temp): Ditto.
4589         (fist<mode>2_ceil_with_temp): Ditto.
4590         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4591
4592 2008-04-26  David Daney  <ddaney@avtrex.com>
4593
4594         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4595         unspec_volitile.
4596         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4597         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4598         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4599         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4600         (compare_and_swap_12): New insn.
4601         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4602         * config/mips/mips.c (mips_force_binary): New function.
4603         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4604         (mips_expand_compare_and_swap_12): New function.
4605         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4606
4607 2008-04-25  Jan Hubicka  <jh@suse.cz>
4608
4609         PR testsuite/35843
4610         * cfgexpand.c (pass_expand): Turn into RTL pass.
4611         * passes.c (execute_one_pass): Do pass typechecking after execution.
4612         * tree-pass.h (pass_expand): Turn into RTL pass.
4613
4614         * function.h (struct rtl_data): Move here fields
4615         accesses_prior_frames, calls_eh_return, saves_all_registers,
4616         has_nonlocal_goto, has_asm_statement, is_thunk,
4617         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4618         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4619         arg_pointer_save_area_init from struct function; turn into bool.
4620         (struct function): Move
4621         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4622         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4623         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4624         tail_call_emit, arg_pointer_save_area_init
4625         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4626         (current_function_returns_struct, current_function_returns_pcc_struct,
4627         current_function_calls_setjmp, current_function_calls_alloca,
4628         current_function_accesses_prior_frames,
4629         current_function_calls_eh_return, current_function_is_thunk,
4630         current_function_stdarg, current_function_profile,
4631         current_function_limit_stack, current_function_uses_pic_offset_table,
4632         current_function_uses_const_pool, current_function_has_nonlocal_label,
4633         current_function_saves_all_registers,
4634         current_function_has_nonlocal_goto,
4635         current_function_has_asm_statement): Remove accesor macros.
4636         * ra-conflict.c (global_conflicts): Update.
4637         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4638         (suitable_for_tail_call_opt_p): Update.
4639         * builtins.c (expand_builtin_return_addr): Update.
4640         (expand_builtin_setjmp_setup): Update.
4641         (expand_builtin_nonlocal_goto): Update.
4642         * final.c (final_start_function): Update.
4643         (profile_function): Update.
4644         (leaf_function_p): Update.
4645         (only_leaf_regs_used): Update.
4646         * df-scan.c (df_get_exit_block_use_set): Update.
4647         * dojump.c (clear_pending_stack_adjust): Update.
4648         * tree-stdarg.c (gate_optimize_stdarg): Update.
4649         * gimple-low.c (lower_function_body): Update.
4650         * global.c (compute_regsets): Update.
4651         (global_alloc): Update.
4652         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4653         * expr.c (expand_assignment): Update.
4654         * dse.c (dse_step0): Update.
4655         (dse_step1): Update.
4656         * c-decl.c (store_parm_decls): Update.
4657         * local-alloc.c (combine_regs): Update.
4658         (find_free_reg): Update.
4659         * function.c (assign_parms_augmented_arg_list): Update.
4660         (assign_parm_find_data_types): Update.
4661         (assign_parms): Update.
4662         (allocate_struct_function): Update.
4663         (expand_function_start): Update.
4664         (expand_function_end): Update.
4665         (get_arg_pointer_save_area): Update.
4666         (thread_prologue_and_epilogue_insns): Update.
4667         (rest_of_match_asm_constraints): Update.
4668         * stor-layout.c (variable_size): Update.
4669         * gcse.c (gcse_main): Update.
4670         (bypass_jumps): Update.
4671         * gimplify.c (gimplify_function_tree): Update.
4672         * calls.c (emit_call_1): Update.
4673         (expand_call): Update.
4674         * bt-load.c (compute_defs_uses_and_gen): Update.
4675         * except.c (sjlj_assign_call_site_values): Update.
4676         (sjlj_emit_function_enter): Update.
4677         (can_throw_external): Update.
4678         (set_nothrow_function_flags): Update.
4679         (expand_builtin_unwind_init): Update.
4680         (expand_eh_return): Update.
4681         (convert_to_eh_region_ranges): Update.
4682         (output_function_exception_table): Update.
4683         * emit-rtl.c (gen_tmp_stack_mem): Update.
4684         * cfgexpand.c (expand_used_vars): Update.
4685         (tree_expand_cfg): Update.
4686         * cfgcleanup.c (rest_of_handle_jump): Update.
4687         * explow.c (allocate_dynamic_stack_space): Update.
4688         * varasm.c (assemble_start_function): Update.
4689         (force_const_mem): Update.
4690         (mark_constant_pool): Update.
4691         * tree-optimize.c (tree_rest_of_compilation): Update.
4692         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4693         * tree-cfg.c (notice_special_calls): Update.
4694         (is_ctrl_altering_stmt): Update.
4695         (tree_can_make_abnormal_goto): Update.
4696         (tree_purge_dead_abnormal_call_edges): Update.
4697         * config/alpha/predicates.md: Update.
4698         * config/alpha/alpha.c (alpha_sa_mask): Update.
4699         (alpha_sa_size): Update.
4700         (alpha_does_function_need_gp): Update.
4701         (alpha_expand_prologue): Update.
4702         (alpha_start_function): Update.
4703         (alpha_output_function_end_prologue): Update.
4704         (alpha_expand_epilogue): Update.
4705         * config/frv/frv.c (frv_stack_info): Update.
4706         (frv_expand_epilogue): Update.
4707         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4708         (s390_register_info): Update.
4709         (s390_frame_info): Update.
4710         (s390_init_frame_layout): Update.
4711         (s390_can_eliminate): Update.
4712         (save_gprs): Update.
4713         * config/spu/spu.c (spu_split_immediate): Update.
4714         (need_to_save_reg): Update.
4715         (spu_expand_prologue): Update.
4716         (spu_expand_epilogue): Update.
4717         * config/sparc/sparc.md: Update.
4718         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4719         (sparc_tls_got): Update.
4720         (legitimize_pic_address): Update.
4721         (sparc_emit_call_insn): Update.
4722         (sparc_expand_prologue): Update.
4723         (output_return): Update.
4724         (print_operand): Update.
4725         (sparc_function_ok_for_sibcall): Update.
4726         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4727         * config/m32r/m32r.md: Update.
4728         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4729         (m32r_compute_frame_size): Update.
4730         (m32r_expand_prologue): Update.
4731         (m32r_expand_epilogue): Update.
4732         (m32r_legitimize_pic_address): Update.
4733         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4734         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4735         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4736         (gen_push): Update.
4737         (ix86_save_reg): Update.
4738         (ix86_compute_frame_layout): Update.
4739         (ix86_expand_prologue): Update.
4740         (ix86_expand_epilogue): Update.
4741         * config/sh/sh.c (output_stack_adjust): Update.
4742         (calc_live_regs): Update.
4743         (sh5_schedule_saves): Update.
4744         (sh_expand_prologue): Update.
4745         (sh_expand_epilogue): Update.
4746         (sh_setup_incoming_varargs): Update.
4747         (sh_allocate_initial_value): Update.
4748         (sh_get_pr_initial_val): Update.
4749         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4750         * config/sh/sh.md (label:): Update.
4751         * config/avr/avr.c (out_movhi_mr_r): Update.
4752         * config/crx/crx.h (enum): Update.
4753         * config/xtensa/xtensa.h (along): Update.
4754         * config/stormy16/stormy16.c Update.
4755         (xstormy16_compute_stack_layout): Update.
4756         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4757         (fr30_expand_prologue): Update.
4758         * config/cris/cris.c (cris_conditional_register_usage): Update.
4759         (cris_reg_saved_in_regsave_area): Update.
4760         (cris_initial_frame_pointer_offset): Update.
4761         (cris_simple_epilogue): Update.
4762         (cris_expand_prologue): Update.
4763         (cris_expand_epilogue): Update.
4764         (cris_expand_pic_call_address): Update.
4765         (cris_asm_output_symbol_ref): Update.
4766         (cris_asm_output_label_ref): Update.
4767         * config/cris/cris.md Update.
4768         * config/iq2000/iq2000.c (compute_frame_size): Update.
4769         (iq2000_expand_epilogue): Update.
4770         * config/mt/mt.h (save_direction): Update.
4771         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4772         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4773         (ia64_secondary_reload_class): Update.
4774         * config/m68k/m68k.c (m68k_save_reg): Update.
4775         (m68k_expand_prologue): Update.
4776         (m68k_expand_epilogue): Update.
4777         (legitimize_pic_address): Update.
4778         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4779         (first_reg_to_save): Update.
4780         (first_altivec_reg_to_save): Update.
4781         (compute_vrsave_mask): Update.
4782         (compute_save_world_info): Update.
4783         (rs6000_stack_info): Update.
4784         (spe_func_has_64bit_regs_p): Update.
4785         (rs6000_ra_ever_killed): Update.
4786         (rs6000_emit_eh_reg_restore): Update.
4787         (rs6000_emit_allocate_stack): Update.
4788         (rs6000_emit_prologue): Update.
4789         (rs6000_emit_epilogue): Update.
4790         (rs6000_output_function_epilogue): Update.
4791         (output_profile_hook): Update.
4792         (rs6000_elf_declare_function_name): Update.
4793         * config/rs6000/rs6000.h (rs6000_args): Update.
4794         * config/rs6000/rs6000.md: Update.
4795         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4796         * config/arc/arc.c (arc_output_function_epilogue): Update.
4797         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4798         * config/darwin.c (machopic_function_base_name): Update.
4799         * config/score/score3.c (score3_compute_frame_size): Update.
4800         (rpush): Update.
4801         (rpop): Update.
4802         (score3_epilogue): Update.
4803         * config/score/score7.c (score7_compute_frame_size): Update.
4804         (score7_prologue): Update.
4805         (score7_epilogue): Update.
4806         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4807         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4808         * config/arm/arm.c (use_return_insn): Update.
4809         (require_pic_register): Update.
4810         (arm_load_pic_register): Update.
4811         (arm_compute_save_reg0_reg12_mask): Update.
4812         (arm_compute_save_reg_mask): Update.
4813         (thumb1_compute_save_reg_mask): Update.
4814         (output_return_instruction): Update.
4815         (arm_output_function_prologue): Update.
4816         (arm_output_epilogue): Update.
4817         (arm_get_frame_offsets): Update.
4818         (arm_expand_prologue): Update.
4819         (thumb_pushpop): Update.
4820         (thumb_exit): Update.
4821         (thumb1_expand_prologue): Update.
4822         (thumb1_expand_epilogue): Update.
4823         (arm_unwind_emit): Update.
4824         (arm_output_fn_unwind): Update.
4825         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4826         * config/arm/arm.md: Update.
4827         * config/pa/pa.md: Update.
4828         * config/pa/pa.c (legitimize_pic_address): Update.
4829         (compute_frame_size): Update.
4830         (hppa_expand_prologue): Update.
4831         (hppa_expand_epilogue): Update.
4832         (borx_reg_operand): Update.
4833         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4834         (HARD_REGNO_RENAME_OK): Update.
4835         * config/mips/mips.c (mips_global_pointer): Update.
4836         (mips_save_reg_p): Update.
4837         (mips_compute_frame_info): Update.
4838         (mips_frame_pointer_required): Update.
4839         (mips_expand_prologue): Update.
4840         (mips_expand_epilogue): Update.
4841         (mips_can_use_return_insn): Update.
4842         (mips_reorg_process_insns): Update.
4843         * config/v850/v850.c (compute_register_save_size): Update.
4844         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4845         * config/mmix/mmix.c (along): Update.
4846         (mmix_expand_epilogue): Update.
4847         * config/bfin/bfin.c (legitimize_pic_address): Update.
4848         (must_save_p): Update.
4849         (stack_frame_needed_p): Update.
4850         (add_to_reg): Update.
4851         (bfin_expand_prologue): Update.
4852         * stmt.c (expand_asm_operands): Update.
4853         * reload1.c (reload): Update.
4854         (init_elim_table): Update.
4855
4856 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4857         
4858         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4859         
4860 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4861
4862         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4863         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4864         (mov<mode>): Removed.
4865         (*movv4sf_internal): Likewise.
4866         (*movv2df_internal): Likewise.
4867
4868 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4869
4870         * config.gcc (crx-*-elf): Remove deprecation.
4871
4872 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4873
4874         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4875         __gcc_deregister_frame with atexit.
4876         (deregister_frame_dtor): Remove.
4877
4878 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4879             Nathan Sidwell  <nathan@codesourcery.com>
4880
4881         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4882         (misel): Likewise.
4883         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4884         (rs6000_isel): Likewise.
4885         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4886         (rs6000_isel): New variable.
4887         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4888
4889 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4890
4891         PR c++/35758
4892         * c-common.c (handle_vector_size_attribute): Call
4893         lang_hooks.types.reconstruct_complex_type instead of
4894         reconstruct_complex_type.
4895         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4896         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4897         * langhooks.h (struct lang_hooks_for_types): Add
4898         reconstruct_complex_type hook.
4899         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4900         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4901
4902 2008-04-24  Richard Guenther  <rguenther@suse.de>
4903
4904         * c-common.h (check_builtin_function_arguments): Declare.
4905         * c-common.c (validate_nargs): New function.
4906         (check_builtin_function_arguments): Likewise.
4907         * c-typeck.c (build_function_call): Call
4908         check_builtin_function_arguments.
4909         * builtins.c (fold_builtin_classify): Remove error reporting code.
4910         (fold_builtin_unordered_cmp): Likewise.
4911         (fold_builtin_1): Likewise.
4912         (fold_builtin_n): Likewise.
4913
4914 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4915
4916         PR tree-optimization/36008
4917         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4918         the original op1, rather than delta by step.
4919
4920 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4921             Sebastian Pop  <sebastian.pop@amd.com>
4922
4923         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4924         eliminate_local_variables_stmt, eliminate_local_variables,
4925         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4926         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4927         of code delimited by two edges in the CFG.
4928         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4929         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4930         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4931         the case of parallelisation of reductions.
4932         (expr_invariant_in_region_p): New.
4933
4934         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4935         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4936
4937 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4938             Richard Guenther  <rguenther@suse.de>
4939
4940         PR tree-optimization/36034
4941         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4942         incapable of dealing with loads with gaps.
4943
4944 2008-04-24  Rafael Espindola  <espindola@google.com>
4945
4946         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4947         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4948         vrp_evaluate_conditional.
4949         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4950         (vrp_evaluate_conditional): Split the cond argument.
4951         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4952         (simplify_stmt_for_jump_threading): Update call to
4953         vrp_evaluate_conditional.
4954
4955 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4956
4957         PR tree-optimization/35982
4958         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4959         interleaved data-refs are of the same type.
4960
4961 2008-04-24  Danny Smith  <dannysmith@users.net>
4962
4963         * c-format.c (check_format_info_main): Use strncmp rather than a
4964         magic prefix to handle multichar length specs.
4965         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4966         Don't prefix "I64" and "I32" with '\0'.
4967
4968 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4969
4970         PR target/36015
4971         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4972         in registers for -m32 only if stdarg_p (fntype).
4973
4974 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4975
4976         PR rtl-optimization/36006
4977         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4978         temp to op0 in order to avoid invalid rtx sharing.
4979
4980 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4981
4982         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4983         check TREE_INVARIANT.
4984         * tree-gimple.c (is_gimple_address): New.
4985         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4986         * tree-gimple.h (is_gimple_address): New.
4987         * tree.h (decl_address_invariant_p): New.
4988         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4989         (build_string): Likewise.
4990         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4991         (tree_invariant_p_1): Likewise.
4992         (save_expr): Use it.
4993         (tree_invariant_p): New.
4994         (skip_simple_arithmetic): Use it.
4995         (stabilize_reference_1): Use it.
4996         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4997         simplify.
4998         (build1_stat): Drop code to compute TREE_INVARIANT.
4999         (build2_stat): Drop code to compute TREE_INVARIANT.
5000         (build3_stat): Drop code to compute TREE_INVARIANT.
5001         (build4_stat): Drop code to compute TREE_INVARIANT.
5002         (build5_stat): Drop code to compute TREE_INVARIANT.
5003         (build7_stat): Drop code to compute TREE_INVARIANT.
5004         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
5005         * tree.h (struct tree_base): Remove invariant_flag.
5006         (TREE_INVARIANT): Remove.
5007         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
5008         (fold_builtin_expect): Check TREE_CONSTANT.
5009         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
5010         * c-tree.h (c_expr_to_decl): Drop third parameter.
5011         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
5012         (build_c_cast): Don't set TREE_INVARIANT.
5013         (pop_init_level): Don't set TREE_INVARIANT.
5014         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
5015         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
5016         TREE_CONSTANT.
5017         (gimplify_init_constructor): Don't set TREE_INVARIANT.
5018         (gimplify_addr_expr): Adjust comment.
5019         * tree-mudflap.c (mf_build_string):
5020         * print-tree.c (print_node): Don't print TREE_INVARIANT.
5021         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
5022         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
5023         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
5024         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
5025         * langhooks.h (struct lang_hooks): Drop third parameter from
5026         expr_to_decl.
5027
5028 2008-04-23  Richard Guenther  <rguenther@suse.de>
5029
5030         PR tree-optimization/27799
5031         PR tree-optimization/32921
5032         PR tree-optimization/32624
5033         * tree-ssa-structalias.c (merge_smts_into): Only merge the
5034         SMTs aliases and the tag itself into the solution.
5035         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
5036         merge the points-to solution back into the SMT aliases.
5037         (may_alias_p): Use alias_set_subset_of instead of
5038         aliases_conflict_p.  A pointer which points to
5039         memory with alias set zero may access any variable.
5040
5041 2008-04-23  Richard Guenther  <rguenther@suse.de>
5042
5043         * alias.c (alias_set_subset_of): Correctly handle asking
5044         if zero is a subset of an alias set with zero child.
5045         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
5046         (compute_flow_insensitive_aliasing): Correctly walk all
5047         pointers.  Do not unnecessarily union sets.
5048
5049 2008-04-23  Richard Guenther  <rguenther@suse.de>
5050
5051         PR middle-end/36021
5052         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
5053
5054 2008-04-22  Tomas Bily  <tbily@suse.cz>
5055
5056         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
5057         unreachable case.
5058         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
5059         NON_LVALUE_EXPR.
5060         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5061         * tree-ssa-structalias.c (get_constraint_for): Likewise.
5062         * tree-inline.c (estimate_num_insns_1): Likewise.
5063         * varasm.c (const_hash_1, compare_constant, copy_constant)
5064         (compute_reloc_for_constant, output_addressed_constants): Likewise.
5065         * emit-rtl.c (component_ref_for_mem_expr)
5066         (set_mem_attributes_minus_bitpos): Likewise.
5067         * expr.c (highest_pow2_factor, expand_expr_real_1, )
5068         (is_aligning_offset): Likewise.
5069         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
5070         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5071         * dojump.c (do_jump): Likewise.
5072         * builtins.c (get_pointer_alignment, get_memory_rtx)
5073         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
5074         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
5075
5076 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
5077
5078         PR rtl-optimization/36017
5079         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
5080         expanding the library call.
5081
5082 2008-04-22  Ian Lance Taylor  <iant@google.com>
5083
5084         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
5085         than size_in_bytes.
5086
5087 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
5088
5089         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
5090         of LR/CTR moves for Power6.
5091
5092 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
5093
5094         PR middle-end/36003
5095         * passes.c (init_optimization_passes): Remove
5096         pass_fast_rtl_byte_dce.
5097         
5098 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
5099
5100         PR target/29096
5101         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
5102         builtin functions to generate faster code.
5103         (_mm_cvtpu16_ps): Ditto.
5104         (_mm_cvtpi32x2_ps): Ditto.
5105
5106 2008-04-22  Nick Clifton  <nickc@redhat.com>
5107
5108         * common.opt (ftree-loop-distribution): Add Optimization
5109         attribute.
5110
5111         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
5112         (frv_expand_builtin_va_start): Likewise.
5113
5114         * config/arm/arm.c (thumb_find_work_register): Fix location of
5115         argument register count.
5116
5117 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5118
5119         Support scheduling for ColdFire V1 and V3 microarchitecture.
5120         Improve scheduling of multiplication instructions.
5121
5122         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
5123         (mac): New instruction attribute.
5124         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
5125         (m68k_sched_mac): New variable.
5126         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
5127         Handle cfv1 and cfv3.
5128         (max_insn_size): New static variable.
5129         (struct _sched_ib): New type.
5130         (sched_ib): New static variable.
5131         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
5132         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
5133         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
5134         Update.
5135         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
5136         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
5137         new variables.  Update.
5138         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5139         Add modeling of cfv3 instruction buffer.  Update.
5140         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
5141         * config/m68k/m68k.h (TUNE_CFV3): New macro.
5142         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
5143         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
5144         a particular reservation applies to.
5145         (type2): Reorganize attribute values.  Rename alu to alu_reg,
5146         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
5147         to mul_l and mul_w.
5148         (cf_ib_*): Simplify description of instruction buffer.
5149         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
5150         (cf_mem): Split into cf_mem1 and cf_mem2.
5151         (cf_v2_move_??): Rename to cfv12_alu_??.
5152         (cf_v2_move_l_??): Rename to cfv12_omove_??.
5153         (cf_v2_mul_??): Remove reservations.
5154         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
5155         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
5156         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
5157         appropriate place.
5158         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
5159         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
5160         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
5161         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
5162         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
5163         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
5164         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
5165         expansions of the above reservations for instructions of sizes
5166         1, 2 and 3 words.
5167
5168 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5169
5170         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
5171
5172 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
5173
5174         * coverage.c: Include tree-pass.h.
5175         (coverage_counter_alloc): Print da_file_name to the dump file.
5176
5177 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
5178
5179         * sbitmap.c (sbitmap_range_empty_p): New function.
5180         * sbitmap.h (sbitmap_range_empty_p): New function.
5181         * bitmap.h: Now includes obstack.h.
5182
5183 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
5184             Kenneth Zadeck  <zadeck@naturalbridge.com>
5185
5186         * dbgcnt.def (ra_byte_scan): Added.
5187         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
5188         when the last hit happens for a counter.  
5189         * timevar.def (TV_DF_BYTE_LR): New variable.
5190         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
5191         * passes.c (pass_fast_rtl_byte_dce): New pass.
5192         * fwprop.c (update_df): Added mode to call df_ref_create.
5193         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5194         DF_REF_EXTRACT_OFFSET.
5195         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
5196         DF_BYTE_LR_OUT, df_byte_lr): New macro.
5197         (df_mm): New enum.
5198         (df_ref_extract): Added mode field.
5199         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
5200         DF_REF_EXTRACT_OFFSET.
5201         (DF_REF_EXTRACT_MODE): New macro.
5202         (df_byte_lr_bb_info): New structure.
5203         (df_print_byte_regset, df_compute_accessed_bytes, 
5204         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
5205         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
5206         df_byte_lr_simulate_uses,
5207         df_byte_lr_simulate_artificial_refs_at_top,
5208         df_byte_lr_simulate_artificial_refs_at_end,
5209         df_compute_accessed_bytes): New function.
5210         (df_ref_create): Add parameter.
5211         (df_byte_lr_get_bb_info): New inline function.
5212         * df-scan.c (df_ref_record, df_uses_record,
5213         df_ref_create_structure): Added mode parameter.
5214         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
5215         df_defs_record, df_uses_record, df_get_conditional_uses,
5216         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
5217         df_entry_block_defs_collect, df_exit_block_uses_collect):
5218         Added mode parameter to calls to df_ref_record, df_uses_record,
5219         df_ref_create_structure.
5220         (df_ref_equal_p, df_ref_compare): Added test for modes.
5221         (df_ref_create_structure): Added code to set mode.  Renamed
5222         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5223         DF_REF_EXTRACT_OFFSET.
5224         * df-core.c (df_print_byte_regset): New function.
5225         * df-byte-scan.c: New file.
5226         * df-problems.c (df_rd_transfer_function): Removed unnecessary
5227         calls to BITMAP_FREE.  
5228         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5229         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5230         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
5231         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
5232         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5233         df_byte_lr_local_compute, df_byte_lr_init,
5234         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
5235         df_byte_lr_transfer_function, df_byte_lr_free, 
5236         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5237         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
5238         df_byte_lr_simulate_uses,
5239         df_byte_lr_simulate_artificial_refs_at_top,
5240         df_byte_lr_simulate_artificial_refs_at_end): New function.
5241         * dce.c (byte_dce_process_block): New function.
5242         (dce_process_block): au is now passed in rather than computed
5243         locally.  Changed loops that look at artificial defs to not look
5244         for conditional or partial ones, because there never are any.  
5245         (fast_dce): Now is able to drive byte_dce_process_block or 
5246         dce_process_block depending on the kind of dce being done.
5247         (rest_of_handle_fast_dce): Add parameter to fast_dce.
5248         (rest_of_handle_fast_byte_dce): New function.
5249         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5250         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5251
5252 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5253
5254         PR fortran/35019
5255         * gcc.h: Added fortran options that take arguments to
5256         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5257         macros.
5258
5259 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5260
5261         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5262         scalarization if on the LHS and not a full access.
5263
5264 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5265
5266         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5267
5268 2008-04-18  Rafael Espindola  <espindola@google.com>
5269
5270         * tree-vrp.c (find_case_label_index): Fix the binary search.
5271         (find_case_label_range): New.
5272         (vrp_visit_switch_stmt): Use find_case_label_range.
5273         (simplify_switch_using_ranges): Use find_case_label_range.
5274
5275 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5276
5277         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5278         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5279
5280 2008-04-18  Tom Tromey  <tromey@redhat.com>
5281
5282         PR libcpp/15500:
5283         * doc/cpp.texi (Implementation-defined behavior): Mention
5284         -finput-charset.
5285
5286 2008-04-18  Ian Lance Taylor  <iant@google.com>
5287
5288         * fold-const.c (pointer_may_wrap_p): New static function.
5289         (fold_comparison): Add another test for pointer overflow.  Use
5290         pointer_may_wrap_p to disable some false positives.
5291
5292 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5293           
5294         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5295         (fname_as_string): Match updated cpp_interpret_string prototype.
5296         (fix_string_type): Support char16_t* and char32_t*.
5297         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5298         derivative) nodes.  Register as builtin if C++0x.
5299         (c_parse_error): Support CPP_CHAR{16,32}.
5300         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5301         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5302         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5303         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5304         CTI_CHAR32_ARRAY_TYPE>: New elements.
5305         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5306         char32_type_node, signed_char32_type_node, char16_array_type_node,
5307         char32_array_type_node): New defines.
5308         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5309         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5310         (lex_string): Support CPP_STRING{16,32}, match updated
5311         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5312         (lex_charconst): Support CPP_CHAR{16,32}.
5313         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5314         and CPP_STRING{16,32}.
5315
5316 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5317
5318         PR bootstrap/35457
5319         * aclocal.m4: Regenerate.
5320         * configure: Regenerate.
5321
5322 2008-04-18  Jan Hubicka  <jh@suse.cz>
5323
5324         * except.c (dw2_size_of_call_site_table,
5325         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5326
5327         * cgraphbuild.c (build_cgraph_edges): Update.
5328         * tree-pass.h: Update comment.
5329         * final.c (leaf_function_p): Update.
5330         (leaf_renumber_regs): Update.
5331         (rest_of_clean_state): Update.
5332         * omp-low.c (expand_omp_parallel): Update.
5333         * ipa-reference.c (analyze_function): Update.
5334         * reorg.c (find_end_label): Update.
5335         (optimize_skip): Update.
5336         (fill_simple_delay_slots): Update.
5337         (fill_simple_delay_slots): Update.
5338         (make_return_insns): Update.
5339         (dbr_schedule): Update.
5340         * gimple-low.c (record_vars_into): Update.
5341         * cfgbuild.c (make_edges): Update.
5342         * function.c (assign_stack_local): Update.
5343         (assign_parm_adjust_stack_rtl): Update.
5344         (locate_and_pad_parm): Update.
5345         (allocate_struct_function): Do not initialize stack_alignment_needed
5346         and preferred_stack_boundary here.
5347         (stack_protect_prologue): Update.
5348         (stack_protect_epilogue): Update.
5349         (expand_function_start): Initialize stack_alignment_needed,
5350         preferred_stack_boundary and max_jumptable_ents.
5351         (expand_function_end): Update.
5352         (free_after_compilation): Do not NULLify epilogue_delay_list.
5353         * function.h (struct rtl_data): Add stack_protect_guard,
5354         stack_alignment_needed,
5355         preferred_stack_boundary, epilogue_delay_list.
5356         (struct function): Remove value_histograms, stack_alignment_needed,
5357         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5358         last_label_uid,
5359         unexpanded_var_list, stack_protect_guard.
5360         (current_function_epilogue_delay_list): Remove.
5361         * ipa-type-escape.c (analyze_function): Update.
5362         * gimplify.c (pop_gimplify_context): Update comment.
5363         * calls.c (expand_call): Update.
5364         (emit_library_call_value_1): Update.
5365         * except.c (set_nothrow_function_flags): Update.
5366         * cfgexpand.c (get_decl_align_unit): Update.
5367         (create_stack_guard): Update.
5368         (estimated_stack_frame_size): Update.
5369         (expand_used_vars): Update.
5370         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5371         * explow.c (allocate_dynamic_stack_space): Update.
5372         * tree-ssa-live.c (remove_unused_locals): Update.
5373         * varasm.c (mark_constant_pool): Update.
5374         * tree-inline.c (remap_decls): Update.
5375         (initialize_cfun): Update.
5376         (declare_return_variable): Update.
5377         (inline_forbidden_p): Update.
5378         (expand_call_inline): Update.
5379         (declare_inline_vars): Update.
5380         (tree_function_versioning): Update.
5381         * tree-flow.h (value_histograms): New.
5382         (VALUE_HISTOGRAMS): New macro.
5383         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5384         last_label_uid.
5385         * tree-cfg.c (set_bb_for_stmt): Update.
5386         (replace_by_duplicate_decl): Update.
5387         (move_block_to_fn): Update.
5388         (new_label_mapper): Update.
5389         (dump_function_to_file): Update.
5390         * ipa-struct-reorg.c (build_data_structure): Update.
5391         * cfgrtl.c (print_rtl_with_bb): Update.
5392         * reload1.c (reload): Update.
5393         (reload): Update.
5394         * config/i386/i386.c (setup_incoming_varargs_64,
5395         ix86_compute_frame_layout): Update.
5396         * config/arc/arc.c (arc_output_function_epilogue): Update.
5397
5398 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5399
5400         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5401         for FreeBSD as well.
5402         * gthr-posix95.h: Likewise.
5403
5404 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5405
5406         PR rtl-optimization/35838
5407         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5408         out the byte offset of the first subreg.
5409
5410 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5411
5412         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5413         to split_ti instead of three separate calls with single member arrays.
5414         (subti3 splitter): Ditto.
5415         (adddi3 splitter): Ditto with split_di.
5416         (subdi3 splitter): Ditto.
5417         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5418         two separate calls with single member arrays.  Swap match_dup
5419         operands 1 and 2 to better fit into the array.
5420         (negdi2 splitter): Ditto with split_di.
5421         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5422         two separate calls with single member arrays.  Swap match_dup operands
5423         6 and 7 to better fit into the array.
5424
5425 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5426
5427         * config/i386/i386.c (sse_builtin_type): New.
5428         (bdesc_sse_args): Likewise.
5429         (bdesc_sse_3arg): Removed.
5430         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5431         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5432         IX86_BUILTIN_ROUNDPS.
5433         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5434         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5435         IX86_BUILTIN_ROUNDPS.
5436         (ix86_expand_sse_4_operands_builtin): Removed.
5437         (ix86_expand_sse_operands_builtin): New.
5438         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5439         and CODE_FOR_sse4_1_roundps.
5440         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5441         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5442
5443 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5444
5445         PR target/35907
5446         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5447         regs before frame pop when needed.  If use_backchain_to_restore_sp
5448         then load backchain into a temp reg to restore vr and vrsave.  Add
5449         code to restore vr after frame pop if possible.
5450
5451 2008-04-17  Richard Guenther  <rguenther@suse.de>
5452
5453         * tree-vn.c (expressions_equal_p): Do not check type
5454         equality or compatibility before calling operand_equal_p.
5455         * fold-const.c (operand_equal_p): Check equivalence of
5456         integer constants before bailing out due to signedness or
5457         precision differences.
5458         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5459         spurious differences in type qualification.  Ignore types
5460         for COMPONENT_REFs at all.
5461
5462 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5463
5464         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5465         msw_skip comparison.
5466         
5467 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5468
5469         PR c/35739
5470         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5471         reg type.
5472
5473         PR tree-optimization/35899
5474         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5475         rather than TREE_OPERAND.
5476
5477 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5478
5479         PR target/35944
5480         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5481         temporary registers.  Change operand predicate to general_operand.
5482         (remainderxf3): Ditto.
5483
5484 2008-04-16  Richard Guenther  <rguenther@suse.de>
5485
5486         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5487         * tree-affine.c (aff_combination_expand): Look through some
5488         conversions.
5489
5490 2008-04-15  Doug Kwan  <dougkwan@google.com>
5491
5492         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5493         for hex printing.
5494         * tree-pretty-print.c (dump_generic_node): Ditto.
5495         * final.c (output_addr_const): Ditto.
5496         * dwarf2out.c (output_cfi): Ditto.
5497         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5498         * print-rtl.c (print_rtx): Ditto.
5499         * print-tree.c (print_node_brief, print_node): Ditto.
5500         * c-common.c (match_case_to_enum_1): Ditto.
5501         * sched-vis.c (print_value): Ditto.
5502         * config/i386/i386.c (print_operand): Cast to long unsigned int
5503         for hex printing.
5504
5505 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5506         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5507         MS Windows VirtualProtect function.
5508
5509 2008-04-15  Jan Hubicka  <jh@suse.cz>
5510
5511         * gengtype.c (write_root): Param_is argument is OK.
5512         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5513         * function.h: Include varray.h
5514         (rtl_eh): New stucture based on except.c one.
5515         (call_site_record): New forward declaration and vector type.
5516         * calls.c (emit_call_1): Do not call
5517         note_current_region_may_contain_throw.
5518         * except.c (eh_status): Remove cur_region, try_region since they are
5519         unused.
5520         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5521         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5522         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5523         Remove call_site_data_used, call_site_data_size.
5524         Turn call_site_record into vector in function.h.
5525         (note_current_region_may_contain_throw): Remove.
5526         (get_exception_pointer, get_exception_filter): Do not take struct
5527         function argument; update.
5528         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5529         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5530         build_post_landing_pads, dw2_build_landing_pads,
5531         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5532         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5533         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5534         sjlj_build_landing_pads, finish_eh_generation,
5535         remove_exception_handler_label, remove_eh_handler,
5536         maybe_remove_eh_handler, add_reachable_handler,
5537         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5538         add_action_record, collect_one_action_chain, add_call_site,
5539         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5540         sjlj_output_call_site_table, output_function_exception_table,
5541         * except.h (note_current_region_may_contain_throw): Remove
5542         (get_exception_pointer, get_exception_filter): Do not take struct
5543         function argument.
5544         * Makefile.in (GTFILES): Put varargs before struct function.
5545
5546 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5547
5548         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5549         punt for STRING_CST.
5550         (get_constraint_for): Deal with STRING_CST here instead.
5551
5552 2008-04-15  Richard Guenther  <rguenther@suse.de>
5553
5554         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5555         statements in a basic-block with a backward walk.  Do not
5556         substitute into dead statements but instead remove those.
5557
5558 2008-04-15  Richard Guenther  <rguenther@suse.de>
5559
5560         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5561         to zero, thus disable creation of SFTs.
5562
5563 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5564
5565         * tree-predcom.c (suitable_reference_p): Return false if the
5566         reference can throw.
5567
5568 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5569
5570         PR c/35751
5571         * c-decl.c (finish_decl): If extern or static var has variable
5572         size, set TREE_TYPE (decl) to error_mark_node.
5573
5574 2008-04-15  Rafael Espindola  <espindola@google.com>
5575
5576         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5577         variable arg1.
5578
5579 2008-04-15  Richard Guenther  <rguenther@suse.de>
5580
5581         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5582         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5583         (visit_reference_op_load): Do walk vuse-vdef chains on
5584         vn_reference_lookup.
5585         (visit_reference_op_store): But do not here.
5586         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5587         vn_reference_lookup.
5588         (vn_lookup_with_vuses): But do so here.
5589
5590 2008-04-14  Ian Lance Taylor  <iant@google.com>
5591
5592         * fold-const.c (fold_overflow_warning): Remove assertion.
5593
5594 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5595
5596         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5597         temp1 local variables.
5598
5599 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5600
5601         PR target/35661
5602         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5603         ".text.unlikely" section as executable.
5604
5605 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5606
5607         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5608         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5609         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5610         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5611         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5612         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5613         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5614
5615 2008-04-14  Ian Lance Taylor  <iant@google.com>
5616
5617         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5618         * fold-const.c (fold_comparison): If appropriate, test
5619         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5620         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5621         reassociating a pointer type.
5622         * doc/invoke.texi (Optimize Options): Document that
5623         -fstrict-overflow applies to pointer wraparound.
5624
5625 2008-04-13  Jan Hubicka  <jh@suse.cz>
5626
5627         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5628
5629 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5630
5631         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5632         we are going to "save the world".
5633
5634 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5635
5636         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5637         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5638         operand 0 constraint, not "=".
5639
5640 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5641
5642         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5643
5644 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5645
5646         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5647         of size of positions_needed * CHAR_BIT.
5648
5649 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5650
5651         PR middle-end/35897
5652         * dse.c (store_info): Change positions_needed to unsigned
5653         HOST_WIDE_INT.
5654         (lowpart_bitmask): New.
5655         (record_store): Cast to unsigned HOST_WIDE_INT for
5656         positions_needed.  Assert width <= size of positions_needed *
5657         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5658         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5659         lowpart_bitmask to set mask.
5660
5661 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5662
5663         * config/bfin/constraints.md: New file.
5664         * config/bfin/bfin.md: Include it.
5665         (adddi3): Use satisfies_constraint functions instead of the old macros.
5666         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5667         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5668         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5669         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5670         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5671         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5672         EXTRA_CONSTRAINT): Delete.
5673         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5674         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5675         of the old macros.
5676         * config/bfin/bfin.c: Include "tm-constrs.h".
5677         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5678         Use satisfies_constraint functions instead of the old macros.
5679         * doc/md.texi (Blackfin Constraints): Update file name reference.
5680
5681 2008-04-11  Richard Guenther  <rguenther@suse.de>
5682
5683         PR tree-optimization/35869
5684         * tree-vrp.c (execute_vrp): Move switch statement update after
5685         jump threading.  Schedule another cfg cleanup run.
5686
5687 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5688
5689         PR c/35744
5690         * attribs.c (decl_attributes): Return early on errorneous node.
5691
5692 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5693
5694         * tree.h (struct tree_base): Added a new flag default_def_flag.
5695         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5696
5697 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5698
5699         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5700
5701 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5702
5703         PR target/35768
5704         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5705         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5706         (icacheflush): Likewise.
5707         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5708         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5709
5710 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5711
5712         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5713
5714 2008-04-10  Rafael Espindola  <espindola@google.com>
5715
5716         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5717         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5718         (extract_range_from_expr): The same.
5719
5720 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5721
5722         * config/mips/mips.md (GPR2): New mode iterator.
5723         (seq): Add comment.
5724         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5725         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5726         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5727         Rewrite these to take two modes, the mode of comparison and the
5728         mode of the destination.
5729         * config/mips/mips.c (mips_expand_scc): Instead of having
5730         paradoxical subreg as destination, expand "narrowing" scc if mode
5731         of comparison is SI and target is requested in DI mode.
5732         (mips_emit_int_order_test): Update comment.  Make mode of
5733         comparison match CMP0 rather than TARGET.  When creating inverse
5734         target use mode of TARGET.
5735
5736 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5737
5738         * gcov-dump.c (tag_summary): Only print summaries for the first
5739         GCOV_COUNTERS_SUMMABLE counters.
5740
5741 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5742
5743         * config/i386/i386.md (absneg): New code iterator.
5744         (absnegprefix): New code attribute.
5745         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5746         patterns using absneg code iterator.
5747         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5748         using absneg code iterator.
5749         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5750         *neg<mode>2 patterns using absneg code iterator.
5751         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5752         *negextendsfdf2 patterns using absneg code iterator.
5753         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5754         *negextendsfxf2 patterns using absneg code iterator.
5755         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5756         *negextendsfdf2 patterns using absneg code iterator.
5757         * config/i386/sse.md (<code><mode>2): Macroize expander from
5758         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5759
5760 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5761
5762         * config/s390/s390.h: Remove the remains of the recent search
5763         & replace action of current_function_outgoing_args_size.
5764
5765 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5766
5767         PR tree-optimization/35821
5768         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5769         NEW_STMT_LIST is not NULL.
5770
5771 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5772
5773         PR libstdc++/35597
5774         * toplev.c (process_options): Remove -ffunction-sections debugging
5775         warning.
5776
5777 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5778
5779         PR middle-end/PR28690
5780         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5781         than gen_rtx_fmt_ee to perform more canonicalizations.
5782
5783 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5784
5785         PR driver/35665
5786         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5787
5788 2008-04-09  Richard Guenther  <rguenther@suse.de>
5789
5790         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5791         (dump_function_to_file): Dump function arguments with types.
5792
5793 2008-04-08  Richard Guenther  <rguenther@suse.de>
5794
5795         * fold-const.c (fold_widened_comparison): Do not allow
5796         sign-changes that change the result.
5797
5798 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5799
5800         PR target/35839
5801         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5802         kinds of indirect references.
5803
5804 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5805
5806         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5807         GNU Fortran language string.
5808
5809 2008-04-08  Rafael Espindola  <espindola@google.com>
5810
5811         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5812         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5813         * tree.h (tree_call_nonnegative_warnv_p): New.
5814
5815 2008-04-08  Jan Hubicka  <jh@suse.cz>
5816
5817         * function.c (free_after_compilation): Clear out regno_reg_rtx
5818         pointer.
5819
5820 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5821
5822         Revert
5823         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5824
5825         PR middle-end/PR28690
5826         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5827         same precedence as REG_POINTER and MEM_POINTER operands.
5828
5829 2008-04-08  Richard Guenther  <rguenther@suse.de>
5830
5831         PR middle-end/35834
5832         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5833         for adding index to base.
5834
5835 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5836
5837         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5838         (MINGW_ENABLE_EXECUTE_STACK): New.
5839         (IN_LIBGCC2): For libgcc include windows.h file for
5840         function declarations.
5841
5842 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5843
5844         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5845         and tem2 if tem1 is not a REG or MULT.
5846
5847 2008-04-08  Jan Hubicka  <jh@suse.cz>
5848
5849         * function.h (incomming_args): Break out of struct function.
5850         (function_subsections): Break out of struct function.
5851         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5852         return_rtx and hard_reg_initial_vals from struct function.
5853         Kill inl_max_label_num.
5854         (current_function_pops_args, current_function_args_info,
5855         current_function_args_size, current_function_args_size,
5856         current_function_pretend_args_size,
5857         current_function_outgoing_args_size,
5858         current_function_internal_arg_pointer, current_function_return_rtx):
5859         Kill compatibility accestor macros.
5860         * builtins.c (expand_builtin_apply_args_1): Update.
5861         (expand_builtin_next_arg): Update.
5862         * df-scan.c (df_get_call_refs): Update.
5863         * dbxout.c (dbxout_function_end): Update.
5864         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5865         (output_line_info): Update.
5866         (secname_for_decl): Update.
5867         (dwarf2out_var_location): Update.
5868         * function.c (free_after_compilation): Update.
5869         (assign_parm_find_stack_rtl): Update.
5870         (assign_parms): Update.
5871         (expand_dummy_function_end): Update.
5872         (expand_function_end): Update.
5873         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5874         (expand_call): Update.
5875         (emit_library_call_value_1): Update.
5876         (store_one_arg): Update.
5877         * varasm.c (initialize_cold_section_name): Update.
5878         (unlikely_text_section): Update.
5879         (unlikely_text_section_p): Update.
5880         (assemble_start_function): Update.
5881         (assemble_end_function): Update.
5882         (default_section_type_flags): Update.
5883         (switch_to_section): Update.
5884         * integrate.c (set_decl_abstract_flags): Update.
5885         (get_hard_reg_initial_val): Update.
5886         (has_hard_reg_initial_val): Update.
5887         (allocate_initial_values): Update.
5888         * resource.c (init_resource_info): Update.
5889         * config/alpha/alpha.c (NUM_ARGS): Update.
5890         (direct_return): Update.
5891         (alpha_va_start): Update.
5892         (alpha_sa_size): Update.
5893         (alpha_initial_elimination_offset): Update.
5894         (alpha_expand_prologue): Update.
5895         (alpha_start_function): Update.
5896         (alpha_expand_epilogue): Update.
5897         (unicosmk_initial_elimination_offset):
5898         * config/alpha/alpha.md (call expander): Update.
5899         * config/s390/s390.c (s390_register_info): Update.
5900         (s390_register_info): Update.
5901         (s390_frame_info): Update.
5902         (s390_initial_elimination_offset): Update.
5903         (s390_build_builtin_va_list): Update.
5904         (s390_va_start): Update.
5905         * config/spu/spu.c (direct_return): Update.
5906         (spu_expand_prologue): Update.
5907         (spu_initial_elimination_offset): Update.
5908         (spu_build_builtin_va_list): Update.
5909         (spu_va_start): Update.
5910         * config/sparc/sparc.c (sparc_init_modes): Update.
5911         (sparc_compute_frame_size): Update.
5912         (function_value): Update.
5913         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5914         * config/i386/i386.md (return expander): Update.
5915         * config/i386/i386.c (ix86_va_start): Update.
5916         (ix86_can_use_return_insn_p): Update.
5917         (ix86_compute_frame_layout): Update.
5918         (ix86_expand_epilogue): Update.
5919         * config/sh/sh.c (output_stack_adjust): Update.
5920         (calc_live_regs): Update.
5921         (sh_expand_prologue): Update.
5922         (sh_builtin_saveregs): Update.
5923         (sh_va_start): Update.
5924         (initial_elimination_offset): Update.
5925         (sh_allocate_initial_value): Update.
5926         (sh_function_ok_for_sibcall): Update.
5927         (sh_get_pr_initial_val): Update.
5928         * config/sh/sh.md (return expander): Update.
5929         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5930         * config/crx/crx.c (crx_compute_frame): UPdate.
5931         (crx_initial_elimination_offset): UPdate.
5932         * config/xtensa/xtensa.c (compute_frame_size): Update
5933         (xtensa_builtin_saveregs): Update.
5934         (xtensa_va_start): Update.
5935         (order_regs_for_local_alloc): Update.
5936         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5937         (xstormy16_expand_builtin_va_start): Update.
5938         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5939         * config/m68hc11/m68hc11.md (return expanders): Update.
5940         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5941         (expand_epilogue): Update.
5942         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5943         (cris_simple_epilogue): Update.
5944         (cris_expand_prologue): Update.
5945         (cris_expand_epilogue): Update.
5946         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5947         (compute_frame_size): Update.
5948         * config/mt/mt.c (mt_compute_frame_size): Update.
5949         * config/mn10300/mn10300.c (expand_prologue): Update.
5950         (expand_epilogue): Update.
5951         (initial_offset): Update.
5952         (mn10300_builtin_saveregs):
5953         * config/mn10300/mn10300.md (return expander): Update.
5954         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5955         (ia64_initial_elimination_offset): Update.
5956         (ia64_initial_elimination_offset): Update.
5957         (ia64_expand_prologue): Update.
5958         * config/m68k/m68k.md (return expander): Update.
5959         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5960         (rs6000_stack_info): Update.
5961         * config/mcore/mcore.c (layout_mcore_frame): Update.
5962         (mcore_expand_prolog): Update.
5963         * config/arc/arc.c (arc_compute_frame_size): Update.
5964         * config/score/score3.c (score3_compute_frame_size): Update.
5965         * config/score/score7.c (score7_compute_frame_size): Update.
5966         * config/arm/arm.c (use_return_insn): Update.
5967         (thumb_find_work_register): Update.
5968         (arm_compute_save_reg_mask): Update.
5969         (arm_output_function_prologue): Update.
5970         (arm_output_epilogue): Update.
5971         (arm_size_return_regs): Update.
5972         (arm_get_frame_offsets): Update.
5973         (arm_expand_prologue): Update.
5974         (thumb_exit): Update.
5975         (thumb_unexpanded_epilogue): Update.
5976         (thumb1_output_function_prologue): Update.
5977         * config/pa/pa.md (return expander): Update.
5978         * config/pa/pa.c (compute_frame_size): Update.
5979         (hppa_builtin_saveregs): Update.
5980         * config/mips/mips.c (mips_va_start): Update.
5981         (mips16_build_function_stub): Update.
5982         (mips_compute_frame_info): Update.
5983         (mips_restore_gp): Update.
5984         (mips_output_function_prologue): Update.
5985         (mips_expand_prologue): Update.
5986         * config/v850/v850.c (compute_frame_size): Update.
5987         (expand_prologue): * config/mmix/mmix.c (along): update.
5988         (mmix_initial_elimination_offset): update.
5989         (mmix_reorg): update.
5990         (mmix_use_simple_return): update.
5991         (mmix_expand_prologue): update.
5992         (mmix_expand_epilogue): Update.
5993         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5994         (emit_link_insn): Update.
5995
5996 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5997
5998         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5999         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
6000         instructions.
6001         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
6002         atmega103 device.
6003
6004 2008-04-07  Jan Hubicka  <jh@suse.cz>
6005
6006         * function.h (rtl): Rename to x_rtl.
6007         (crtl): New define.
6008         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6009         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6010         used_temp_slots avail_temp_slots, temp_slot_level,
6011         nonlocal_goto_handler_labels): Update accesstors.
6012         (rtl): New global variable.
6013         (struct function): Move some fileds to rtl_data.
6014         (get_arg_pointer_save_area): Update prototype.
6015         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6016         get_arg_pointer_save_area.
6017         * expr.c (init_expr): Update
6018         * function.c (get_frame_size): Update
6019         (assign_stack_local): Update
6020         (expand_function_end): Update.
6021         (get_art_pointer_save_area): Update
6022         * function.h 
6023         * emit-rtl.c (rtl): Declare.
6024         (regno_reg_rtx): Declare.
6025         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6026         Update.
6027         (gen_reg_rtx): Update.
6028         * varasm.c (n_deferred_constatns): Update accestor.
6029         (init_varasm_status): Do not allocate varasm_status.
6030         (force_const_mem, get_pool_size, output_constant_pool): Update.
6031         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6032         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6033         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
6034         * sparc/sparc.h (INIT_EXPANDERS): Update.
6035         * ia64/ia64.h (INIT_EXPANDERS): Update.
6036
6037 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
6038
6039         * reload.c (push_secondary_reload): Add missing break to for loop.
6040
6041 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6042
6043         PR middle-end/PR28690
6044         * rtlanal.c: Update copyright years.
6045         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
6046         as REG_POINTER and MEM_POINTER operands.
6047         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
6048         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
6049         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
6050         * gcse.c: Update copyright years.
6051         (pre_delete): Call gen_reg_rtx_and_attrs.
6052         (hoist_code): Likewise.
6053         (build_store_vectors): Likewise.
6054         (delete_store): Likewise.
6055         * loop-invariant.c (move_invariant_reg): Likewise.
6056         Update copyright years.
6057
6058 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
6059
6060         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
6061         control string instead of quoted.
6062
6063 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
6064
6065         * doc/rtl.texi: Rewrite of subreg section.
6066
6067 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
6068
6069         PR/35842
6070         * config/i386/i386.c (legitimize_pic_address): Add treating
6071         of dllimport SYM_REF's.
6072         (legitimize_dllimport_symbol): Add prototype.
6073
6074 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6075
6076         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
6077         reference in constructor with non self-referential type.
6078
6079 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6080
6081         Removal of Return with Depressed Stack Pointer support
6082         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
6083         (ECF_SP_DEPRESSED): Likewise.
6084         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
6085         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
6086         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6087         (expand_call): Do not test ECF_SP_DEPRESSED.
6088         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6089         * function.c (keep_stack_depressed): Delete.
6090         (handle_epilogue_set): Likewise.
6091         (update_epilogue_consts): Likewise.
6092         (emit_equiv_load): Likewise.
6093         (thread_prologue_and_epilogue_insns): Remove support for Return with
6094         Depressed Stack Pointer.
6095         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6096
6097 2008-04-06  Richard Guenther  <rguenther@suse.de>
6098
6099         PR tree-optimization/35400
6100         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
6101         information from SSA_NAMEs.
6102
6103 2008-04-06  Anatoly Sokolov <aesok@post.ru>
6104
6105         * config/avr/avr.h (avr_mega_p): Remove declaration.
6106         (AVR_MEGA): Remove macro.
6107         * config/avr/avr.c (avr_mega_p): Remove variable.
6108         (avr_override_options): Remove inicializion of avr_mega_p.
6109         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6110         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6111         (avr_jump_mode): (Ditto.).
6112         (avr_output_progmem_section_asm_op): (Ditto.).
6113         (avr_asm_init_sections): (Ditto.).
6114         (avr_asm_init_sections): (Ditto.).
6115         (avr_rtx_costs): (Ditto.).
6116         * config/avr/avr.md: (Ditto.).
6117         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
6118         '__AVR_MEGA__'.
6119
6120 2008-04-06  Richard Guenther  <rguenther@suse.de>
6121
6122         PR tree-optimization/35842
6123         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
6124         is_gimple_invariant_address.
6125
6126 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6127
6128         * gcc.c (default_compilers): Sync Fortran extensions list with
6129         that in fortran/lang-specs.h.
6130         * doc/invoke.texi: Likewise.
6131         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
6132         * dwarf2out.c (gen_compile_unit_die): Likewise.
6133
6134 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
6135
6136         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
6137
6138 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
6139
6140         PR target/12329
6141         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
6142         attribute is used for nested functions.
6143
6144 2008-04-05  Jan Hubicka  <jh@suse.cz>
6145
6146         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
6147
6148         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
6149         letter argument.
6150         (dump_files): Update.
6151         (enable_rtl_dump_file): Do not accept letter argument.
6152         * tree-pass.h (dump_file_info): Remove letter argument.
6153         * toplev.c (decode_d_option): Update -da handling.
6154         * toplev.h (enable_rtl_dump_file): Update prototype.
6155         * passes.c (register_one_dump_file): Do not accept IPA argument; work
6156         it out based on pass type.
6157         (register_dump_files_1): Likewise.
6158         (init_optimization_passes): Update register_one_dump_file calls.
6159         (execute_one_pass): Sanity check that IPA passes are called at IPA
6160         level and RTL passes at RTL level.
6161         (execute_pass_list): IPA pass can not be after or subpass of
6162         GIMPLE/RTL pass.
6163         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
6164         disallov RTL subpasses of IPA subpasses.
6165
6166 2008-04-05  Ben Elliston  <bje@au.ibm.com>
6167
6168         * tree-cfg.c (need_fake_edge_p): Return false for calls to
6169         builtins that return exactly once and do not throw. Cache call to
6170         call_expr_flags.
6171
6172 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
6173
6174         PR rtl-optimization/34916
6175         PR middle-end/35519
6176         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
6177         between instruction pairs.
6178
6179 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
6180
6181         * doc/invoke.texi: Document -mbitops for SH.
6182         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
6183         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
6184         * config/sh/sh.c (print_operand): Add %t operand code.
6185         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
6186         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
6187         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
6188         (extendqihi2): Likewise.
6189         (movqi_i): Likewise.
6190         (insv): Use bset, bclr and bst instructions for SH2A if possible.
6191         (extv): Use bld instruction for SH2A if possible.
6192         (extzv): Likewise.
6193         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
6194         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
6195         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
6196         (bset.b, bclr.b): Define peepholes.
6197         * config/sh/sh.opt (mbitops): New option.
6198
6199 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
6200
6201         PR target/35620
6202         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
6203         and view convert expression.
6204
6205 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6206
6207         PR target/35364
6208         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6209
6210 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
6211
6212         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6213
6214         * config/i386/cpuid.h (bit_AES): New.
6215         (bit_PCLMUL): Likewise.
6216
6217         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6218         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
6219         SSE2 if AES or PCLMUL is enabled.
6220         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6221         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6222         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6223         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6224         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6225         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6226         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6227         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6228         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6229         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6230         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6231         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6232         __builtin_ia32_aeskeygenassist128 and
6233         __builtin_ia32_pclmulqdq128.
6234         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6235         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6236         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
6237
6238         * config/i386/i386.h (TARGET_AES): New.
6239         (TARGET_PCLMUL): Likewise.
6240         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6241
6242         * config/i386/i386.md (UNSPEC_AESENC): New.
6243         (UNSPEC_AESENCLAST): Likewise.
6244         (UNSPEC_AESDEC): Likewise.
6245         (UNSPEC_AESDECLAST): Likewise.
6246         (UNSPEC_AESIMC): Likewise.
6247         (UNSPEC_AESKEYGENASSIST): Likewise.
6248         (UNSPEC_PCLMUL): Likewise.
6249
6250         * config/i386/i386.opt (maes): New.
6251         (mpclmul): Likewise.
6252
6253         * config/i386/sse.md (aesenc): New pattern.
6254         (aesenclast): Likewise.
6255         (aesdec): Likewise.
6256         (aesdeclast): Likewise.
6257         (aesimc): Likewise.
6258         (aeskeygenassist): Likewise.
6259         (pclmulqdq): Likewise.
6260
6261         * config/i386/wmmintrin.h: New.
6262
6263         * doc/extend.texi: Document AES and PCLMUL built-in function.
6264
6265         * doc/invoke.texi: Document -maes and -mpclmul.
6266
6267 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6268
6269         * function.c (free_after_parsing): Replace with
6270         cxx_push_function_context from C++ front-end.
6271         (allocate_struct_function): Don't call langhook.
6272         * langhooks.h (struct lang_hooks_for_functions): Delete.
6273         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6274         member "function".
6275         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6276         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6277         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6278         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6279         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6280         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6281         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6282
6283         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6284         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6285         
6286 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6287
6288         PR c/35440
6289         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6290         for all types.
6291
6292 2008-04-04  Richard Guenther  <rguenther@suse.de>
6293
6294         PR middle-end/35823
6295         * fold-const.c (optimize_minmax_comparison): Use the correct
6296         type for the constant in the simplified comparison.
6297
6298 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6299
6300         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6301         Pass L2 size as "--param l2-cache-size" to the compiler.
6302         (decode_l2_cache): New function to decode L2 cache parameters using
6303         0x8000006 extended cpuid function.
6304         (detect_caches_amd): Determine parameters of L2 cache using
6305         decode_l2_caches function.
6306         (decode_caches_intel): Decode L2 cache parameters.
6307         (detect_caches_intel): Determine L2 cache parameters using
6308         decode_caches_intel and decode_l2_caches functions.
6309
6310 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6311
6312         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6313         secondary input reload for subword loads from the constant pool.
6314
6315 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6316
6317         PR target/35713
6318         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6319           constants of the appropriate size for runtime calculations.
6320
6321         PR c/35712
6322         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6323           decimal-float literal constant zero.
6324
6325 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6326
6327         PR c/35738
6328         * c-parser.c (c_parser_omp_atomic): Call
6329         default_function_array_conversion on the RHS.
6330
6331         PR middle-end/35818
6332         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6333         call is_variable_sized if decl has incomplete type.
6334
6335 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6336
6337         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6338
6339 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6340
6341         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6342         iterators.
6343         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6344         (sgt<u>): Merge sgt and sgtu into new expander.
6345         (sgt, sgtu): Remove expanders.
6346         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6347         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6348         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6349         *sgtu_<mode>_mips16 into new pattern.
6350         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6351         (sge<u>): Merge sge and sgeu into new expander.
6352         (sge, sgeu): Remove expanders.
6353         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6354         new pattern.
6355         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6356         (slt<u>): Merge slt and sltu into new expander.
6357         (slt, sltu): Remove expanders.
6358         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6359         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6360         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6361         *sltu_<mode>_mips16 into new pattern.
6362         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6363         (sle<u>): Merge sle and sleu into new expander.
6364         (sle, sleu): Remove expanders.
6365         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6366         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6367         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6368         *sleu_<mode>_mips16 into new pattern.
6369         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6370
6371 2008-04-03  Jan Hubicka  <jh@suse.cz>
6372
6373         PR tree-optimization/35795
6374         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6375         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6376         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6377         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6378         * score/score3.c (score3_output_mi_thunk): Likewise.
6379         * score/score7.c (score7_output_mi_thunk): Likewise.
6380         * mips/mips.c (mips_output_mi_thunk): Likewise.
6381
6382 2008-04-03  Richard Guenther  <rguenther@suse.de>
6383
6384         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6385         conversions.  Simplify code.
6386
6387 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6388
6389         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6390
6391 2008-04-03  Tom Tromey  <tromey@redhat.com>
6392             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6393
6394         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6395         * config/bfin/t-bfin-linux (generated_files): Add
6396         linux-sysroot-suffix.h.
6397         * doc/install.texi (Prerequisites): Require make 3.80.
6398         * doc/sourcebuild.texi (Front End Directory): Document new
6399         variable.
6400         * Makefile.in (generated_files): New variable.
6401         (ALL_HOST_OBJS): New variable.
6402         ($(ALL_HOST_OBJS)): New target.
6403
6404 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6405
6406         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6407         (remap_block): Call id->transform_lang_insert_block instead
6408         of langhook.
6409         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6410         Set id.transform_lang_insert_block to NULL.
6411         (clone_body): Move to cp/optimize.c
6412         * tree-inline.h (struct copy_body_data): Change
6413         transform_lang_insert_block to function pointer.
6414         (copy_generic_body, copy_decl_no_change): Export.
6415         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6416         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6417         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6418
6419         * c-tree.h (insert_block): Kill.
6420         * c-decl.c (insert_block): Kill.
6421
6422 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6423
6424         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6425         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6426         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6427         argument.
6428         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6429         argument, call {push,pop}_function_context from here.
6430         * c-parser.c: Use c_{push,pop}_function_context.
6431
6432         * function.c (push_function_context_to): Move meat ...
6433         (push_function_context): ... here.  Simplify.
6434         * function.c (pop_function_context_from): Move meat ...
6435         (pop_function_context): ... here.  Simplify.
6436         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6437         leave_nested).
6438         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6439         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6440         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6441         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6442
6443 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6444
6445         * expmed.c (extract_force_align_mem_bit_field): Remove.
6446
6447 2008-04-03  Richard Guenther  <rguenther@suse.de>
6448
6449         PR middle-end/35800
6450         * expr.h (try_casesi): Adjust prototype.
6451         * expr.c (try_casesi): Take fallback label as extra parameter.
6452         Use that for gen_casesi if default_label is NULL.
6453         * stmt.c (expand_case): Pass fallback label to try_casesi,
6454         make sure to fill gaps with a fallback label if default_label
6455         is not present.
6456
6457 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6458
6459         PR target/35801
6460         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6461
6462 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6463
6464         * expmed.c (extract_split_bit_field): Remove if (0) code.
6465         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6466         (do_ds_constraint): Likewise.
6467
6468 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6469
6470         * doc/cppopts.texi (-dU): Document.
6471         * c-common.h (flag_dump_macros): Update comment.
6472         * c-opts.c (handle_OPT_d): Handle -dU.
6473         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6474         dump_queued_macros, cb_used_define, cb_used_undef): New.
6475         (init_pp_output): Handle -dU.
6476         (cb_line_change): Call dump_queued_macros.
6477         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6478
6479 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6480
6481         * config/avr/predicates.md (io_address_operand): New predicate. 
6482         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6483         * config/avr/avr.c (avr_io_address_p): Remove function.
6484         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6485         'avr_io_address_p' function.
6486         (out_movhi_r_mr): (Ditto.).
6487         (out_movqi_mr_r): (Ditto.).
6488         (out_movhi_mr_r): (Ditto.).
6489         (avr_address_cost): (Ditto.).
6490
6491 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6492
6493         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6494         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6495         in 32bit mode when XMM registers are available to avoid store
6496         forwarding stalls.
6497         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6498         corresponding post-reload splitters.
6499
6500 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6501
6502         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6503         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6504         __builtin_ia32_roundss.
6505         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6506         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6507         __builtin_ia32_roundss.
6508         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6509         IX86_BUILTIN_SHUFPD here.
6510
6511 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6512
6513         * config/i386/i386.md (plogic): New.
6514         (plogicprefix): Likewise.
6515
6516         * config/i386/mmx.md (mmx_<code><mode>3): New.
6517         (mmx_and<mode>3): Removed.
6518         (mmx_ior<mode>3): Likewise.
6519         (mmx_xor<mode>3): Likewise.
6520
6521         * config/i386/sse.md (<code><mode>3): New.
6522         (*<code><mode>3): Likewise.
6523         (*<code><mode>3): Likewise.
6524         (<code><mode>3): Likewise.
6525         (*sse_<code><mode>3): Likewise.
6526         (*sse2_<code><mode>3): Likewise.
6527         (<code>tf3): Likewise.
6528         (*<code>tf3): Likewise.
6529         (and<mode>3): Likewise.
6530         (*and<mode>3): Likewise.
6531         (ior<mode>3): Removed.
6532         (*ior<mode>3): Likewise.
6533         (xor<mode>3): Likewise.
6534         (*xor<mode>3): Likewise.
6535         (*and<mode>3): Likewise.
6536         (*ior<mode>3): Likewise.
6537         (*xor<mode>3): Likewise.
6538         (and<mode>3): Likewise.
6539         (*sse_and<mode>3): Likewise.
6540         (*sse2_and<mode>3): Likewise.
6541         (andtf3): Likewise.
6542         (*andtf3): Likewise.
6543         (ior<mode>3): Likewise.
6544         (*sse_ior<mode>3): Likewise.
6545         (*sse2_ior<mode>3): Likewise.
6546         (iortf3): Likewise.
6547         (*iortf3): Likewise.
6548         (xor<mode>3): Likewise.
6549         (*sse_xor<mode>3): Likewise.
6550         (*sse2_xor<mode>3): Likewise.
6551         (xortf3): Likewise.
6552         (*xortf3): Likewise.
6553
6554 2008-04-02  Richard Guenther  <rguenther@suse.de>
6555
6556         PR tree-optimization/14495
6557         PR tree-optimization/34793
6558         * tree-vrp.c (struct switch_update): New structure.
6559         (to_remove_edges, to_update_switch_stmts): New VECs.
6560         (simplify_switch_using_ranges): New function.  Remove not taken
6561         case labels and edges.
6562         (simplify_stmt_using_ranges): Call it.
6563         (identify_jump_threads): Mark edges we have queued for removal
6564         so we don't thread them.
6565         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6566         case label vector.
6567         * tree-cfg.c (group_case_labels): Deal with missing default label.
6568         (tree_verify_flow_info): Allow missing default label.
6569         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6570         (emit_case_nodes): Likewise.
6571         (expand_case): Do not rely on the default label to be present.
6572         * expr.c (try_casesi): Deal with NULL default_label.
6573         (do_tablejump): Likewise.
6574
6575 2008-04-02  Richard Guenther  <rguenther@suse.de>
6576
6577         PR tree-optimization/14495
6578         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6579         SWITCH_EXPR here ...
6580         (vrp_visit_switch_stmt): ... but here (new function).
6581         (find_case_label_index): New helper function.
6582         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6583
6584 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6585
6586         * fwprop.c: Fix ISO-C99ism.
6587
6588 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6589
6590         PR bootstrap/35752
6591         * Makefile.in (objdir): Set it here.
6592         * configure.ac: Not here.  Find dynamic linker characteristics.
6593         * exec-tool.in: Use them.
6594         * aclocal.m4: Regenerate.
6595         * configure: Regenerate.
6596
6597 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6598
6599         * expr.c (expand_var): Delete it.
6600         * expr.h (expand_var): Delete prototype.
6601         * function.c (expand_function_start): Use expand_decl instead.
6602         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6603         langhook.
6604
6605 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6606
6607         PR rtl-optimization/35542
6608         * fwprop.c (forward_propagate_and_simplify): Replace
6609         loc_reg_mentioned_in_p with reg_mentioned_p.
6610
6611 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6612
6613         PR rtl-optimization/35281
6614         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6615         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6616         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6617         (varying_mem_p): Move above propagate_rtx.
6618         (all_uses_available_at): Do not check MEMs.
6619
6620 2008-04-02  Rafael Espindola  <espindola@google.com>
6621
6622         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6623         (register_edge_assert_for_2): Split the cond argument.
6624         (register_edge_assert_for_1): Adjust for the change in
6625         register_edge_assert_for_2.
6626         (register_edge_assert_for): Split the cond argument.
6627         (find_switch_asserts): Adjust for the change in
6628         register_edge_assert_for.
6629
6630 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6631
6632         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6633         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6634         offsets for 64-bit mingw.
6635         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6636         abi for x86_64-pc-mingw.
6637
6638 2008-04-02  Richard Guenther  <rguenther@suse.de>
6639
6640         * tree-vrp.c (extract_range_from_assert): Make sure to not
6641         produce range min/max with TREE_OVERFOW set.
6642         If merging a anti-range and a range keep the anti-range if
6643         the range covers all values of the type.
6644         (register_edge_assert_for_2): Only allow sign-changing
6645         conversions in detecting canonical range checks.  Also
6646         register an assert for the unsigned name if useful.
6647
6648         PR tree-optimization/35787
6649         * tree-vrp.c (vrp_val_max): New function.
6650         (vrp_val_min): Likewise.
6651         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6652         (vrp_val_is_min): Likewise.
6653         (supports_overflow_infinity): Use vrp_val_{min,max}.
6654         (negative_overflow_infinity): Likewise.
6655         (positive_overflow_infinity): Likewise.
6656         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6657         (is_positive_overflow_infinity): Likewise.
6658         (is_overflow_infinity): Likewise.
6659         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6660         vrp_val_is_{min,max}.
6661         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6662         to ranges if possible.  Avoid empty ranges.
6663
6664 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6665
6666         PR middle-end/35705
6667         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6668         the expression is a function address.
6669
6670 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6671
6672         PR fortran/35154, fortran/23057
6673         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6674         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6675         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6676         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6677         in common.
6678         (dbxout_syms): Check for COMMON-based symbol and wrap in
6679         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6680         in bracket for efficiency.
6681
6682         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6683         using DW_TAG_common_block + member offset.
6684         (add_pubname_string): New function.
6685         (dw_expand_expr): New function to find block name and offset for
6686         COMMON var.
6687         (common_check): New function to check whether symbol in Fortran COMMON.
6688         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6689
6690 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6691
6692         PR c/35436
6693         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6694
6695 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6696
6697         * config/v850/v850.md (casesi): Remove if (0) code.
6698         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6699         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6700
6701 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6702
6703         * config/i386/i386.md (rex64suffix): New mode attribute.
6704         (floathi<mode>2): Disable expander for SSE math.
6705         (*floathi<mode>2_1): New insn insn_and_split pattern.
6706         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6707         corresponding post-reload splitters.
6708         (*floathi<mode>2_i387): New macroized insn pattern.
6709         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6710         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6711         insn_and_split pattern.
6712         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6713         New macroized instruction patterns and corresponding post-reload
6714         splitters.
6715         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6716         and corresponding post-reload splitters.
6717         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6718         New macroized instruction patterns.
6719         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6720         macroized instruction patterns and corresponding post-reload splitters.
6721         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6722         corresponding post-reload splitters.
6723         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6724         New macroized instruction patterns.
6725         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6726         corresponding post-reload splitters.
6727         (*floatsi<mode>2_i387): New macroized instruction patterns.
6728
6729 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6730
6731         * config/i386/i386.md (smaxmin): New.
6732         (umaxmin): Likewise.
6733         (maxminiprefix): Likewise.
6734         (maxminfprefix): Likewise.
6735         (<code><mode>3): Likewise.
6736         (smin<mode>3): Removed.
6737         (smax<mode>3): Likewise.
6738
6739         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6740         (mmx_<code>v4hi3): Likewise.
6741         (mmx_<code>v8qi3): Likewise.
6742         (mmx_smaxv2sf3): Removed.
6743         (mmx_sminv2sf3): Likewise.
6744         (mmx_umaxv8qi3): Likewise.
6745         (mmx_smaxv4hi3): Likewise.
6746         (mmx_uminv8qi3): Likewise.
6747         (mmx_sminv4hi3): Likewise.
6748
6749         * config/i386/sse.md (<addsub><mode>3): New.
6750         (*<addsub><mode>3): Likewise.
6751         (<sse>_vm<addsub><mode>3): Likewise.
6752         (<maxmin><mode>3): Likewise.
6753         (*<maxmin><mode>3_finite): Likewise.
6754         (*<maxmin><mode>3): Likewise.
6755         (<sse>_vm<maxmin><mode>3): Likewise.
6756         (sse3_h<addsub>v4sf3): Likewise.
6757         (sse3_h<addsub>v2df3): Likewise.
6758         (<maxmin>v16qi3): Likewise.
6759         (*<maxmin>v16qi3): Likewise.
6760         (<maxmin>v8hi3): Likewise.
6761         (*<maxmin>v8hi3): Likewise.
6762         (*sse4_1_<maxmin><mode>3): Likewise.
6763         (*sse4_1_<maxmin><mode>3): Likewise.
6764         (add<mode>3): Removed.
6765         (*add<mode>3): Likewise.
6766         (<sse>_vmadd<mode>3): Likewise.
6767         (sub<mode>3): Likewise.
6768         (*sub<mode>3): Likewise.
6769         (<sse>_vmsub<mode>3): Likewise.
6770         (smin<mode>3): Likewise.
6771         (*smin<mode>3_finite): Likewise.
6772         (*smin<mode>3): Likewise.
6773         (<sse>_vmsmin<mode>3): Likewise.
6774         (smax<mode>3): Likewise.
6775         (*smax<mode>3_finite): Likewise.
6776         (*smax<mode>3): Likewise.
6777         (<sse>_vmsmax<mode>3): Likewise.
6778         (sse3_haddv4sf3): Likewise.
6779         (sse3_haddv2df3): Likewise.
6780         (sse3_hsubv4sf3): Likewise.
6781         (sse3_hsubv2df3): Likewise.
6782         (umaxv16qi3): Likewise.
6783         (*umaxv16qi3): Likewise.
6784         (smaxv8hi3): Likewise.
6785         (*smaxv8hi3): Likewise.
6786         (*sse4_1_smax<mode>3): Likewise.
6787         (*sse4_1_umax<mode>3): Likewise.
6788         (uminv16qi3): Likewise.
6789         (*uminv16qi3): Likewise.
6790         (sminv8hi3): Likewise.
6791         (*sminv8hi3): Likewise.
6792         (*sse4_1_smin<mode>3): Likewise.
6793         (*sse4_1_umin<mode>3): Likewise.
6794
6795 2008-04-01  Rafael Espindola  <espindola@google.com>
6796
6797         * tree-cfg.c (verify_expr): remove in_phi.
6798         (verify_stmt): Don't call walk_tree with verify_expr. Use
6799         is_gimple_min_invariant instead of is_gimple_val.
6800
6801 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6802
6803         * doc/include/gpl_v3.texi: Update for manpage generation.
6804         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6805         gpl.texi.
6806         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6807         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6808         gpl_v3.texi instead of gpl.texi.
6809         (gpl.pod): New.
6810
6811 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6812
6813         PR pch/13675
6814         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6815
6816 2008-04-01  Rafael Espindola  <espindola@google.com>
6817
6818         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6819         (extract_code_and_val_from_cond): Use
6820         extract_code_and_val_from_cond_with_ops.
6821
6822 2008-04-01  Jan Hubicka  <jh@suse.cz>
6823
6824         * function.c (free_after_compilation): Free epilogue_delay_list.
6825         (prepare_function_start): Assert that previous compilation was freed.
6826
6827 2008-04-01  Jan Hubicka  <jh@suse.cz>
6828             Jim Wilson  <wilson@tuliptree.org>
6829             Andreas Tobler <andreast@gcc.gnu.org>
6830
6831         PR middle-end/35781
6832         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6833         rtl.emit instead cfun->emit.
6834         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6835         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6836
6837 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6838
6839         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6840
6841 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6842
6843         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6844         New options
6845         (fprofile-use): Add var flag_profile_use
6846         * coverage.c (coverage_begin_output): Do not open a gcno file for
6847         output only if -ftest-coverage is set.
6848         Do not add getpwd() to gcda file path.
6849         (build_gcov_info): Check the new flag
6850         flag_profile_datafile_relative_path.
6851         (coverage_init): Use profile_data_prefix.
6852         Read profile counter only if flag_profile_use is set.
6853         * opts.c (common_handle_option): New option fprofile-use=,
6854         fprofile-dir=, fprofile-generate=.
6855         * toplev.c (profile_data_prefix): New variable definition.
6856         * toplev.h (profile_data_prefix): New declaration.
6857         * doc/invoke.tex (Option Summary, Optimization Options):
6858         Add new options.
6859
6860 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6861
6862         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6863         use tmp consistently.
6864
6865         PR target/35695
6866         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6867         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6868         UNSPEC_FR_RECIP_APPROX_RES.
6869         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6870
6871 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6872
6873         PR c/35750
6874         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6875
6876 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6877
6878         PR middle-end/30186
6879         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6880         element of the vector via a pointer.
6881
6882 2008-03-31  Ian Lance Taylor  <iant@google.com>
6883
6884         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6885
6886 2008-03-31  Jan Hubicka  <jh@suse.cz>
6887
6888         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6889         get_arg_pointer_save_area.
6890         * expr.c (init_expr): Just clear out rtl.expr.
6891         * function.c (free_after_compilation): Clear out whole RTL structure.
6892         (get_func_frame_size): Merge into ...
6893         (get_frame_size): ... this one.
6894         (assign_stack_local_1): Merge into ...
6895         (assign_stack_local): ... this one.
6896         (expand_function_end): Update call of get_arg_pointer_save_area.
6897         (get_art_pointer_save_area): Remove cfun argument.
6898         * function.h (emit_status): regno_pointer_align does not need length
6899         attribute. Move x_regno_reg_rtx to ...
6900         (regno_reg_rtx): ... new global array.
6901         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6902         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6903         apply_args_value, forced_labels, stack_pointer_delta):
6904         Update accestors.
6905         (struct varasm_status): Move here from varasm.c
6906         (struct rtl_data): New. Move here some fields from struct function.
6907         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6908         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6909         used_temp_slots avail_temp_slots, temp_slot_level,
6910         nonlocal_goto_handler_labels): Update accesstors.
6911         (rtl): New global variable.
6912         (struct function): Move some fileds to rtl_data.
6913         (get_arg_pointer_save_area): Update prototype.
6914         * emit-rtl.c (rtl): Declare.
6915         (regno_reg_rtx): Declare.
6916         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6917         Update.
6918         (gen_reg_rtx): Update.
6919         (init_virtual_regs): Do not tate emit_status argument.
6920         (init_emit): Do not allocate emit.
6921         * varasm.c (varasm_statuc): Move to function.h.
6922         (n_deferred_constatns): Update accestor.
6923         (init_varasm_status): Do not allocate varasm_status.
6924         (force_const_mem, get_pool_size, output_constant_pool): Update.
6925         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6926         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6927
6928 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6929
6930         PR rtl-optimization/35729
6931         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6932         references.
6933
6934 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6935
6936         PR target/32000
6937         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6938         load/store if memory is unaligned.
6939         (*movti_rex64): Likewise.
6940
6941         * config/i386/predicates.md (misaligned_operand): New.
6942
6943 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6944
6945         PR tree-opt/35431
6946         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6947         complex types.
6948
6949 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6950
6951         * config/ia64/constraints.md: Add 'j' constraint.
6952         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6953         (movdi_internal): Likewise.
6954
6955 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6956
6957         PR c/35748
6958         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6959
6960 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6961
6962         PR target/35757
6963         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6964         proper error message for the third argument on blendpd and
6965         blendps.
6966
6967         * config/i386/sse.md (blendbits): New.
6968         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6969
6970 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6971
6972         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6973
6974 2008-03-30  Richard Guenther  <rguenther@suse.de>
6975
6976         PR middle-end/31023
6977         * fold-const.c (fold_sign_changed_comparison): Do leave
6978         conversions to base-types alone.
6979
6980 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6981
6982         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6983         the link register if one altivec register is be saved.
6984
6985 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6986
6987         * final.c (final_scan_insn): Remove if (0) code.
6988
6989 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6990
6991         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6992
6993 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6994
6995         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6996         of V4SFmode to ix86_binary_operator_ok.
6997
6998 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6999
7000         * config/i386/i386.c (override_options): Initialize
7001         ix86_veclib_handler to ix86_veclibabi_svml when
7002         -mveclibabi=svml is used.
7003         (ix86_veclibabi_svml): New function for SVML ABI style
7004         vectorization support.
7005         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
7006
7007 2008-03-28  Rafael Espindola  <espindola@google.com>
7008
7009         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
7010         (tree_binary_nonnegative_warnv_p): Make it public.
7011         (tree_single_nonnegative_warnv_p): Make it public.
7012         (tree_invalid_nonnegative_warnv_p): Make it public.
7013         (tree_unary_nonzero_warnv_p): Make it public.
7014         (tree_binary_nonzero_warnv_p): Make it public
7015         (tree_single_nonzero_warnv_p): Make it public.
7016         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
7017         (extract_range_from_binary_expr): Split the expr argument.
7018         (extract_range_from_unary_expr): Split the expr argument.
7019         (extract_range_from_comparison): Split the expr argument.
7020         (extract_range_from_expr): Use the new aux functions.
7021         (vrp_evaluate_conditional_warnv): Use
7022         vrp_evaluate_conditional_warnv_with_ops.
7023         * tree.h (tree_unary_nonzero_warnv_p): Declare.
7024         (tree_binary_nonzero_warnv_p): Declare.
7025         (tree_single_nonzero_warnv_p): Declare.
7026         (tree_expr_nonzero_warnv_p): Declare.
7027         (tree_unary_nonnegative_warnv_p): Declare.
7028         (tree_binary_nonnegative_warnv_p): Declare.
7029         (tree_single_nonnegative_warnv_p): Declare.
7030         (tree_invalid_nonnegative_warnv_p): Declare.
7031
7032 2008-03-28  Richard Guenther  <rguenther@suse.de>
7033
7034         PR tree-optimization/30317
7035         PR tree-optimization/30911
7036         PR tree-optimization/34793
7037         * tree-vrp.c (set_and_canonicalize_value_range): New function.
7038         (struct assert_locus_d): New member EXPR.
7039         (register_new_assert_for): Add EXPR parameter to support
7040         ASSERT_EXPR <name, expr OP limit>.
7041         (register_edge_assert_for_1): Adjust callers.
7042         (find_assert_locations): Likewise.
7043         (process_assert_insertions_for): Build condition from expression.
7044         (extract_range_from_assert): Handle ASSERT_EXPRs
7045         of the form ASSERT_EXPR <name, expr OP limit>.
7046         (register_edge_assert_for_2): New helper registering
7047         asserts for comparisons.  Recognize range tests of the form
7048         (unsigned)i - CST1 OP CST2.
7049         (register_edge_assert_for_1): Use it.
7050         (register_edge_assert_for): Likewise.
7051         (needs_overflow_infinity): Integer sub-types
7052         do not need overflow infinities.
7053         (vrp_val_is_max): The extreme values of integer sub-types
7054         are those of the base type.
7055         (vrp_val_is_min): Likewise.
7056         * tree.def (ASSERT_EXPR): Document extra allowed conditional
7057         expressions.
7058
7059 2008-03-28  Nick Clifton  <nickc@redhat.com>
7060
7061         PR target/31110
7062         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
7063         Return GENERAL_REGS for stack adjustment reloads.
7064
7065 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7066
7067         PR target/31334
7068         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
7069         const_vector when all the vectors are constant.
7070
7071 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
7072
7073         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
7074         comparisons.
7075         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
7076         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
7077         (scc_sf): New.
7078         (s<code>_sf): Use new scc_sf attribute for opcode names.
7079
7080 2008-03-27  Tom Tromey  <tromey@redhat.com>
7081
7082         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
7083         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
7084         config/spu/t-spu-elf, config/i386/t-interix,
7085         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
7086         config/i386/x-darwin, config/i386/x-mingw32,
7087         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
7088         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
7089         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
7090         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
7091         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
7092         config/rs6000/x-darwin, config/rs6000/t-rs6000,
7093         config/score/t-score-elf, config/arm/t-strongarm-pe,
7094         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
7095         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
7096         Revert automatic dependency patch.
7097
7098 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7099
7100         PR target/35657
7101         * config/i386/i386.c (ix86_function_arg_boundary): Align
7102         decimal floating point to its natural boundary.
7103
7104 2008-03-27  Richard Guenther  <rguenther@suse.de>
7105
7106         PR middle-end/35716
7107         * fold-const.c (fold_comparison): Restrict distinct decl
7108         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
7109         solely rely on operand_equal_p.
7110
7111 2008-03-27  Richard Guenther  <rguenther@suse.de>
7112
7113         PR c/32511
7114         * c-common.c (handle_weak_attribute): Reject combination of
7115         weak and inline.
7116
7117 2008-03-27  Richard Guenther  <rguenther@suse.de>
7118
7119         PR tree-optimization/32810
7120         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
7121         conversions from DECL_INITIAL.
7122         (fold_const_aggregate_ref): Likewise from constructor elements.
7123
7124 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
7125
7126         * tree-affine.h (aff_combination_expand): Declare.
7127         (get_inner_reference_aff): Likewise.
7128         * tree-affine.c (aff_combination_expand): Split out from
7129         tree_to_aff_combination_expand.
7130         (get_inner_reference_aff): New function.
7131         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
7132         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
7133         (struct lim_aux_data): sm_done field removed.
7134         (mem_ref_loc_p, mem_ref_locs_p): New types.
7135         (struct mem_ref): Added id, stored, accesses_in_loop,
7136         indep_loop, dep_loop, indep_ref, dep_ref fields.
7137         Removed is_stored, locs and next fields.
7138         (memory_accesses): New variable.
7139         (movement_possibility): Do not allow moving statements
7140         that store to memory.
7141         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
7142         New functions.
7143         (determine_max_movement): For statements with memory references,
7144         find the outermost loop in that the reference is independent.
7145         (move_computations_stmt): Mark the virtual operands for renaming.
7146         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
7147         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
7148         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
7149         add_vop_ref_mapping, create_vop_ref_mapping_loop,
7150         create_vop_ref_mapping, analyze_memory_references,
7151         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
7152         get_all_locs_in_loop, ref_always_accessed_p,
7153         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
7154         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
7155         store_motion_loop, store_motion): New functions.
7156         (struct vop_to_refs_elt): New type.
7157         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
7158         memref_hash, memref_eq, hoist_memory_references): Rewritten.
7159         (schedule_sm): Replaced by...
7160         (execute_sm): ... this.
7161         (determine_lsm_ref, hoist_memory_references,
7162         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
7163         find_more_ref_vops, free_mem_ref, free_mem_refs,
7164         determine_lsm_loop, determine_lsm): Removed.
7165         (tree_ssa_lim_finalize): Free data structures used by store motion.
7166         (tree_ssa_lim): Call analyze_memory_references.  Use
7167         store_motion instead of determine_lsm.
7168
7169 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7170
7171         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
7172         rename tmake_file to m68hc11/t-m68hc11.
7173         (mcore): Set inhibit_libc to true.
7174         * config.host (alpha*-dec-*vms*): Set extra_programs.
7175         (interix3*): Don't use host_xmake_file.
7176         * configure.ac: Let config.gcc override inhibit_libc.
7177         * configure: Regenerate.
7178
7179         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
7180         * config/t-openbsd-thread: Remove commented out lines.
7181         
7182         * config/x-interix: Remove.
7183
7184         * config/m68hc11/t-m68hc11-gas: Rename to...
7185         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
7186
7187         * config/mcore/t-mcore: Remove T_CFLAGS.
7188         * config/mcore/t-mcore-pe: Likewise.
7189
7190 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7191
7192         * configure.ac: Replace custom __GNU_SOURCE test with
7193         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
7194         * aclocal.m4: Regenerate.
7195         * configure: Regenerate.
7196         * config.in: Regenerate.
7197
7198 2008-03-27  Richard Guenther  <rguenther@suse.de>
7199
7200         * fold-const.c (target.h): Include.
7201         (fold_comparison): Fold comparison of addresses of decls
7202         that bind locally or of constants.  Consolidate address folding code.
7203         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
7204         results from fold_binary_to_constant.
7205         (compare_values_warnv): Likewise.
7206
7207 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
7208
7209         PR middle-end/35429
7210         * fold-const.c (fold_truthop): Check for integeral types when folding
7211         a == 0 && b == 0 and a != 0 || b != 0 .
7212
7213 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7214
7215         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7216
7217 2008-03-26  Andreas Schwab  <schwab@suse.de>
7218
7219         * doc/invoke.texi: Fix use of @item vs. @itemx.
7220
7221 2008-03-26  Tom Tromey  <tromey@redhat.com>
7222
7223         * Makefile.in (build/gensupport.o, build/print-rtl.o,
7224         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7225         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7226         build/gencodes.o, build/genconditions.o, build/genconfig.o,
7227         build/genconstants.o, build/genemit.o, build/genextract.o,
7228         build/genflags.o, build/genmddeps.o, build/genopinit.o,
7229         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7230         options.h.
7231
7232 2008-03-26  Richard Guenther  <rguenther@suse.de>
7233
7234         Revert
7235         2008-03-26  Richard Guenther  <rguenther@suse.de>
7236
7237         * fold-const.c (target.h): Include.
7238         (fold_comparison): Fold comparison of addresses of two decls
7239         that bind locally.  Consolidate address folding code.
7240
7241 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7242
7243         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7244         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7245         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7246         dconstsqrt2, dconstthird, dconste and/or dconst10.
7247         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7248         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7249         dconstsqrt2, dconste): Delete.
7250         (init_emit_once): Likewise.  Simplify initializing dconstm1.
7251         Constify variable.
7252         * real.c (get_real_const): New.
7253         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7254         dconstsqrt2, dconste): Delete.
7255         (real_value_const, get_real_const): New.
7256
7257 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7258
7259         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7260
7261         * config/i386/i386.c (ix86_function_arg_boundary): Check
7262         BIGGEST_ALIGNMENT instead of 128.
7263         (setup_incoming_varargs_64): Likewise.
7264
7265 2008-03-26  Tom Tromey  <tromey@redhat.com>
7266
7267         * Makefile.in (DEPFILES): Add missing '/'.
7268
7269 2008-03-26  Richard Guenther  <rguenther@suse.de>
7270
7271         * fold-const.c (target.h): Include.
7272         (fold_comparison): Fold comparison of addresses of two decls
7273         that bind locally.  Consolidate address folding code.
7274
7275 2008-03-26  Nick Clifton  <nickc@redhat.com>
7276
7277         PR target/31232
7278         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7279         not allow INT+INT as a legitimate addressing mode.
7280
7281 2008-03-26  Richard Guenther  <rguenther@suse.de>
7282
7283         * tree-flow.h (widen_bitfield): Remove declaration.
7284         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7285         (widen_bitfield): Remove function.
7286         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7287         code.
7288
7289 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7290
7291         PR target/31558
7292         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7293         error_mark_node's.
7294
7295 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7296
7297         PR rtl-optimization/35232
7298         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7299         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7300         reg_reloaded_call_part_clobbered here.
7301         (reload_regs_reach_end_p): New function.
7302         (reload_reg_rtx_for_input): New variable.
7303         (reload_reg_rtx_for_output): Likewise.
7304         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7305         when reassigning a pseudo register.  Load reloadreg from 
7306         reload_reg_rtx_for_input, moving the mode and register
7307         calculation to...
7308         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7309         instead of the original when deciding whether an input reload
7310         would be a no-op or whether an output reload can be deleted.
7311         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7312         when setting up new_spill_reg_store.  Load it from
7313         reload_reg_rtx_for_output, moving the mode and register
7314         calculation to...
7315         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7316         instead of the original when deciding whether an output reload
7317         would be a no-op.  Do the same when modifying insn notes.
7318         Use rtx_equal_p instead of == to compare the registers.
7319         (inherit_piecemeal_p): Take a mode and two register numbers
7320         as argument.
7321         (emit_reload_insns): Clear new_spill_reg_store for every hard
7322         register in the reload register.  Remove spill registers
7323         from reg_reloaded_valid before considering whether to record
7324         inheritance information for them.  Use reload_reg_rtx_for_output
7325         instead of reg_rtx when recording output reloads.  Use
7326         reload_reg_rtx_for_input instead of reg_rtx when recording
7327         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7328         at the same time as setting reg_reloaded_valid.
7329         (delete_output_reload): Add a new_reload_reg parameter and use it
7330         instead of rld[j].reg_rtx.
7331         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7332         calls accordingly.
7333
7334 2008-03-25  Tom Tromey  <tromey@redhat.com>
7335
7336         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7337         (build/genattr.o): Likewise.
7338         (build/genattrtab.o): Likewise.
7339         (build/gencodes.o): Likewise.
7340         (build/genconfig.o): Likewise.
7341         (build/genconstants.o): Likewise.
7342         (build/genemit.o): Likewise.
7343         (build/genextract.o): Likewise.
7344         (build/genflags.o): Likewise.
7345
7346 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7347         
7348         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7349         instead of size_int for integer types.
7350         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7351         to match type of MINUS_EXPR.
7352         
7353 2008-03-25  Tom Tromey  <tromey@redhat.com>
7354
7355         * configure: Rebuilt.
7356         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7357         Makefile.
7358
7359 2008-03-25  Tom Tromey  <tromey@redhat.com>
7360
7361         * config/x-solaris (host-solaris.o): Update.
7362         * config/x-linux (host-linux.o): Update.
7363         * config/x-hpux (host-hpux.o): Update.
7364         * config/x-darwin (host-darwin.o): Update.
7365         * config/v850/t-v850e (v850-c.o): Update.
7366         * config/v850/t-v850 (v850-c.o): Update.
7367         * config/t-vxworks (vxworks.o): Update.
7368         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7369         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7370         * config/spu/t-spu-elf (spu-c.o): Update.
7371         (spu.o): Remove.
7372         * config/sh/t-symbian (sh-c.o): Update.
7373         (symbian.o): Update.
7374         * config/sh/t-sh (sh-c.o): Update.
7375         * config/score/t-score-elf (score7.o, score3.o): Update.
7376         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7377         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7378         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7379         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7380         (rs6000.o): Remove.
7381         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7382         * config/m32c/t-m32c (m32c-pragma.o): Update.
7383         * config/ia64/t-ia64 (ia64-c.o): Update.
7384         * config/i386/x-mingw32 (host-mingw32.o): Update.
7385         * config/i386/x-i386 (driver-i386.o): Update.
7386         * config/i386/x-darwin (host-i386-darwin.o): Update.
7387         * config/i386/x-cygwin (host-cygwin.o): Update.
7388         * config/i386/t-nwld (nwld.o): Update.
7389         * config/i386/t-netware (netware.o): Update.
7390         * config/i386/t-interix (winnt.o): Update.
7391         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7392         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7393         msformat-c.o): Update.
7394         * config/bfin/t-bfin-linux (generated_files): Add
7395         linux-sysroot-suffix.h.
7396         * config/arm/t-wince-pe (pe.o): Update.
7397         * config/arm/t-strongarm-pe (pe.o): Update.
7398         * config/arm/t-pe (pe.o): Update.
7399         * config/arm/t-arm (arm-c.o): Update.
7400         * doc/install.texi (Prerequisites): Require make 3.80.
7401         * Makefile.in: Remove .o targets.
7402         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7403         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7404         (simple_generated_h, simple_generated_c): Move earlier.
7405         (generated_files): New variable.
7406         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7407         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7408         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7409         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7410         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7411         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7412         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7413         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7414         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7415         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7416         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7417         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7418         (.c.o): Remove.
7419         (COMPILE.base, COMPILE): New variables.
7420         (%.o): New pattern rule.
7421         (ALL_HOST_OBJS): New variable.
7422         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7423         (dummy-checksum.o, cc1-checksum.o): Remove.
7424         (DRIVER_SHLIB): New variable.
7425         (DRIVER_DEFINES): Use it.
7426         (gencondmd.c): Move out of build/.
7427         (s-conditions): Update.
7428         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7429         (ALL_BUILD_OBJS): Likewise.
7430         (build/%.o): Use BUILDCOMPILE.
7431         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7432         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7433         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7434         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7435         build/genconfig.o, build/genconstants.o, build/genemit.o,
7436         build/genextract.o, build/genflags.o, build/genmddeps.o,
7437         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7438         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7439         build/gen-protos.o, build/scan.o, build/fix-header.o,
7440         build/scan-decls.o): Simplify.
7441         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7442         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7443         prefix.o, toplev.o): Reduce to variable setting.
7444         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7445         ($(out_object_file), gcc-options.o): New targets.
7446         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7447         * configure: Rebuilt.
7448         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7449         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7450
7451 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7452
7453         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7454         complain when we hit an error, return ERROR_MARK_NODE.
7455
7456 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7457
7458         * config/sh/constraints.md (Pso, Psz): New constraints.
7459         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7460         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7461
7462 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7463
7464         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7465         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7466
7467 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7468
7469         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7470         (prefetch_sh2a): New.   
7471
7472 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7473             Naveen.H.S  <naveen.hs@kpitcummins.com>
7474
7475         * config/sh/constraints.md (I28): New constraint.
7476         * config/sh/sh.c (broken_move): Add support for movi20s.
7477         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7478
7479 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7480             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7481             Naveen.H.S  <naveen.hs@kpitcummins.com>
7482
7483         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7484         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7485         (print_operand): Handle resbank in %@ operand code.
7486         (sh_encode_section_info): New.
7487         (push_regs): Add conditions for resbank.
7488         (sh_expand_epilogue): Likewise.
7489         (sh_insert_attributes): Likewise.
7490         (sh_attribute_table): Likewise.
7491         (sh_handle_resbank_handler_attribute): New.
7492         (sh2a_handle_function_vector_handler_attribute): New.
7493         (sh2a_is_function_vector_call): New.
7494         (sh2a_get_function_vector_number): New.
7495         (sh2a_function_vector_p): New.
7496         (sh_cfun_resbank_handler_p): New.
7497         * config/sh/sh.md (calli): Emit jsr/n if possible.
7498         (calli_tbr_rel): New.
7499         (calli_pcrel): Emit jsr/n if possible.
7500         (return_i): Emit rts/n if possible.
7501         (call_valuei_tbr_rel): New.
7502         (call_valuei_pcrel): Add condition for SH2A target.
7503         (call_value): Likewise.
7504         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7505         (sh2a_get_function_vector_number): Likewise.
7506         (sh2a_is_function_vector_call): Likewise.
7507         * doc/extend.texi: Document TBR relative addressing of SH2A.
7508         (resbank): Add description for SH2A.
7509
7510 2008-03-24  Richard Guenther  <rguenther@suse.de>
7511
7512         PR c/22371
7513         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7514         pointer assignments change conversions according to middle-end rules.
7515         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7516         * configure.ac: Include type checking in yes.
7517         * configure: Regenerate.
7518
7519 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7520
7521         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7522         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7523         
7524 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7525
7526         * gthr-vxworks.h (UNUSED): Define.
7527
7528 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7529
7530         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7531
7532 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7533
7534         * doc/extend.texi (Function Attributes): Add missing comma in the
7535         example of the "alloc_size" attribute.
7536         
7537 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7538
7539         Revert:
7540         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7541
7542         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7543         32bit host.
7544
7545         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7546
7547         PR target/35496
7548         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7549         of the underlying type of a MS bitfield layout to the natural
7550         alignment of the type.
7551
7552         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7553
7554         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7555         to their natural alignment to avoid store forwarding stalls.
7556
7557 2008-03-22  Richard Guenther  <rguenther@suse.de>
7558
7559         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7560         For PHI nodes verify the address is invariant.
7561         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7562         (get_symbol_constant_value): Use is_gimple_min_invariant.
7563         (maybe_fold_stmt_indirect): Likewise.
7564
7565 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7566
7567         PR rtl-optimization/33927
7568         * Makefile.in (dse.o): Depend on $(TM_P_H).
7569         * expr.h (extract_low_bits): Declare.
7570         * expmed.c (extract_low_bits): New function.
7571         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7572         * dse.c: Include tm_p.h.
7573         (find_shift_sequence): Remove the read_reg argument and return the
7574         read value.  Emit the instructions instead of returning them.
7575         Iterate on new_mode rather than calculating it each time.
7576         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7577         source to NEW_MODE and extract_low_bits to convert the shifted
7578         value to READ_MODE.
7579         (replace_read): Allow the load and store to have different mode
7580         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7581         or extraction instructions before trying the replacement.  Update
7582         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7583
7584 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7585
7586         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7587         to their natural alignment to avoid store forwarding stalls.
7588
7589 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7590
7591         PR target/27946
7592         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7593         encouraging but not allowing gprs for input;
7594         change the input constraint to !f#r.
7595         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7596         gprs for output;
7597         change the output constraint to !f#r.
7598
7599 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7600
7601         PR target/13958
7602         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7603         corresponding post-reload splitters.
7604         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7605         when x87 FP math is selected.
7606         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7607         New function prototype.
7608         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7609         unreachable function to ease macroization of insn patterns.
7610
7611 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7612
7613         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7614         reference dumps if ddr is NULL or dependence is unknown.
7615
7616 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7617
7618         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7619         unsigned extension into account.
7620         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7621         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7622         Do computations on a scratch register.
7623
7624 2008-03-21  Richard Guenther  <rguenther@suse.de>
7625
7626         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7627         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7628         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7629         * tree-ssa-dom.c (record_equality): Likewise.
7630         * tree-inline.c (copy_body_r): Likewise.
7631         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7632         TREE_INVARIANT.
7633
7634 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7635
7636         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7637         as 'delete_unused' argument.
7638
7639 2008-03-20  Richard Guenther  <rguenther@suse.de>
7640
7641         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7642         special casing of constant qualifiers.
7643         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7644         care about them in general.
7645         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7646         regardless of their type.
7647         (fold_stmt_r): Forcefully fold *& if we end up with that.
7648
7649 2008-03-20  Paul Brook  <paul@codesourcery.com>
7650
7651         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7652         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7653         linker flags.
7654         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7655         definition.
7656         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7657         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7658
7659 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7660
7661         * common.opt (Wmudflap): New option.
7662         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7663         (mx_register_decls): Likewise.
7664         (mudflap_finish_file): Likewise.
7665         * doc/invoke.texi: Document -Wno-mudflap.
7666
7667 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7668
7669         * c-format.c (replace_format_name_to_system_name): New.
7670         (cmp_attribs): New.
7671         (convert_format_name_to_system_name): New.
7672         (decode_format_attr): Add use of convert_format_name_to_system_name.
7673         (format_types_orig): Add gnu_ prefix to names.
7674         (check_format_info_main): Special treating of \0 escaped names for
7675         supporting multi-character format specifiers as I32, I64.
7676         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7677         (gnu_target_overrides_format_attributes): New.
7678         * c-format.h: Add structure target_ovr_attr to hold
7679         system specific formatter names.
7680         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7681         msformat-c.o file to c_target_objs and cxx_target_objs.
7682         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7683         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7684         (TARGET_N_FORMAT_TYPES): New.
7685         * config/i386/msformat-c.c: New.
7686         * config/i386/t-cygming: Add build rule for msformat-c.o.
7687         * doc/extend.texi: Add new format names gnu_* and ms_* and
7688         further details.
7689         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7690
7691 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7692
7693         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7694         optimizations turned on under -O3.
7695         (ftree-vectorize): Add that the flag is turned on with -O3.
7696
7697 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7698
7699         * regmove.c (try_auto_increment): Fix spelling error in comment.
7700         * final.c (final_scan_insn): Likewise.
7701
7702 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7703
7704         PR target/14552
7705         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7706         allocator preferences for "y" and "r" class registers.
7707         ("*mov<mode>_internal"): Ditto.
7708         ("*movv2sf_internal_rex64"): Ditto.
7709         ("*movv2sf_internal"): Ditto.
7710
7711 2008-03-19  Michael Matz  <matz@suse.de>
7712
7713         PR middle-end/35616
7714         * calls.c (expand_call): Check overlap of arguments with call
7715         address for sibcalls.
7716
7717 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7718
7719         PR target/35496
7720         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7721         of the underlying type of a MS bitfield layout to the natural
7722         alignment of the type.
7723
7724 2008-03-19  Jan Hubicka  <jh@suse.cz>
7725
7726         PR other/35094
7727         * toplev.c (decode_d_option): Handle all CPP flags.
7728         * tree-vrp.c: Update tree_pass descriptors.
7729         * regrename.c: Update tree_pass descriptors.
7730         * fwprop.c: Update tree_pass descriptors.
7731         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7732         * tree-into-ssa.c: Update tree_pass descriptors.
7733         * tree-dump.c: Update tree_pass descriptors.
7734         * tree-complex.c: Update tree_pass descriptors.
7735         * tree-dump.h: Update tree_pass descriptors.
7736         * see.c: Update tree_pass descriptors.
7737         * cgraphbuild.c: Update tree_pass descriptors.
7738         * tracer.c: Update tree_pass descriptors.
7739         * tree-loop-distribution.c: Update tree_pass descriptors.
7740         * cgraph.c: Update tree_pass descriptors.
7741         * postreload-gcse.c: Update tree_pass descriptors.
7742         * postreload.c: Update tree_pass descriptors.
7743         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7744         * tree-tailcall.c: Update tree_pass descriptors.
7745         * tree-pass.h (tree_opt_pass): Rename to ...
7746         (opt_pass) ... this one; add "type" field and remove letter field.
7747         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7748         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7749         all_lowering_passes): Update declaration.
7750         * ipa-cp.c: Update tree_pass descriptors.
7751         * final.c: Update tree_pass descriptors.
7752         * omp-low.c: Update tree_pass descriptors.
7753         * tree-ssa-dse.c: Update tree_pass descriptors.
7754         * ipa-reference.c: Update tree_pass descriptors.
7755         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7756         * auto-inc-dec.c: Update tree_pass descriptors.
7757         * reorg.c: Update tree_pass descriptors.
7758         * cgraphunit.c: Update tree_pass descriptors.
7759         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7760         * tree-ssa-ccp.c: Update tree_pass descriptors.
7761         * df-core.c: Update tree_pass descriptors.
7762         * mode-switching.c: Update tree_pass descriptors.
7763         * tree-nomudflap.c: Update tree_pass descriptors.
7764         * modulo-sched.c: Update tree_pass descriptors.
7765         * ipa-pure-const.c: Update tree_pass descriptors.
7766         * cse.c: Update tree_pass descriptors.
7767         * web.c: Update tree_pass descriptors.
7768         * tree-stdarg.c: Update tree_pass descriptors.
7769         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7770         * tree-ssa-dom.c: Update tree_pass descriptors.
7771         * tree-nrv.c: Update tree_pass descriptors.
7772         * tree-ssa-alias.c: Update tree_pass descriptors.
7773         * loop-init.c: Update tree_pass descriptors.
7774         * gimple-low.c: Update tree_pass descriptors.
7775         * ipa-inline.c: Update tree_pass descriptors.
7776         * tree-ssa-sink.c: Update tree_pass descriptors.
7777         * global.c: Update tree_pass descriptors.
7778         * ifcvt.c: Update tree_pass descriptors.
7779         * jump.c: Update tree_pass descriptors.
7780         * predict.c: Update tree_pass descriptors.
7781         * tree-ssa-loop.c: Update tree_pass descriptors.
7782         * recog.c: Update tree_pass descriptors.
7783         * dse.c: Update tree_pass descriptors.
7784         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7785         * tree-eh.c: Update tree_pass descriptors.
7786         * regmove.c: Update tree_pass descriptors.
7787         * local-alloc.c
7788         * function.c: Update tree_pass descriptors.
7789         * tree-vectorizer.c: Update tree_pass descriptors.
7790         * gcse.c: Update tree_pass descriptors.
7791         * ipa-type-escape.c: Update tree_pass descriptors.
7792         * tree-if-conv.c: Update tree_pass descriptors.
7793         * init-regs.c: Update tree_pass descriptors.
7794         * ipa.c: Update tree_pass descriptors.
7795         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7796         * rtl-factoring.c: Update tree_pass descriptors.
7797         * lower-subreg.c: Update tree_pass descriptors.
7798         * bt-load.c: Update tree_pass descriptors.
7799         * tree-dfa.c: Update tree_pass descriptors.
7800         * except.c: Update tree_pass descriptors.
7801         * emit-rtl.c: Update tree_pass descriptors.
7802         * cfgexpand.c: Update tree_pass descriptors.
7803         * tree-cfgcleanup.c: Update tree_pass descriptors.
7804         * cfgcleanup.c: Update tree_pass descriptors.
7805         * tree-ssa-pre.c: Update tree_pass descriptors.
7806         * tree-sra.c: Update tree_pass descriptors.
7807         * tree-mudflap.c: Update tree_pass descriptors.
7808         * tree-ssa-copy.c: Update tree_pass descriptors.
7809         * cfglayout.c: Update tree_pass descriptors.
7810         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7811         * tree-ssa-dce.c: Update tree_pass descriptors.
7812         * tree-ssa.c: Update tree_pass descriptors.
7813         * regclass.c: Update tree_pass descriptors.
7814         * integrate.c: Update tree_pass descriptors.
7815         * tree-optimize.c: Update tree_pass descriptors.
7816         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7817         * tree-object-size.c: Update tree_pass descriptors.
7818         * combine.c: Update tree_pass descriptors.
7819         * tree-outof-ssa.c: Update tree_pass descriptors.
7820         * bb-reorder.c: Update tree_pass descriptors.
7821         * stack-ptr-mod.c: Update tree_pass descriptors.
7822         * var-tracking.c: Update tree_pass descriptors.
7823         * tree-profile.c: Update tree_pass descriptors.
7824         * tree-vect-generic.c: Update tree_pass descriptors.
7825         * reg-stack.c: Update tree_pass descriptors.
7826         * sched-rgn.c: Update tree_pass descriptors.
7827         * tree-ssa-structalias.c: Update tree_pass descriptors.
7828         * tree-cfg.c: Update tree_pass descriptors.
7829         * passes.c (current_pass): Update declaration.
7830         (finish_optimization_passes): Update.
7831         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7832         (register_one_dump_file, register_dump_files_1, next_pass_1):
7833         Update arguments.
7834         (init_optimization_passes): Update handling of new types.
7835         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7836         * ipa-struct-reorg.c: Update tree_pass descriptors.
7837         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7838         * combine-stack-adj.c: Update tree_pass descriptors.
7839         * cfgrtl.c: Update tree_pass descriptors.
7840         * dce.c: Update tree_pass descriptors.
7841         * tree-ssanames.c: Update tree_pass descriptors.
7842
7843 2008-03-19  Richard Guenther  <rguenther@suse.de>
7844
7845         PR middle-end/35609
7846         * tree-ssa.c (walk_data): New structure.
7847         (warn_uninitialized_var): If not always_executed warn with "maybe"
7848         instead of "is".
7849         (execute_early_warn_uninitialized): Compute post-dominators.
7850         Initialize always_executed before processing each basic block.
7851
7852 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7853
7854         PR target/35504
7855         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7856         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7857
7858 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7859
7860         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7861
7862 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7863
7864         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7865         is true.
7866         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7867         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7868         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7869         target after ignore has been set, and move there also the commputation
7870         of subtarget and original_target.
7871         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7872         (LANG_HOOKS_INITIALIZER): Remove it.
7873         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7874
7875 2008-03-18  Richard Guenther  <rguenther@suse.de>
7876
7877         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7878         found an expression with constants, note that in the VN for the lhs.
7879         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7880         fold them to constants if possible.  Run cleanup_cfg if done so.
7881         (execute_pre): Return todo.
7882         (do_pre): Likewise.
7883         (execute_fre): Likewise.
7884         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7885         of constants.
7886         (get_prop_source_stmt): Look through pointer conversions.
7887
7888 2008-03-18  Jan Hubicka  <jh@suse.cz>
7889
7890         * tree-pretty-print.c: Include predict.h.
7891         (dump_generic_node): Dump predictor.
7892         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7893         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7894         * gimple-low.c (lower_stmt): Likewise.
7895         * expr.c (expand_expr_real): Likewise.
7896         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7897         them.
7898         (build_predict_expr, build_predict_expr): New.
7899         * predict.h (predictor_name, build_predict_expr): Update.
7900         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7901         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7902         * predict.def (PRED_CONTINUE): Update hitrate.
7903         * tree.def (PREDICT_EXPR): Define.
7904         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7905         do not handle BIND_EXPR.
7906         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7907         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7908         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7909         operands.
7910
7911 2008-03-18  Michael Matz  <matz@suse.de>
7912
7913         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7914
7915 2008-03-18  Richard Guenther  <rguenther@suse.de>
7916
7917         * tree-gimple.h (is_gimple_invariant_address): Declare.
7918         (is_gimple_constant): Likewise.
7919         * tree-gimple.c (is_gimple_constant): New function.
7920         (is_gimple_invariant_address): Likewise.
7921         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7922         and is_gimple_invariant_address.
7923         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7924         previous change.
7925         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7926         an addressable base.
7927
7928 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7929
7930         PR middle-end/35611
7931         * gimplify.c (gimplify_expr): Gimplify second operand of
7932         OMP_ATOMIC_LOAD.
7933
7934 2008-03-17  Richard Guenther  <rguenther@suse.de>
7935
7936         PR tree-optimization/19637
7937         * fold-const.c (fold_unary): Remove restrictions of removing
7938         intermediate pointer-conversions (P2)(P1)P0.
7939         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7940         conversion to void pointer.
7941         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7942
7943 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7944
7945         PR debug/31510
7946         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7947         emulated thread local variables.
7948
7949 2008-03-16  Richard Guenther  <rguenther@suse.de>
7950
7951         PR middle-end/35607
7952         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7953         expand TREE_INVARIANT operations that are not gimple invariant.
7954
7955 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7956
7957         * doc/extend.texi (Alignment): Say that the ABI controls
7958         the __alignof__ for non-strict-alignment targets rather
7959         than being a recommendation.
7960
7961 2008-03-15  Paul Brook  <paul@codesourcery.com>
7962
7963         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7964         annotations.
7965         (arm_output_fn_unwind): Mark functions that can not be unwound.
7966
7967 2008-03-15  Paul Brook  <paul@codesourcery.com>
7968
7969         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7970         extension instructions.
7971
7972 2008-03-15  Richard Guenther  <rguenther@suse.de>
7973
7974         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7975         and fold constant aggregate refs.
7976         (fold_const_aggregate_ref): Handle string constants
7977         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7978         (evaluate_stmt): Simplify now that ccp_fold folds constant
7979         aggregate refs.
7980
7981 2008-03-15  Paul Brook  <paul@codesourcery.com>
7982
7983         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7984         (extzv): Use gen_extzv_t2.
7985         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7986
7987 2008-03-15  Richard Guenther  <rguenther@suse.de>
7988
7989         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7990         (fold_const_aggregate_ref): Likewise.
7991         (get_value): Return NULL if we don't have any values.
7992         (ccp_finalize): Set const_val to NULL after freeing it.
7993         * tree-flow.h (get_symbol_constant_value): Declare.
7994         (fold_const_aggregate_ref): Likewise.
7995         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7996
7997 2008-03-15  Richard Guenther  <rguenther@suse.de>
7998
7999         PR middle-end/35593
8000         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
8001         to not produce negative array indices if not allowed.  Add
8002         parameter to indicate that.
8003         (maybe_fold_offset_to_component_ref): Allow negative array
8004         indices only for the first member of a structure.
8005         (maybe_fold_offset_to_reference): Allow negative array indices.
8006         (maybe_fold_stmt_addition): Likewise.
8007
8008 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
8009             Anatoly Sokolov <aesok@post.ru>
8010
8011         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
8012         (avr_arch): Add ARCH_AVR6.
8013         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
8014         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
8015         instead of fixed value 2.
8016         (print_operand_address): Use gs() asm specifier instead of pm().
8017         (avr_assemble_integer): (Ditto.).
8018         (avr_output_addr_vec_elt): (Ditto.).
8019         (print_operand): Handle "!" code.
8020         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
8021         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
8022         (AVR_HAVE_EIJMP_EICALL): Define.
8023         (AVR_3_BYTE_PC): Redefine.
8024         (AVR_2_BYTE_PC): (Ditto.).
8025         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
8026         (LINK_SPEC): Add atmega2560 and atmega2561.
8027         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
8028         (crtm2561.o).
8029         * config/avr/avr.md (call_insn): Use eicall instead of icall 
8030         for 3 byte PC devices.
8031         (call_value_insn): (Ditto.).
8032         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
8033         (indirect_jump): Use only for for 2 byte PC devices.
8034         (*tablejump): (Ditto.).
8035         (*indirect_jump_avr6): Add insn.
8036         (*tablejump_rjmp): Don't use for 3 byte PC devices.
8037         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
8038         instead of ijmp for 3 byte PC devices.
8039         (__tablejump2__): (Ditto.).
8040         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
8041         (MULITLIB_DIRNAMES): (Ditto.). 
8042         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
8043
8044 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
8045
8046         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
8047         "sse2_umulsidi3".  Use V1DI mode for operand 0.
8048         ("mmx_psadbw"): Use V1DI mode for operand 0.
8049         * config/i386/i386-modes.def (V1SI): New vector mode.
8050         * config/i386/i386.c (struct builtin_description)
8051         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
8052         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
8053         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
8054         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
8055         v1di_ftype_v8qi_v8qi type.
8056         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
8057
8058         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
8059         __builtin_ia32_pmuludq]: Fix the mode of return value.
8060
8061 2008-03-15  Richard Guenther  <rguenther@suse.de>
8062
8063         PR middle-end/35595
8064         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
8065         being a PHI_NODE.
8066
8067 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
8068         
8069         * doc/invoke.texi (Option Summary, Xtensa Options): Document
8070         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
8071         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
8072         unless TARGET_SERIALIZE_VOLATILE is enabled.
8073         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
8074         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
8075         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
8076
8077 2008-03-14  Richard Guenther  <rguenther@suse.de>
8078
8079         PR tree-optimization/34172
8080         * tree-flow.h (refs_may_alias_p): Declare.
8081         (get_single_def_stmt): Likewise.
8082         (get_single_def_stmt_from_phi): Likewise.
8083         (get_single_def_stmt_with_phi): Likewise.
8084         * tree-dfa.c (refs_may_alias_p): New function.
8085         (get_single_def_stmt): Likewise.
8086         (get_single_def_stmt_from_phi): Likewise.
8087         (get_single_def_stmt_with_phi): Likewise.
8088         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
8089         (vn_reference_lookup_1): New helper function.
8090         (vn_reference_lookup): Walk the virtual use-def chain to
8091         continue searching for a match if the def does not alias the
8092         reference we are looking for.
8093
8094 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
8095
8096         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
8097         archive and Perzl.  Update The Written Word listing.
8098
8099 2008-03-14  Richard Guenther  <rguenther@suse.de>
8100
8101         PR tree-optimization/34043
8102         PR tree-optimization/33989
8103         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
8104         when doing FRE.
8105         (bitmap_find_leader): Use extra argument to verify dominance
8106         relationship inside a basic-block.
8107         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
8108         (find_leader_in_sets): Adjust.
8109         (create_component_ref_by_pieces): Take extra argument for
8110         dominance check, handle lookup failures.
8111         (find_or_generate_expression): Likewise.
8112         (create_expression_by_pieces): Likewise.
8113         (insert_into_preds_of_block): Adjust.
8114         (create_value_expr_from): If asked for, verify all operands
8115         are in the blocks AVAIL_OUT set.
8116         (make_values_for_stmt): Check for SSA_NAMEs that are life
8117         over an abnormal edge.
8118         (compute_avail): Remove such check.
8119         (do_SCCVN_insertion): New function.
8120         (eliminate): If we do not find a leader suitable for replacement
8121         insert a replacement expression from SCCVN if available.
8122         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
8123         (struct vn_ssa_aux): Add needs_insertion flag.
8124         * tree-ssa-sccvn.c (may_insert): New global flag.
8125         (copy_reference_ops_from_ref): Value-number union member access
8126         based on its size, not type and member if insertion is allowed.
8127         (visit_reference_op_load): For a weak match from union type
8128         punning lookup a view-converted value and insert a SSA_NAME
8129         for that value if that is not found.
8130         (visit_use): Make dumps shorter.  Do not disallow value numbering
8131         SSA_NAMEs that are life over an abnormal edge to constants.
8132         (free_scc_vn): Release inserted SSA_NAMEs.
8133         (run_scc_vn): New flag to specify whether insertion is allowed.
8134         Process SSA_NAMEs in forward order.
8135         * tree-ssa-loop-im.c (for_each_index): Handle invariant
8136         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
8137         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
8138         pointer type to/from integral types that do not change the
8139         precision to regular conversions.
8140
8141 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8142
8143         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8144         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8145         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
8146         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
8147         input arguments and the mode of return value.  Built-in functions
8148         that operate on whole 64-bit MMX register now use V1DI mode.
8149
8150 2008-03-13  Alon Dayan  <alond@il.ibm.com>
8151             Olga Golovanevsky  <olga@il.ibm.com>
8152
8153         PR tree-optimization/35041
8154         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
8155         to locate the right position in a statement.
8156
8157 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8158
8159         PR target/34000
8160         PR target/35553
8161         * config/i386/xmmintrin.h:  Change all static inline functions to
8162         extern inline and add __gnu_inline__ attribute.
8163         * config/i386/bmintrin.h: Ditto.
8164         * config/i386/smmintrin.h: Ditto.
8165         * config/i386/tmmintrin.h: Ditto.
8166         * config/i386/mmintrin-common.h: Ditto.
8167         * config/i386/ammintrin.h: Ditto.
8168         * config/i386/emmintrin.h: Ditto.
8169         * config/i386/pmmintrin.h: Ditto.
8170         * config/i386/mmintrin.h: Ditto.
8171         * config/i386/mm3dnow.h: Ditto.
8172
8173 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
8174
8175         PR middle-end/35185
8176         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
8177         (lower_omp_2): New function.
8178         (lower_omp_1, lower_omp): Rewritten.
8179
8180 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
8181
8182         PR 35054
8183         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
8184         with the phrase "Microsoft Windows compilers".
8185         (Push/Pop Macro Pragmas): New subsection. Document
8186         #pragma push_macro and pragma pop_macro.
8187
8188 2008-03-12  Paul Brook  <paul@codesourcery.com>
8189
8190         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
8191
8192 2008-03-12  Paul Brook  <paul@codesourcery.com>
8193
8194         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
8195         (thumb2_alusi3_short): Exclude PLUS and MINUS.
8196         (thumb2_addsi_shortim): Rename ...
8197         (thumb2_addsi_short): ... to this.  Allow register operands.
8198         (thumb2_subsi_short): New pattern.
8199         (thumb2_one_cmplsi2_short,
8200         thumb2_negsi2_short): New patterns and peepholes.
8201
8202 2008-03-12  Paul Brook  <paul@codesourcery.com>
8203
8204         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
8205
8206 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
8207
8208         * config/i386/i386.md (int_cond): New code iterator.
8209         (fp_cond): Ditto.
8210         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8211         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8212         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8213         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8214         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8215         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8216         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8217         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8218
8219 2008-03-12  Paul Brook  <paul@codesourcery.com>
8220
8221         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8222         instead of {arm,thumb}_compute_save_reg_mask.
8223         (output_return_instruction): Ditto.
8224         (thumb_unexpanded_epilogue): Ditto.
8225         (thumb1_expand_prologue): Ditto.
8226         (thumb1_output_function_prologue): Ditto.
8227         (arm_set_return_address): Ditto.
8228         (thumb_set_return_address): Ditto.
8229         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
8230         regs to achieve stack alignment.
8231         (thumb1_compute_save_reg_mask): Fix compiler warning.
8232         (arm_output_epilogue): Use offsets->saved_regs_mask.
8233         Adjust stack pointer by poping call clobered registers.
8234         (arm_expand_prologue): Use offsets->saved_regs_mask.
8235         Adjust stack pointer by pushing extra registers.
8236         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
8237
8238 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
8239
8240         PR tree-opt/35422
8241         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8242         conversion to the operands of a multiplication.
8243
8244 2008-03-12  Richard Guenther  <rguenther@suse.de>
8245
8246         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8247         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8248         * timevar.def (TV_TREE_PHIPROP): Add.
8249         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8250         pass description.  Use TV_TREE_PHIPROP.
8251         * tree-ssa-forwprop.c: Remove phiprop code.
8252
8253 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8254
8255         PR middle-end/35549
8256         * omp-low.c (maybe_lookup_decl): Constify first argument.
8257         (use_pointer_for_field): Change last argument from bool to
8258         omp_context *.  Disallow shared copy-in/out in nested
8259         parallel if decl is shared in outer parallel too.
8260         (build_outer_var_ref, scan_sharing_clauses,
8261         lower_rec_input_clauses, lower_copyprivate_clauses,
8262         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8263
8264 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8265             Ira Rosen  <irar@il.ibm.com>
8266
8267         * tree-vectorizer.c (free_stmt_vec_info): New function.
8268         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8269         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8270         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8271         * tree-vect-transform.c (vectorizable_conversion): Free
8272         vec_oprnds0 if it was allocated.
8273         (vect_permute_store_chain): Remove unused VECs.
8274         (vectorizable_store): Free VECs that are allocated in the..
8275         function.
8276         (vect_transform_strided_load, vectorizable_load): Likewise.
8277         (vect_remove_stores): Simplify the code.
8278         (vect_transform_loop): Move code to vect_remove_stores().
8279         Call vect_remove_stores() and free_stmt_vec_info().
8280
8281 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8282
8283         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8284         TARGET_HPUX.  Revise comment.
8285         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8286         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8287         Use sr4 variant of `be' instruction when not generating PIC code.
8288         (attr_length_call): Adjust for above change.
8289
8290 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8291
8292         * ipa-reference.c (static_execute): Remove module_statics_const and
8293         associated setting code.
8294
8295 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8296
8297         PR target/35540
8298         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8299         predicate for operand 1.
8300         (paritysi2_cmp): Use register_operand predicate for operand 2.
8301         Use earlyclobber modifier for operand 1.  Remove support for
8302         memory operands.
8303         (paritydi2_cmp): Use register_operand predicate for operand 3.
8304         Use earlyclobber modifier for operand 1.  Remove support for
8305         memory operands.
8306
8307 2008-03-11  Paul Brook  <paul@codesourcery.com>
8308             Vladimir Prus  <vladimir@codesourcery.com>
8309
8310         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8311         (arm_compute_save_reg0_reg12_mask): Always
8312         check if register 11 must be saved.  Always safe hard frame pointer
8313         when frame_pointer_needeed.
8314         (arm_compute_save_reg_mask): Save IP and PC
8315         only with apcs frames.
8316         (arm_output_epilogue): Adjust Thumb2 codepath to
8317         be also invoked and work for ARM non-apcs frames.
8318         (arm_expand_prologue): Don't bother saving IP
8319         for non-apcs frame, since it's not clobbered by
8320         prologue code.  Implement non-apcs frame
8321         layout.
8322
8323 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8324
8325         PR rtl-optimization/35281
8326         * expr.c (convert_move): Use a new pseudo for the intermediate
8327         from_mode->word_mode result.
8328
8329 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8330
8331         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8332         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8333         * toplev.c (compile_file): Don't call it.
8334
8335 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8336
8337         PR middle-end/35526
8338         * expr.c (store_expr): Call emit_block_move if the mode
8339         of "temp" RTX is BLKmode.
8340
8341 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8342             Richard Guenther  <rguenther@suse.de>
8343
8344         PR tree-optimization/31358
8345         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8346         the step with a NULL_TREE.
8347         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8348         to sizetype if type is a pointer type.
8349         (add_candidate_1): Don't convert the base and step to
8350         the generic type if the orginal type is a pointer type.
8351         (add_iv_value_candidates): Use sizetype for the step
8352         if type is a pointer type.
8353         (cand_value_at): Likewise.
8354         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8355         for pointer types.
8356         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8357         Don't convert the tem affine to the type.
8358         (add_elt_to_tree): Use sizetype for the step if a pointer.
8359         Use POINTER_PLUS_EXPR for pointers.
8360         (aff_combination_to_tree): Use sizetype for the step if a
8361         pointer.
8362
8363 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8364
8365         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8366         Remove commutativity hint.
8367
8368 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8369
8370         PR c/35438
8371         PR c/35439
8372         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8373         errorneous type.  Check that v is a VAR_DECL.
8374
8375         PR middle-end/35099
8376         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8377
8378 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8379
8380         PR tree-optimization/35494
8381         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8382         may be overriden at link and run time.
8383
8384 2008-03-10  Richard Guenther  <rguenther@suse.de>
8385
8386         PR tree-optimization/34677
8387         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8388         (poolify_tree): Likewise.
8389         (modify_expr_template): Likewise.
8390         (poolify_modify_stmt): Likewise.
8391         (insert_fake_stores): Handle all component-ref style stores
8392         in addition to INDIRECT_REF.  Also handle complex types.
8393         Do not poolify the inserted load.
8394         (realify_fake_stores): Do not rebuild the tree but only
8395         make it a SSA_NAME copy.
8396         (init_pre): Remove initialzation of modify_expr_template.
8397         Do not allocate modify_expr_node_pool.
8398         (fini_pre): Do not free modify_expr_node_pool.
8399
8400 2008-03-10  Paul Brook  <paul@codesourcery.com>
8401
8402         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8403         to avoid conflicts.
8404
8405 2008-03-10  Paul Brook  <paul@codesourcery.com>
8406             Mark Shinwell  <shinwell@codesourcery.com>
8407
8408         * config/arm/cortex-r4.md: New.
8409         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8410         insn attributes.
8411         * config/arm/arm.md: Include cortex-r4.md.
8412         (insn): Add smmls, sdiv and udiv values.
8413         (generic_sched): Don't use generic scheduling for Cortex-R4.
8414         (arm_issue_rate): New function.
8415         (TARGET_SCHED_ISSUE_RATE): Define.
8416
8417 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8418
8419         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8420
8421 2008-03-10  Richard Guenther  <rguenther@suse.de>
8422
8423         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8424         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8425
8426 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8427
8428         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8429         Set default to true.
8430
8431 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8432
8433         * c.opt (Wsynth): Deprecate.
8434         * doc/invoke.texi (Option Summary, Warning Options): Document
8435         -Wno-format-contains-nul.
8436
8437 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8438
8439         PR target/35496
8440         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8441         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8442
8443 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8444
8445         * config/rs6000/rs6000.c (builtin_description): Rename vector
8446         left shift operations.
8447         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8448         (altivec_vsl<VI_char>): Rename to ...
8449         (ashl<mode>3): ... new name.
8450         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8451         gen_ashlv4si3.
8452         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8453
8454 2008-03-08  Richard Guenther  <rguenther@suse.de>
8455
8456         * coverage.h (tree_coverage_counter_addr): Declare.
8457         * coverage.c (tree_coverage_counter_addr): New function.
8458         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8459         before using again.
8460         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8461         (tree_gen_one_value_profiler): Likewise.
8462         (tree_gen_ic_profiler): Likewise.
8463         (tree_gen_average_profiler): Likewise.
8464         (tree_gen_ior_profiler): Likewise.
8465
8466 2008-03-08  Richard Guenther  <rguenther@suse.de>
8467
8468         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8469         (vn_binary_op_insert): Likewise.
8470         (vn_unary_op_lookup): Likewise.
8471         (vn_unary_op_insert): Likewise.
8472         (vn_nary_op_lookup): Declare.
8473         (vn_nary_op_insert): Likewise.
8474         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8475         and binary hashes, use a single obstack for unary_op_pool
8476         and binary_op_pool.
8477         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8478         a single struct vn_nary_op_s.  Store tree code length and
8479         a variable number of operands.
8480         (struct vn_reference_op_struct): Remove unused op2.
8481         (vn_reference_op_eq): Do not compare op2.
8482         (vn_reference_op_compute_hash): Do not compute hash of op2.
8483         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8484         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8485         with vn_nary_op_compute_hash.
8486         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8487         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8488         vn_nary_op_lookup.
8489         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8490         vn_nary_op_insert.
8491         (visit_unary_op): Call nary functions.
8492         (visit_binary_op): Likewise.
8493         (process_scc): Adjust for struct vn_tables_s changes.
8494         (allocate_vn_table): Likewise.
8495         (free_vn_table): Likewise.
8496         * tree-vn.c (vn_add): Call nary functions.
8497         (vn_lookup): Likewise.
8498
8499 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8500
8501         PR target/35498
8502         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8503         wdst back after sync_compare_and_swapqhi_internal.
8504
8505 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8506
8507         PR target/22152
8508         * config/i386/i386-modes.def (V1DI): New vector mode.
8509         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8510         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8511         (MMXMODE248): Ditto.
8512         (MMXMODE): Add V1DI mode.
8513         (mmxvecsize): Change DI mode to V1DI mode.
8514         ("mov<mode>): Use MMXMODEI8 mode iterator.
8515         ("*mov<mode>_internal_rex64"): Ditto.
8516         ("*mov<mode>_internal"): Ditto.
8517         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8518         ("mmx_sub<mode>3"): Ditto.
8519         ("mmx_adddi3"): Remove insn pattern.
8520         ("mmx_subdi3"): Ditto.
8521         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8522         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8523         ("mmx_ashl<mode>3"): Ditto.
8524         ("mmx_lshrdi3"): Remove insn pattern.
8525         ("mmx_ashldi3"): Ditto.
8526         * config/i386/i386.c (classify_argument): Handle V1DImode.
8527         (function_arg_advance_32): Ditto.
8528         (function_arg_32): Ditto.
8529         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8530         mmx_addv1di3 insn pattern.
8531         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8532         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8533         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8534         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8535         Remove definitions of built-in functions.
8536         (V1DI_type_node): New node.
8537         (v1di_ftype_v1di_int): Ditto.
8538         (v1di_ftype_v1di_v1di): Ditto.
8539         (v2si_ftype_v2si_si): Ditto.
8540         (v4hi_ftype_v4hi_di): Remove node.
8541         (v2si_ftype_v2si_di): Ditto.
8542         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8543         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8544         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8545         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8546         Add new builtins using def_builtin_const.
8547         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8548         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8549         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8550         * config/i386/mmintrin.h (__v1di): New typedef.
8551         (_mm_add_si64): Cast arguments to __v1di type.
8552         (_mm_sub_si64): Ditto.
8553         (_mm_sll_pi16): Cast __count to __v4hi type.
8554         (_mm_sll_pi32): Cast __count to __v2si type.
8555         (_mm_sll_si64): Cast arguments to __v1di type.
8556         (_mm_srl_pi16): Cast __count to __v4hi type.
8557         (_mm_srl_pi32): Cast __count to __v2si type.
8558         (_mm_srl_si64): Cast arguments to __v1di type.
8559         (_mm_sra_pi16): Cast __count to __v4hi type.
8560         (_mm_sra_pi32): Cast __count to __v2si type.
8561         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8562         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8563         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8564         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8565         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8566         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8567         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8568         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8569         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8570         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8571         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8572         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8573
8574 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8575
8576         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8577
8578 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8579
8580         PR target/35373
8581         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8582         reg+const addressing for Altivec modes.  Don't generate reg+reg
8583         addressing for TFmode or TDmode quantities.
8584
8585 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8586
8587         * c-common.c (vector_types_convertible_p): Call langhook
8588         instead of comptypes.
8589
8590 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8591
8592         PR tree-opt/35402
8593         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8594         integral and scalar float variables which have a
8595         NULL DECL_INITIAL.
8596
8597 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8598
8599         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8600         dwarf_register_span hook when emitting unwind information for
8601         register-to-memory saves.
8602         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8603         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8604
8605 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8606
8607         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8608         for the same VAR_DECL.
8609
8610 2008-03-06  Tom Tromey  <tromey@redhat.com>
8611
8612         * treelang: Delete.
8613         * doc/standards.texi (Standards): Don't mention treelang.
8614         * doc/invoke.texi (Overall Options): Don't mention treelang.
8615         * doc/install.texi (Prerequisites): Don't mention bison or
8616         treelang.
8617         (Configuration): Don't mention treelang.
8618         (Building): Likewise.
8619         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8620
8621 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8622
8623         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8624         word-extractions out of a multi-word object.
8625
8626 2008-03-06  Richard Guenther  <rguenther@suse.de>
8627
8628         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8629         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8630         result type and precision.
8631         * expr.c (get_inner_reference): Set unsignedp based on the result
8632         type of BIT_FIELD_REF.
8633         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8634         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8635         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8636         for BIT_FIELD_REF.
8637         (sra_build_assignment): Likewise.
8638         (sra_build_elt_assignment): Likewise.
8639         (sra_explode_bitfield_assignment): Likewise.
8640         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8641         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8642         set BIT_FIELD_REF_UNSIGNED.
8643         (vectorizable_load): Likewise.
8644
8645 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8646
8647         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8648         at bb start.
8649
8650 2008-03-06  Richard Guenther  <rguenther@suse.de>
8651
8652         * alias.c (struct alias_set_entry): Move has_zero_child field
8653         to pack with alias_set.
8654
8655 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8656
8657         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8658         32bit host.
8659
8660 2008-03-05  Ian Lance Taylor  <iant@google.com>
8661
8662         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8663
8664 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8665
8666         * fwprop.c (update_df): Support width and offset parameters of
8667         df_ref_create.
8668         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8669         global_conflicts): Change DF_REF_EXTRACT to either
8670         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8671         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8672         * df-scan.c (df_ref_record, df_defs_record,
8673         df_ref_create_structure, df_def_record_1, df_uses_record,
8674         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8675         df_bb_refs_collect, df_entry_block_defs_collect,
8676         df_exit_block_uses_collect): Support new width and offset fields.
8677         (ref_extract_pool): New storage pool.
8678         (df_free_ref): New function.
8679         (df_reg_chain_unlink, df_free_collection_rec,
8680         df_sort_and_compress_refs): Call df_free_ref.
8681         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8682         of df_ref_extract.
8683         (df_ref_create_structure): Allocate df_ref_extract if offset and
8684         width fields are used.
8685         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8686         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8687         and SIGN_EXTRACT.
8688         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8689         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8690         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8691         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8692         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8693         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8694         (df_ref_extract): New structure.
8695         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8696         (df_ref_create): Add width and offset parameters.
8697         
8698 2008-03-05  Richard Guenther  <rguenther@suse.de>
8699
8700         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8701         Use ranges_overlap_p.
8702         (offset_overlaps_with_access): Rename
8703         to ranges_overlap_p and move ...
8704         * tree-flow-inline.h (ranges_overlap_p): ... here.
8705
8706         * tree.h (get_inner_reference, handled_component_p): Update
8707         comments.
8708
8709         * tree.h (record_component_aliases, get_alias_set,
8710         alias_sets_conflict_p, alias_sets_must_conflict_p,
8711         objects_must_conflict_p): Move declarations ...
8712         * alias.h (record_component_aliases, get_alias_set,
8713         alias_sets_conflict_p, alias_sets_must_conflict_p,
8714         objects_must_conflict_p): ... here.
8715         Include coretypes.h.
8716         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8717
8718 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8719
8720         * cfg.c: Include tree-flow.h.
8721         (remove_edge_raw): Call redirect_edge_var_map_clear.
8722         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8723         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8724         (redirect_edge_var_map_result): New.
8725         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8726         PENDING_STMT use with redirect_edge_var_map_*.
8727         * tree-ssa.c (edge_var_maps): New definition.
8728         (redirect_edge_var_map_add): New.
8729         (redirect_edge_var_map_clear): New.
8730         (redirect_edge_var_map_dup): New.
8731         (redirect_edge_var_map_vector): New.
8732         (redirect_edge_var_map_destroy): New.
8733         (ssa_redirect_edge): Replace PENDING_STMT use with
8734         redirect_edge_var_map_*.
8735         (flush_pending_stmts): Same.
8736         (delete_tree_ssa): Destroy edge var map.
8737         * tree-flow.h (struct _edge_var_map): New.
8738         Define edge_var_map vector type.
8739         Declare redirect_edge_var_map_* prototypes.
8740         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8741         * tree-cfg.c (reinstall_phi_args): Replace
8742         PENDING_STMT use with redirect_edge_var_map_*.
8743
8744 2008-03-05  Richard Guenther  <rguenther@suse.de>
8745
8746         PR tree-optimization/35472
8747         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8748         whose single use_stmt has a overlapping set of loaded and
8749         stored symbols as that use_stmt might be a noop assignment then.
8750
8751 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8752
8753         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8754
8755 2008-03-05  Richard Guenther  <rguenther@suse.de>
8756
8757         PR c++/35336
8758         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8759         should be constants.
8760         * tree-cfg.c (verify_expr): Verify it.
8761         * fold-const.c (fold_truthop): Remove code generating
8762         BIT_FIELD_REFs of structure bases.
8763         (fold_binary): Likewise.
8764         (fold_ternary): Position and size of BIT_FIELD_REFs are
8765         always host integers.
8766         (make_bit_field_ref): Remove.
8767         (optimize_bit_field_compare): Remove.
8768         (all_ones_mask_p): Remove.
8769
8770 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8771
8772         PR gcc/33009
8773         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8774         (split_block_and_df_analyze): New. Split basic block and rebuild
8775         dataflow.
8776         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8777         SPLIT_BLOCK.
8778         (split_pattern_seq): Likewise.
8779         (erase_matching_seqs): Likewise.
8780         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8781
8782 2008-03-04  Geoff Keating  <geoffk@apple.com>
8783
8784         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8785         declaration and code.
8786         (tree_invalid_nonnegative_warnv_p): Likewise.
8787
8788 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8789
8790         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8791         examples.  Truncate option-names then causing overfull hbox.
8792
8793 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8794
8795         PR target/35222
8796         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8797         on hpux10.
8798         * configure: Rebuilt.
8799
8800 2008-03-04  Rafael Espindola  <espindola@google.com>
8801
8802         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8803         (tree_unary_nonnegative_warnv_p): New.
8804         (tree_binary_nonnegative_warnv_p): New.
8805         (tree_single_nonnegative_warnv_p): New.
8806         (tree_invalid_nonnegative_warnv_p): New.
8807         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8808
8809 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8810
8811         PR 28322
8812         * opts.c (handle_option): Postpone 'unknown option' errors only for
8813         warning options.
8814
8815 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8816
8817         PR target/35453
8818         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8819         (_SIDD_XXX): This.
8820
8821 2008-03-04  Rafael Espindola  <espindola@google.com>
8822
8823         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8824         (tree_binary_nonzero_warnv_p): New.
8825         (tree_single_nonzero_warnv_p): New.
8826         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8827
8828 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8829
8830         PR middle-end/35456
8831         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8832         transformations for modes that have signed zeros.
8833         * ifcvt.c (noce_try_abs): Ditto.
8834
8835 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8836
8837         * config/i386/i386.c (override_options): Force
8838         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8839
8840 2008-03-04  Jan Hubicka  <jh@suse.cz>
8841
8842         PR c++/35262
8843         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8844         in last commit.
8845
8846 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8847
8848         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8849         label to probe the stack.
8850
8851 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8852
8853         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8854         (__gthr_win32_mutex_destroy): Declare.
8855         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8856         __gthr_win32_mutex_destroy.
8857         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8858
8859 2008-03-03  Jan Hubicka  <jh@suse.cz>
8860
8861         PR c++/35262
8862         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8863         aggressive on inlining cold calls.
8864
8865 2008-03-03  Richard Guenther  <rguenther@suse.de>
8866
8867         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8868         struct copies into the expression table.
8869         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8870         (try_to_simplify): Likewise.
8871         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8872         integral and pointer arguments which do not change the
8873         precision to NOP_EXPRs.
8874         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8875         VIEW_CONVERT_EXPR case.
8876
8877 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8878
8879         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8880         defined in a loop at depth 0 is invariant.
8881         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8882         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8883         be called at loop depth 0.
8884
8885 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8886
8887         PR driver/35420
8888         * gcc.c (process_command): Update copyright notice dates.
8889         * gcov.c (print_version): Likewise.
8890         * gcov-dump.c (print_version): Likewise.
8891         * mips-tfile.c (main): Likewise.
8892         * mips-tdump.c (main): Likewise.
8893
8894 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8895
8896         PR 24924
8897         * c-common.c (flag_permissive): Delete.
8898         (constant_expression_warnings): Check flags first.
8899         (constant_expression_error): New.
8900         * c-common.h (flag_permissive): Delete.
8901         (constant_expression_error): Declare.
8902         * flags.h (flag_permissive): Declare. Update description.
8903         * diagnostic.c (pedwarn): Update.
8904         (permerror): New.
8905         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8906         (permissive_error_kind): New.
8907         * toplev.c (flag_permissive): Define. Update description.
8908         * toplev.h (permissive_error_kind): Declare.
8909         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8910         (pedwarn_c90): Use pedantic_warning_kind.
8911         * c-opts.c (c_common_post_options): flag_permissive does not affect
8912         flag_pedantic_errors.
8913
8914 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8915
8916         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8917         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8918         __absvsi2, __absvDI2): Use unsigned arithmetic.
8919
8920 2008-03-02  Andi Kleen  <ak@suse.de>
8921             Richard Guenther  <rguenther@suse.de>
8922
8923         * struct-equiv.c: Remove file.
8924         * cfg_cleanup.c (condjump_equiv_p): Remove.
8925         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8926         (struct-equiv.o): Remove rule.
8927         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8928         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8929         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8930
8931 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8932
8933         * ifcvt.c (noce_process_if_block): Try to handle only the then
8934         block if the else block exists but isn't suitable.
8935
8936 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8937
8938         PR gcc/35063
8939         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8940         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8941         regression from previous patch.
8942
8943 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8944
8945         PR gcc/35063
8946         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8947         implemented.
8948         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8949         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8950         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8951         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8952         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8953         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8954         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8955         (__gthread_mutex_destroy_function): Rename to
8956         __gthread_mutex_destroy.
8957         * gthr-dce.h (__gthread_mutex_destroy): Call
8958         pthread_mutex_destroy.
8959         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8960         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8961         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8962
8963 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8964
8965         * df-scan.c (df_ref_chain_change_bb): Simplify.
8966         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8967         set_block_for_insn if there's any change.
8968         * df.h ((df_insn_change_bb): Fix prototype.
8969         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8970         df_insn_change_bb, don't call set_block_for_insn.
8971         * emit-rtl.c (reorder_insns): Likewise.
8972         * haifa-sched.c (move_insn): Likewise.
8973
8974 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8975
8976         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8977
8978 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8979
8980         * tree-flow-inline.h (next_readonly_imm_use): Return
8981         NULL_USE_OPERAND_P after the end.
8982
8983 2008-03-01  Richard Guenther  <rguenther@suse.de>
8984
8985         PR tree-optimization/35411
8986         * tree-sra.c (sra_build_assignment): Split conversion to
8987         final type to a separate statement if we are not assigning
8988         to a register.
8989
8990 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8991
8992         * fold-const.c (fold_convertible_p): Correct the logic to follow
8993         that in fold_convert().
8994
8995 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8996
8997         PR c++/35315
8998         * tree-inline.c (build_duplicate_type): When we make a
8999         duplicate type, make it unique in the canonical types system.
9000
9001 2008-02-29  Tom Tromey  <tromey@redhat.com>
9002
9003         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
9004         input_file_stack_history, input_file_stack_restored): Remove.
9005         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9006         * input.h (struct file_stack): Remove.
9007         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9008         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
9009         Likewise.
9010         * diagnostic.h (struct diagnostic_context) <last_module>: Change
9011         type.
9012         (diagnostic_last_module_changed): Add 'map' argument.
9013         (diagnostic_set_last_function): Likewise.
9014         * diagnostic.c (undiagnostic_report_current_module): Iterate using
9015         line map, not input_file_stack.
9016         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
9017
9018 2008-02-29  Paul Brook  <paul@codesourcery.com>
9019
9020         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
9021
9022 2008-02-29  Paul Brook  <paul@codesourcery.com>
9023
9024         * config/arm/ieee754-df.S (muldf3): Use RET macros.
9025
9026 2008-02-29  Richard Guenther  <rguenther@suse.de>
9027
9028         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
9029         vn_lookup_or_add.
9030         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
9031         value for comparing for a store match.
9032         (simplify_unary_expression): Do nothing for SSA_NAMEs.
9033         (try_to_simplify): Do not do a full-blown reference lookup.
9034
9035 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9036
9037         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
9038         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9039
9040         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
9041
9042 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
9043
9044         * tree-loop-linear.c (try_interchange_loops): Compare memory access
9045         strides against cache sizes.
9046
9047 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9048
9049         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
9050         constant to fpul.
9051
9052 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
9053
9054         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
9055         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
9056         is smaller than the original promoted value.
9057         (simplify_subreg): If OP is a SUBREG, try to preserve its
9058         SUBREG_PROMOTED_VAR_P information.
9059
9060 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
9061
9062         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
9063         (VN_INFO_GET): Allocate new objects on the obstack.
9064         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
9065         for rpo_numbers_temp, for consistency.
9066         (free_scc_vn): Free the obstack.
9067
9068 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
9069
9070         * doc/invoke.texi: Document -ftree-loop-distribution.
9071         * tree-loop-distribution.c: New.
9072         * tree-pass.h (pass_loop_distribution): New.
9073         * graphds.h (struct graph): Add htab_t indices.
9074         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
9075         * tree-vectorizer.c (rename_variables_in_loop): Extern.
9076         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
9077         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
9078         * tree-data-ref.c (debug_data_dependence_relations): New.
9079         (dump_data_dependence_relation): Also print data references.
9080         (free_data_ref): Extern.
9081         (same_access_functions): Moved...
9082         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
9083         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9084         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
9085         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
9086         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
9087         (stmts_from_loop): Skip LABEL_EXPR.
9088         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
9089         New.
9090         (build_rdg): Initialize rdg->indices htab.
9091         (free_rdg, stores_from_loop, ref_base_address,
9092         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
9093         have_similar_memory_accesses_1, ref_base_address_1,
9094         remove_similar_memory_refs): New.
9095         * tree-data-ref.h: Depend on tree-chrec.h.
9096         (debug_data_dependence_relations, free_data_ref): Declared.
9097         (same_access_functions): ... here.
9098         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
9099         New.
9100         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
9101         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
9102         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
9103         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9104         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
9105         rdg_vertex_for_stmt): Declared.
9106         (struct rdg_edge): Add level.
9107         (RDGE_LEVEL): New.
9108         (free_rdg, stores_from_loop, remove_similar_memory_refs,
9109         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
9110         Declared.
9111         (rdg_has_similar_memory_accesses): New.
9112         * tree-vect-analyze.c: Remove unused static decls.
9113         * lambda.h (dependence_level): New.
9114         * common.opt (ftree-loop-distribution): New.
9115         * tree-flow.h (mark_virtual_ops_in_bb, 
9116         slpeel_tree_duplicate_loop_to_edge_cfg,
9117         rename_variables_in_loop): Declared.
9118         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
9119         (OBJS-common): Add tree-loop-distribution.o.
9120         (tree-loop-distribution.o): New rule.
9121         * tree-cfg.c (mark_virtual_ops_in_bb): New.
9122         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
9123         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
9124
9125 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
9126
9127         PR target/33963
9128         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
9129         other than structures and unions.
9130
9131 2008-02-28  Richard Guenther  <rguenther@suse.de>
9132
9133         Revert:
9134         2008-02-26  Richard Guenther  <rguenther@suse.de>
9135
9136         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9137         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9138         (lookup_decl_from_uid): Declare.
9139         (remove_decl_from_map): Likewise.
9140         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9141         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9142         (decl_for_uid_map): New global hashtable mapping DECL_UID
9143         to the decl tree.
9144         (init_ttree): Allocate it.
9145         (insert_decl_to_uid_decl_map): New helper function.
9146         (make_node_stat): Insert new decls into the map.
9147         (copy_node_stat): Likewise.
9148         (lookup_decl_from_uid): New function.
9149         (remove_decl_from_map): Likewise.
9150         (print_decl_for_uid_map_statistics): New helper.
9151         (dump_tree_statistics): Call it.
9152
9153         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9154         (referenced_var_iterator): Adjust.
9155         (FOR_EACH_REFERENCED_VAR): Adjust.
9156         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9157         (num_referenced_vars): Adjust.
9158         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9159         (first_referenced_var): Remove.
9160         (end_referenced_vars_p): Likewise.
9161         (next_referenced_var): Likewise.
9162         (referenced_var_iterator_set): New helper function.
9163         * tree-dfa.c (referenced_var_lookup): Adjust.
9164         (referenced_var_check_and_insert): Likewise.
9165         (remove_referenced_var): Likewise.
9166         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9167         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9168         (verify_call_clobbering): Likewise.
9169         (verify_memory_partitions): Likewise.
9170         (init_tree_ssa): Allocate bitmap instead of hashtable for
9171         referenced_vars.
9172         (delete_tree_ssa): Adjust.
9173         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9174         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9175         (compute_tag_properties): Likewise.
9176         (set_initial_properties): Likewise.
9177         (find_partition_for): Likewise.
9178         (update_reference_counts): Likewise.
9179         (dump_may_aliases_for): Likewise.
9180         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9181         (add_call_clobber_ops): Likewise.
9182         (add_call_read_ops): Likewise.
9183         (get_asm_expr_operands): Likewise.
9184         * tree-into-ssa.c (dump_decl_set): Likewise.
9185         (update_ssa): Likewise.
9186         * tree-sra.c (scan_function): Likewise.
9187         (decide_instantiations): Likewise.
9188         (scalarize_parms): Likewise.
9189         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9190         (dsa_named_for): Likewise.
9191         * tree-ssa-structalias.c (update_alias_info): Likewise.
9192         (merge_smts_into): Likewise.
9193
9194 2008-02-27  David Daney  <ddaney@avtrex.com>
9195
9196         PR target/34409
9197         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
9198         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
9199         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
9200         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
9201         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
9202
9203 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
9204
9205         PR target/25477
9206         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9207         (BUILT_IN_NEXTTOWARD): Remove.
9208         (BUILT_IN_NEXTTOWARDF): Ditto.
9209         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9210         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
9211
9212 2008-02-27  Tom Tromey  <tromey@redhat.com>
9213
9214         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9215         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9216
9217 2008-02-27  Jan Beulich  <jbeulich@novell.com>
9218
9219         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9220         update the respective field on newdecl.
9221
9222 2008-02-27  Revital Eres  <eres@il.ibm.com>
9223
9224         PR rtl-optimization/34999
9225         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9226         crossing edges that ends with a call insn.
9227         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9228         call insn and clear the EDGE_CROSSING flag of the crossing edge
9229         when fixing fallthru edges.
9230
9231 2008-02-27  Richard Guenther  <rguenther@suse.de>
9232
9233         PR middle-end/35390
9234         * fold-const.c (fold_unary): Return the correct argument,
9235         converted to the result type.
9236
9237 2008-02-27  Richard Guenther  <rguenther@suse.de>
9238
9239         PR middle-end/34971
9240         * expr.c (expand_expr_real_1): Assert on rotates that operate
9241         on partial modes.
9242         * fold-const.c (fold_binary): Use the types precision, not the
9243         bitsize of the mode if folding rotate expressions.  Build rotates
9244         only for full modes.
9245
9246 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
9247
9248         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9249         and CPP_PRAGMA_EOL.
9250         * c-pragma.c (pragma_ns_name): New typedef.
9251         (registered_pp_pragmas): New variable.
9252         (c_pp_lookup_pragma): New function.
9253         (c_register_pragma_1): If flag_preprocess_only, do nothing
9254         for non-expanded pragmas, for expanded ones push pragma's
9255         namespace and name into registered_pp_pragmas vector.
9256         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9257         flag_preprocess_only, don't register GCC pch_preprocess
9258         pragma if flag_preprocess_only.
9259         * c-opts.c (c_common_init): Call init_pragma even if
9260         flag_preprocess_only.
9261         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9262         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9263         cpp_register_pragma if flag_preprocess_only.
9264
9265 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9266
9267         PR c/28800
9268         * c-parser.c (c_parser_translation_unit): Warn for empty
9269         translation unit, not empty source file.
9270
9271 2008-02-26  Paul Brook  <paul@codesourcery.com>
9272
9273         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9274         operand for Thumb-2.
9275         * config/arm/arm.h (reg_class): Add CORE_REGS.
9276         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9277         (BASE_REG_CLASS): Use CORE_REGS.
9278         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9279         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9280         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9281         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9282         ARM_REGNO_OK_FOR_INDEX_P.
9283         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9284         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9285         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9286         (ldm/stm peepholes): Ditto.
9287         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9288         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9289         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9290         * config/arm/constraints.md: Enable "k" constraint on ARM.
9291
9292 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9293
9294         * config/rs6000/rs6000.c: Annotate cache line size field in all
9295         instances of struct processor_costs.
9296
9297 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9298
9299         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9300         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9301         jump_bypass): New counters.
9302         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9303         * dce.c (gate_ud_dce): Same.
9304         (gate_fast_dce): Same.
9305         * dse.c (gate_dse1): New function.
9306         (gate_dse2): New function.
9307         (gate_dse): Merge results of new gate functions.
9308         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9309         (gate_handle_jump_bypass): Add dbg_cnt.
9310         (gate_handle_gcse): Add dbg_cnt.
9311         * ifcvt.c (gate_handle_if_conversion): Same.
9312         (gate_handle_if_after_combine): Same.
9313         (gate_handle_if_after_reload): Same.
9314         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9315
9316 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9317
9318         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9319         line sizes.
9320         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9321
9322 2008-02-26  Jason Merrill  <jason@redhat.com>
9323
9324         PR c++/35315
9325         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9326         alone if it's the naming decl for the type's main variant.
9327
9328 2008-02-26  Tom Tromey  <tromey@redhat.com>
9329
9330         * system.h (USE_MAPPED_LOCATION): Poison.
9331         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9332         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9333         (make_goto_expr_edges): Likewise.
9334         (remove_bb): Likewise.
9335         (execute_warn_function_return): Likewise.
9336         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9337         location_t.
9338         * c-common.c (fname_decl): Remove old location code.
9339         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9340         location code.
9341         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9342         variant.
9343         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9344         (gen_rtx_ASM_INPUT): Likewise.
9345         (gen_rtx_ASM_INPUT_loc): Likewise.
9346         (get_rtx_asm_OPERANDS): Remove.
9347         * cfglayout.c (insn_locators_alloc): Remove old location code.
9348         (set_curr_insn_source_location): Likewise.
9349         (curr_insn_locator): Likewise.
9350         * print-tree.c (print_node): Remove old location code.
9351         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9352         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9353         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9354         location_from_locus.
9355         (construct_exit_block): Remove old location code.
9356         * emit-rtl.c (force_next_line_note): Remove old location code.
9357         * profile.c (branch_prob): Remove old location code.
9358         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9359         LOC_LINE): Remove old-location variants.
9360         * langhooks.c (lhd_print_error_function): Remove old location
9361         code.
9362         * configure, config.in: Rebuilt.
9363         * configure.ac (--enable-mapped-location): Remove.
9364         * c-decl.c (c_init_decl_processing): Remove old location code.
9365         (finish_function): Likewise.
9366         * recog.c (decode_asm_operands): Remove old location code.
9367         * c-pch.c (c_common_read_pch): Remove old location code.
9368         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9369         variants.
9370         * gimple-low.c (lower_function_body): Remove old location code.
9371         * toplev.c (unknown_location): Remove.
9372         (push_srcloc): Remove old-location variant.
9373         (process_options): Remove old location code.
9374         (lang_dependent_init): Likewise.
9375         * input.h (UNKNOWN_LOCATION): Move definition.
9376         (location_t): Undeprecate.
9377         (source_locus): Remove.
9378         (location_from_locus): Remove.
9379         (struct location_s): Remove.
9380         Remove all old-location code.
9381         (input_line, input_filename): Remove.
9382         * final.c (final_scan_insn): Remove old location code.
9383         * diagnostic.c (diagnostic_build_prefix): Remove
9384         USE_MAPPED_LOCATION test.
9385         * tree.h (gimple_stmt) <locus>: Now a location_t.
9386         (tree_exp) <locus>: Likewise.
9387         (DECL_IS_BUILTIN): Remove old-location variant.
9388         (annotate_with_file_line, annotate_with_locus): Likewise.
9389         (expr_locus, set_expr_locus): Update.
9390         * tree.c (build1_stat): Remove old location code.
9391         (last_annotated_node): Remove.
9392         (annotate_with_file_line): Remove old-location variant.
9393         (annotate_with_locus): Likewise.
9394         (expr_location): Remove old location code.
9395         (set_expr_location): Likewise.
9396         (expr_has_location): Likewise.
9397         (expr_locus): Likewise.
9398         (set_expr_locus): Likewise.
9399         (expr_filename): Don't use location_from_locus.
9400         (expr_lineno): Likewise.
9401         * rtl-error.c (location_for_asm): Remove old location code.
9402         * c-lex.c (cb_line_change): Remove old location code.
9403         (fe_file_change): Likewise.
9404         (cb_def_pragma): Likewise.
9405         (c_lex_with_flags): Likewise.
9406         * gengtype.c (do_typedef): Don't special-case location types.
9407         (define_location_structures): Remove.
9408         (main): Don't call define_location_structures.
9409         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9410         code.
9411
9412 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9413
9414         PR 26264
9415         * builtins.def (BUILT_IN_STDARG_START): Remove.
9416         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9417         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9418         * tree-inline.c (inline_forbidden_p_1): Likewise.
9419         
9420 2008-02-26  Richard Guenther  <rguenther@suse.de>
9421
9422         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9423         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9424         (lookup_decl_from_uid): Declare.
9425         (remove_decl_from_map): Likewise.
9426         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9427         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9428         (decl_for_uid_map): New global hashtable mapping DECL_UID
9429         to the decl tree.
9430         (init_ttree): Allocate it.
9431         (insert_decl_to_uid_decl_map): New helper function.
9432         (make_node_stat): Insert new decls into the map.
9433         (copy_node_stat): Likewise.
9434         (lookup_decl_from_uid): New function.
9435         (remove_decl_from_map): Likewise.
9436         (print_decl_for_uid_map_statistics): New helper.
9437         (dump_tree_statistics): Call it.
9438
9439         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9440         (referenced_var_iterator): Adjust.
9441         (FOR_EACH_REFERENCED_VAR): Adjust.
9442         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9443         (num_referenced_vars): Adjust.
9444         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9445         (first_referenced_var): Remove.
9446         (end_referenced_vars_p): Likewise.
9447         (next_referenced_var): Likewise.
9448         (referenced_var_iterator_set): New helper function.
9449         * tree-dfa.c (referenced_var_lookup): Adjust.
9450         (referenced_var_check_and_insert): Likewise.
9451         (remove_referenced_var): Likewise.
9452         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9453         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9454         (verify_call_clobbering): Likewise.
9455         (verify_memory_partitions): Likewise.
9456         (init_tree_ssa): Allocate bitmap instead of hashtable for
9457         referenced_vars.
9458         (delete_tree_ssa): Adjust.
9459         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9460         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9461         (compute_tag_properties): Likewise.
9462         (set_initial_properties): Likewise.
9463         (find_partition_for): Likewise.
9464         (update_reference_counts): Likewise.
9465         (dump_may_aliases_for): Likewise.
9466         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9467         (add_call_clobber_ops): Likewise.
9468         (add_call_read_ops): Likewise.
9469         (get_asm_expr_operands): Likewise.
9470         * tree-into-ssa.c (dump_decl_set): Likewise.
9471         (update_ssa): Likewise.
9472         * tree-sra.c (scan_function): Likewise.
9473         (decide_instantiations): Likewise.
9474         (scalarize_parms): Likewise.
9475         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9476         (dsa_named_for): Likewise.
9477         * tree-ssa-structalias.c (update_alias_info): Likewise.
9478         (merge_smts_into): Likewise.
9479
9480 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9481
9482         PR 34351
9483         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9484         * c-opts.c (c_common_handle_option): Wall enables
9485         Wvolatile-register-var.
9486         * common.opt: Move Wvolatile-register-var to...
9487         * c.opt: ...here.
9488         
9489 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9490
9491         * common.opt (Wlarger-than=): New.
9492         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9493         -Wlarger-than=.
9494         * opts.c (common_handle_option): Handle -Wlarger-than=.
9495         * optc-gen.awk: Likewise.
9496         * opth-gen.awk: Likewise.
9497         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9498         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9499         
9500 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9501
9502         * c-common.c (match_case_to_enum_1): Add appropriate
9503         OPT_W* parameter to warning.
9504         (c_do_switch_warnings): Likewise.
9505         * c-typeck.c (warning_init): Add one more parameter following
9506         'warning' function.
9507         (push_init_level): Update call to warning_init.
9508         (pop_init_level): Likewise.
9509         (add_pending_init): Likewise.
9510         (output_init_element: Likewise.
9511
9512 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9513
9514         PR 28322
9515         * toplev.c (toplev_main): If there are warnings or error, print
9516         errors for ignored options.
9517         * opts.c (ignored_options): New static variable.
9518         (postpone_unknown_option_error): New.
9519         (print_ignored_options): New.
9520         (handle_option): Postpone errors for unknown -Wno-* options.
9521         * opts.h (print_ignored_options): Declare.
9522         
9523 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9524
9525         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9526         to "ghost".
9527
9528 2008-02-25  Richard Guenther  <rguenther@suse.de>
9529
9530         Revert:
9531         2008-02-25  Richard Guenther  <rguenther@suse.de>
9532
9533         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9534         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9535         (lookup_decl_from_uid): Declare.
9536         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9537         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9538         (decl_for_uid_map): New global hashtable mapping DECL_UID
9539         to the decl tree.
9540         (init_ttree): Allocate it.
9541         (insert_decl_to_uid_decl_map): New helper function.
9542         (make_node_stat): Insert new decls into the map.
9543         (copy_node_stat): Likewise.
9544         (lookup_decl_from_uid): New function.
9545         (print_decl_for_uid_map_statistics): New helper.
9546         (dump_tree_statistics): Call it.
9547
9548         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9549         (referenced_var_iterator): Adjust.
9550         (FOR_EACH_REFERENCED_VAR): Adjust.
9551         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9552         (num_referenced_vars): Adjust.
9553         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9554         (first_referenced_var): Remove.
9555         (end_referenced_vars_p): Likewise.
9556         (next_referenced_var): Likewise.
9557         (referenced_var_iterator_set): New helper function.
9558         * tree-dfa.c (referenced_var_lookup): Adjust.
9559         (referenced_var_check_and_insert): Likewise.
9560         (remove_referenced_var): Likewise.
9561         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9562         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9563         (verify_call_clobbering): Likewise.
9564         (verify_memory_partitions): Likewise.
9565         (init_tree_ssa): Allocate bitmap instead of hashtable for
9566         referenced_vars.
9567         (delete_tree_ssa): Adjust.
9568         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9569         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9570         (compute_tag_properties): Likewise.
9571         (set_initial_properties): Likewise.
9572         (find_partition_for): Likewise.
9573         (update_reference_counts): Likewise.
9574         (dump_may_aliases_for): Likewise.
9575         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9576         (add_call_clobber_ops): Likewise.
9577         (add_call_read_ops): Likewise.
9578         (get_asm_expr_operands): Likewise.
9579         * tree-into-ssa.c (dump_decl_set): Likewise.
9580         (update_ssa): Likewise.
9581         * tree-sra.c (scan_function): Likewise.
9582         (decide_instantiations): Likewise.
9583         (scalarize_parms): Likewise.
9584         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9585         (dsa_named_for): Likewise.
9586         * tree-ssa-structalias.c (update_alias_info): Likewise.
9587         (merge_smts_into): Likewise.
9588
9589 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9590
9591         PR fortran/29549
9592         * doc/invoke.texi (-fcx-limited-range): Document new option.
9593         * toplev.c (process_options): Handle -fcx-fortran-rules.
9594         * common.opt: Add documentation for -fcx-fortran-rules.
9595
9596 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9597
9598         PR c/35162
9599         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9600         actual behaviour and C99.
9601         
9602 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9603
9604         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9605         (ASM_CPU_POWER6_SPEC): Likewise.
9606         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9607         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9608         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9609
9610 2008-02-25  Richard Guenther  <rguenther@suse.de>
9611
9612         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9613         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9614         (lookup_decl_from_uid): Declare.
9615         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9616         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9617         (decl_for_uid_map): New global hashtable mapping DECL_UID
9618         to the decl tree.
9619         (init_ttree): Allocate it.
9620         (insert_decl_to_uid_decl_map): New helper function.
9621         (make_node_stat): Insert new decls into the map.
9622         (copy_node_stat): Likewise.
9623         (lookup_decl_from_uid): New function.
9624         (print_decl_for_uid_map_statistics): New helper.
9625         (dump_tree_statistics): Call it.
9626
9627         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9628         (referenced_var_iterator): Adjust.
9629         (FOR_EACH_REFERENCED_VAR): Adjust.
9630         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9631         (num_referenced_vars): Adjust.
9632         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9633         (first_referenced_var): Remove.
9634         (end_referenced_vars_p): Likewise.
9635         (next_referenced_var): Likewise.
9636         (referenced_var_iterator_set): New helper function.
9637         * tree-dfa.c (referenced_var_lookup): Adjust.
9638         (referenced_var_check_and_insert): Likewise.
9639         (remove_referenced_var): Likewise.
9640         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9641         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9642         (verify_call_clobbering): Likewise.
9643         (verify_memory_partitions): Likewise.
9644         (init_tree_ssa): Allocate bitmap instead of hashtable for
9645         referenced_vars.
9646         (delete_tree_ssa): Adjust.
9647         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9648         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9649         (compute_tag_properties): Likewise.
9650         (set_initial_properties): Likewise.
9651         (find_partition_for): Likewise.
9652         (update_reference_counts): Likewise.
9653         (dump_may_aliases_for): Likewise.
9654         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9655         (add_call_clobber_ops): Likewise.
9656         (add_call_read_ops): Likewise.
9657         (get_asm_expr_operands): Likewise.
9658         * tree-into-ssa.c (dump_decl_set): Likewise.
9659         (update_ssa): Likewise.
9660         * tree-sra.c (scan_function): Likewise.
9661         (decide_instantiations): Likewise.
9662         (scalarize_parms): Likewise.
9663         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9664         (dsa_named_for): Likewise.
9665         * tree-ssa-structalias.c (update_alias_info): Likewise.
9666         (merge_smts_into): Likewise.
9667
9668 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9669
9670         PR target/35258
9671         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9672         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9673         * alias.h (nonoverlapping_memrefs_p): Likewise.
9674
9675 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9676
9677         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9678         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9679         __emultls_get_address, __emultls_register_common,
9680         __floatundi?f, and _Unwind_GetIPInfo.
9681         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9682         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9683         (gen_regparm_prefix): Likewise.
9684         (i386_nlm_encode_section_info): Sync with
9685         config/i386/winnt.c:i386_pe_encode_section_info().
9686         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9687         i386_nlm_mangle_decl_assembler_name): New.
9688         (netware_override_options): New.
9689         * config/i386/netware.h (netware_override_options): Declare.
9690         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9691         (i386_nlm_mangle_decl_assembler_name): Declare.
9692         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9693
9694 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9695
9696         PR other/32948
9697         * c-decl.c (grokdeclarator): Remove unused local variables
9698         `typedef_type' and `type_as_written'.
9699         * bb-reorder.c
9700         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9701         unused local variable `has_hot_blocks'.
9702         (fix_crossing_conditional_branches): Remove unused local variable
9703         `prev_bb'.
9704         
9705 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9706
9707         PR middle-end/19984
9708         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9709         using DEF_C99_BUILTIN.
9710         (BUILT_IN_NANF): Ditto.
9711         (BUILT_IN_NANL): Ditto.
9712
9713 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9714             Revital Eres  <eres@il.ibm.com>
9715
9716         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9717         regarding the order of two dependent insns in the same row.
9718
9719 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9720
9721         * stor-layout.c (layout_decl): Do not bump the alignment of a
9722         bit-field to more than byte alignment if it is packed.
9723
9724 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9725
9726         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9727         e300c2 and e300c3.
9728
9729 2008-02-24  Diego Novillo  <dnovillo@google.com>
9730
9731         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9732
9733         PR 33738
9734         * tree-vrp.c (vrp_evaluate_conditional): With
9735         -Wtype-limits, emit a warning when comparing against a
9736         constant outside the natural range of OP0's type.
9737         * c.opt (Wtype-limits): Move ...
9738         * common.opt (Wtype-limits): ... here.
9739
9740 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9741
9742         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9743         * config/rs6000/e300c2c3.md: New file.
9744         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9745         e300c2 and e300c3.
9746         (rs6000_override_options): Add e300c2 and e300c3 cases to
9747         processor_target_table. Do not allow usage of Altivec or Spe
9748         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9749         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9750         * config/rs6000/rs6000.h (processor_type): Add
9751         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9752         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9753         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9754         and ppce300c3. Include e300c2c3.md.
9755
9756 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9757
9758         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9759         instead of TARGET_STRICT_ALIGN.
9760
9761 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9762
9763         * explow.c (memory_address): Assert that the generated address is
9764         valid.
9765
9766 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9767
9768         PR target/25477
9769         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9770         * config/darwin-ppc-ldouble-patch.def: New file.
9771         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9772         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9773         SUBTARGET_INIT_BUILTINS if defined.
9774         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9775         New functions.
9776
9777 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9778
9779         PR rtl-opt/33512
9780         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9781         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9782
9783 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9784
9785         PR pch/35027
9786         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9787         file" warning condtional on -Winvalid-PCH.
9788
9789 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9790
9791         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9792
9793 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9794
9795         PR target/22076
9796         PR target/34256 
9797         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9798         prevent reload from using MMX registers.
9799         (*mov<mode>_internal): Ditto.
9800         (*movv2sf_internal_rex64): Ditto.
9801         (*movv2sf_internal): Ditto.
9802
9803 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9804
9805         PR documentation/31569
9806         * doc/install.texi2html: Use makeinfo --no-number-sections.
9807
9808 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9809
9810         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9811         ensure that we can address an entire entity > 8 bytes.  Don't
9812         generate reg+reg addressing for such data.
9813
9814 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9815
9816         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9817         strings when optimizing for size, unless the target cares about
9818         alignment.
9819
9820 2008-02-22  Tom Tromey  <tromey@redhat.com>
9821
9822         * regclass.c (current_pass): Remove declaration.
9823
9824 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9825
9826         * config/avr/libgcc.S (__RAMPZ__): Define.
9827         (__do_copy_data): Add for devices with 128KB code memory.
9828
9829 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9830
9831         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9832         Use spe_abi.
9833         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9834
9835 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9836
9837         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9838         GENNONACR_REGS.
9839
9840 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9841
9842         PR c/19999
9843         * c-typeck.c (build_binary_op): Warn about floating point
9844         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9845
9846 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9847
9848         PR target/34526
9849         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9850         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9851         add vrsave.
9852         (rs6000_override_options): Set altivec_abi as default, not override,
9853         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9854         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9855         is used; use new member spe_abi.
9856         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9857         spe_abi and altivec_abi.
9858
9859 2008-02-22  Tomas Bily  <tbily@suse.cz>
9860
9861         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9862
9863 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9864
9865         PR bootstrap/35273
9866         * config.build (build_file_translate): Set to `CMD //c' only if
9867         it works.
9868         * Makefile.in (build_file_translate): Improve comment.
9869
9870 2008-02-21  Jan Hubicka  <jh@suse.cz>
9871
9872         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9873         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9874         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9875
9876 2008-02-21  Michael Matz  <matz@suse.de>
9877
9878         PR target/35264
9879         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9880
9881 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9882
9883         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9884         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9885         as insn constraint.
9886         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9887         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9888         SSE_VEC_FLOAT_MODE_P as insn constraint.
9889         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9890         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9891         sse4a_movntdf using MODEF mode iterator.
9892         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9893         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9894         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9895         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9896         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9897         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9898         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9899
9900 2008-02-21  Richard Guenther  <rguenther@suse.de>
9901
9902         * tree.def (PAREN_EXPR): New tree code.
9903         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9904         and PAREN_EXPR.
9905         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9906         * expr.c (expand_expr_real_1): Likewise.
9907         * tree-inline.c (estimate_num_insns_1): Likewise.
9908         * tree-complex.c (expand_complex_move): Likewise.
9909         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9910         as plain x.
9911
9912 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9913
9914         PR target/35225
9915         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9916
9917 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9918
9919         PR target/35190
9920         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9921
9922         * config/sh/sh.c (find_barrier): Don't go past
9923         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9924
9925 2008-02-20  DJ Delorie  <dj@redhat.com>
9926
9927         * config/h8300/h8300.md (insv): Force source operand to be a register.
9928
9929         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9930         as a jump, not as a plain insn.
9931         
9932 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9933
9934         * doc/invoke.texi (Warning Options): Add new option
9935         -Wframe-larger-than=.
9936         (-Wframe-larger-than): Document.
9937
9938         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9939         Add declarations for new option variables.
9940
9941         * final.c (final_start_function): Check the frame size
9942         before emission and issue a Wframe-larger-than warning.
9943
9944         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9945         Add definitions for new option variables.
9946         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9947
9948         * common.opt (Wframe-larger-than=): New option.
9949
9950 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9951
9952         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9953         (<sse>_div<mode>3): Ditto.
9954         (<sse>_vmdiv<mode>3): Ditto.
9955         (<sse>_vmsqrt<mode>2): Ditto.
9956         (*smax<mode>3): Ditto.
9957         (sse5_frcz<mode>2): Ditto.
9958         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9959         as insn constraint.
9960
9961 2008-02-20  Richard Guenther  <rguenther@suse.de>
9962
9963         PR middle-end/35265
9964         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9965         be happy with INTEGRAL_TYPE_P.
9966
9967 2008-02-20  Richard Guenther  <rguenther@suse.de>
9968
9969         * fold-const.c (split_tree): Associate floatig-point expressions
9970         if flag_associative_math is set.
9971
9972 2008-02-20  Richard Guenther  <rguenther@suse.de>
9973
9974         * tree.h (fold_real_zero_addition_p): Declare.
9975         * fold-const.c (fold_real_zero_addition_p): Export.
9976         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9977         floating-point operations with zero and one.
9978
9979 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9980
9981         * doc/install.texi: Correct references to CFLAGS, replacing them
9982         with BOOT_CFLAGS.  Document flags used during bootstrap for
9983         target libraries.
9984                                 
9985 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9986
9987         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9988         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9989         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9990         insn constraint.
9991         (smin<mode>3): Ditto from similar patterns.
9992         (smax<mode>3): Ditto.
9993         (*ieee_smin<mode>3): Ditto.
9994         (*ieee_smax<mode>3): Ditto.
9995         * config/i386/sse.md (sse): New mode attribute.
9996         (mov<mode>): Macroize expander from movv4sf and movv2df using
9997         SSEMODEF2P mode iterator.
9998         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9999         SSE_VEC_FLOAT_MODE_P as insn constraint.
10000         (storent<mode>): Ditto.
10001         (storent<mode>): Macroize expander from storentsf and storentdf using
10002         MODEF mode iterator.
10003         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
10004         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
10005         (abs<mode>2): Ditto from similar patterns.
10006         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
10007         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
10008         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
10009         (<sse>_vmsqrt<mode>2): Ditto.
10010         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
10011         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
10012         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
10013         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
10014         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
10015         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
10016         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
10017         insn constraint.
10018         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
10019         iterator and SSE_FLOAT_MODE_P as insn constraint.
10020         (<sse>_ucomi): Ditto from similar patterns.
10021         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
10022         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
10023         SSE_VEC_FLOAT_MODE_P as insn constraint.
10024         (vcond<mode>): Ditto from similar patterns.
10025         (and<mode>3, *and<mode>3): Ditto.
10026         (<sse>_nand<mode>3): Ditto.
10027         (ior<mode>3, *ior<mode>3): Ditto.
10028         (xor<mode>3, *xor<mode>3): Ditto.
10029         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
10030         iterator and SSE_FLOAT_MODE_P as insn constraint.
10031         (*nand<mode>3): Ditto from similar patterns.
10032         (*ior<mode>3): Ditto.
10033         (*xor<mode>3): Ditto.
10034
10035 2008-02-20  Ira Rosen  <irar@il.ibm.com>
10036
10037         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
10038         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
10039         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
10040
10041 2008-02-19  Jan Hubicka  <jh@suse.cz>
10042
10043         * predict.c (tree_bb_level_predictions): Remove variable next
10044         mistakely introduced by previous commit.
10045
10046 2008-02-19  Jan Hubicka  <jh@suse.cz>
10047
10048         * predict.c (predict_paths_leading_to): Rewrite.
10049         (predict_paths_for_bb): New.
10050         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
10051
10052 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10053
10054         PR bootstrap/35218
10055         * Makefile.in (build_file_translate): New.
10056         (gcc-vers.texi): Use it for translating $(abs_srcdir).
10057         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
10058         * configure.ac (build_file_translate): Substitute it.
10059         * configure: Regenerate.
10060
10061 2008-02-19  Jan Hubicka  <jh@suse.cz>
10062
10063         PR rtl-optimization/34408
10064         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
10065         invalid sharing.
10066
10067 2008-02-19  Jan Hubicka  <jh@suse.cz>
10068
10069         PR middle-end/28779
10070         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
10071         call_expr.
10072
10073 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
10074
10075         PR Ada/35186
10076         * config/i386/i386-modes.def: Revert the last DI alignment
10077         change until Ada people can look into it.
10078
10079 2008-02-19  Nick Clifton  <nickc@redhat.com>
10080
10081         * opts.c (print_specific_help): Fix typo in --help text.
10082
10083 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
10084
10085         PR target/35239
10086         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
10087         32-bit inline asm without asm alternatives for host GCC < 3.0.
10088
10089 2008-02-19  Richard Guenther  <rguenther@suse.de>
10090
10091         PR tree-optimization/34989
10092         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
10093         Allow propagation to INDIRECT_REF if we can simplify only.
10094
10095 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10096
10097         * c-common.c (warn_for_collisions_1): Use appropriate option when
10098         warning.
10099
10100 2008-02-19  Nick Clifton  <nickc@redhat.com>
10101
10102         PR other/31349
10103         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
10104         (handle_options): Fix indentation.
10105         (print_filtered_help): If no language-specific options were
10106         displayed tell the user how to list all the options supported by
10107         the language's front-end.
10108         (print_specific_help): Fix indentation and remove duplicate line.
10109         (common_handle_option): Handle the -v option.
10110         For --help enable the display of undocumented options if the -v
10111         switch has been included on the command line.
10112         For --help= check for overlaps in the arguments between the option
10113         classes and the language names and issue a warning when they
10114         cannot be disambiguated.
10115         * c.opt (v): Pass on to the common option handler.
10116
10117 2008-02-19  Revital Eres  <eres@il.ibm.com> 
10118
10119         * modulo-sched.c (sms_schedule): Change dump message when
10120         create_ddg function fails.
10121         (try_scheduling_node_in_cycle): Rename row to cycle.
10122         (print_partial_schedule): Rename CYCLE to ROW.
10123
10124 2008-02-19  Christian Bruel  <christian.bruel@st.com>
10125             Zdenek Dvorak  <ook@ucw.cz>
10126
10127         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
10128
10129 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10130
10131         PR target/33555
10132         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
10133         (*x86_movdicc_0_m1_se): Ditto.
10134
10135 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10136
10137         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
10138         (CMPtype): Define as __gcc_CMPtype.
10139         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
10140         (CMPtype): Define as __gcc_CMPtype.
10141
10142 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
10143
10144         Support valgrind 3.3 for --enable-checking=valgrind.
10145         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
10146         here.
10147         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
10148         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
10149         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
10150         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
10151         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
10152         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
10153         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
10154         respectively.
10155         * ggc-zone.c: Similar.
10156         * ggc-page.c: Similar.
10157
10158 2008-02-19  Paul Brook  <paul@codesourcery.com>
10159
10160         PR target/35071
10161         * config/arm/ieee754-df.S: Fix do_it typo.
10162         * config/arm/ieee754-sf.S: Fix do_it typo.
10163
10164 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10165
10166         PR target/35189
10167         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
10168         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
10169         (OPTION_MASK_ISA_SSE_SET): Likewise.
10170         (OPTION_MASK_ISA_SSE2_SET): Likewise.
10171         (OPTION_MASK_ISA_SSE3_SET): Likewise.
10172         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
10173         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
10174         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
10175         (OPTION_MASK_ISA_SSE4_SET): Likewise.
10176         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
10177         (OPTION_MASK_ISA_SSE5_SET): Likewise.
10178         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
10179         (OPTION_MASK_ISA_MMX_UNSET): Updated.
10180         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
10181         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
10182         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
10183         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
10184         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
10185         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
10186         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
10187         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
10188         (OPTION_MASK_ISA_SSE4): Removed.
10189         (ix86_handle_option): Turn on bits in ix86_isa_flags and
10190         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
10191         (override_options): Don't turn on implied SSE/MMX bits in
10192         ix86_isa_flags.
10193
10194 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10195
10196         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10197         32bit host.
10198
10199 2008-02-18  Joey Ye  <joey.ye@intel.com>
10200
10201         PR middle-end/34921
10202         * tree-nested.c (insert_field_into_struct): Set type alignment
10203         to field alignment if the former is less than the latter.
10204
10205 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
10206
10207         * BASE-VER: Set to 4.4.0.
10208
10209 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10210
10211         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10212         * doc/cfg.texi: Likewise.
10213         * doc/extend.texi: Likewise.
10214         * doc/gty.texi: Likewise.
10215         * doc/invoke.texi: Likewise.
10216         * doc/loop.texi: Likewise.
10217         * doc/md.texi: Likewise.
10218         * doc/passes.texi: Likewise.
10219         * doc/rtl.texi: Likewise.
10220         * doc/sourcebuild.texi: Likewise.
10221         * doc/tm.texi: Likewise.
10222         * doc/tree-ssa.texi: Likewise.
10223
10224 2008-02-17  Richard Guenther  <rguenther@suse.de>
10225
10226         PR middle-end/35227
10227         * tree-complex.c (init_parameter_lattice_values): Handle parameters
10228         without default definition.
10229
10230 2008-02-17  Richard Guenther  <rguenther@suse.de>
10231
10232         PR tree-optimization/35231
10233         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10234         if A | B != 1.
10235
10236 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
10237
10238         Revert:
10239         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
10240         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10241         libgcc_cmp_return mode.
10242
10243 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10244
10245         PR c/28368
10246         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10247
10248 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
10249
10250         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10251         multilibs.
10252
10253 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10254
10255         * doc/c-tree.texi: Use `@.' where appropriate.
10256         * doc/extend.texi: Likewise.
10257         * doc/install.texi: Likewise.
10258         * doc/invoke.texi: Likewise.
10259         * doc/loop.texi: Likewise.
10260         * doc/makefile.texi: Likewise.
10261         * doc/md.texi: Likewise.
10262         * doc/passes.texi: Likewise.
10263         * doc/standards.texi: Likewise.
10264         * doc/tm.texi: Likewise.
10265
10266 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10267
10268         PR middle-end/35196
10269         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10270         in entry_bb.
10271         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10272         rather than in entry_bb.
10273
10274 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10275
10276         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10277         libgcc_cmp_return mode.
10278
10279 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10280
10281         PR middle-end/35130
10282         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10283         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10284
10285 2008-02-15  Richard Guenther  <rguenther@suse.de>
10286             Zdenek Dvorak  <ook@ucw.cz>
10287
10288         PR tree-optimization/35164
10289         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10290         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10291         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10292         Only propagate addresses which do not have abnormal SSA_NAMEs
10293         in their operands.
10294
10295 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10296
10297         PR target/35088
10298         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10299
10300 2008-02-15  Jan Hubicka  <jh@suse.cz>
10301
10302         PR middle-end/35149
10303         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10304
10305 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10306
10307         PR middle-end/34621
10308         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10309         when calculating alignment_pad.
10310
10311 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10312
10313         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10314         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10315         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10316         and STACK_BOUNDARY define.
10317
10318 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10319
10320         PR preprocessor/35061
10321         * c-pragma.c (handle_pragma_pop_macro): Check that
10322         pushed_macro_table has been allocated.
10323
10324 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10325
10326         PR middle-end/35136
10327         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10328         (force_gimple_operand): Likewise.
10329         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10330         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10331         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10332         (find_interesting_uses_address): Check addressability and alignment
10333         of the base expression only after substituting bases of IVs into it.
10334
10335 2008-02-14  Michael Matz  <matz@suse.de>
10336
10337         PR target/34930
10338         * function.c (instantiate_virtual_regs_in_insn): Reload address
10339         before falling back to reloading the whole operand.
10340
10341 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10342
10343         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10344         before the first section switch note.
10345
10346 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10347
10348         * doc/bugreport.texi: Update copyright years.
10349         * doc/c-tree.texi: Likewise.
10350         * doc/cfg.texi: Likewise.
10351         * doc/cpp.texi: Likewise.
10352         * doc/cppinternals.texi: Likewise.
10353         * doc/fragments.texi: Likewise.
10354         * doc/frontends.texi: Likewise.
10355         * doc/gcc.texi: Likewise.
10356         * doc/gty.texi: Likewise.
10357         * doc/hostconfig.texi: Likewise.
10358         * doc/implement-c.texi: Likewise.
10359         * doc/libgcc.texi: Likewise.
10360         * doc/loop.texi: Likewise.
10361         * doc/makefile.texi: Likewise.
10362         * doc/options.texi: Likewise.
10363         * doc/passes.texi: Likewise.
10364         * doc/rtl.texi: Likewise.
10365         * doc/sourcebuild.texi: Likewise.
10366         * doc/standards.texi: Likewise.
10367         * doc/tree-ssa.texi: Likewise.
10368         * doc/trouble.texi: Likewise.
10369
10370         * doc/extend.texi: Use @: or add comma where appropriate.
10371         * doc/invoke.texi: Likewise.
10372         * doc/tm.texi: Likewise.
10373
10374 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10375
10376         PR target/34393
10377         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10378         to a reg.
10379
10380 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10381
10382         * doc/md.texi (clz, ctz): Add reference.
10383         * doc/rtl.texi (clz, ctz): Likewise.
10384
10385 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10386
10387         PR other/35148
10388         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10389         srcdir.
10390
10391 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10392
10393         * config/s390/s390.c (struct constant_pool): New field
10394         emit_pool_after added.
10395         (s390_mainpool_start): Set the emit_pool_after flag according
10396         to the section switch notes.
10397         (s390_mainpool_finish): Consider emit_pool_after when emitting
10398         the literal pool at the end of the function.
10399         (s390_chunkify_start): Force literal pool splits at section
10400         switch notes.
10401
10402 2008-02-13  Michael Matz  <matz@suse.de>
10403
10404         PR debug/35065
10405         * var-tracking.c (clobber_variable_part): Correctly traverse the
10406         list.
10407
10408 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10409
10410         PR 29673
10411         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10412         Add -fdump-ipa-inline.
10413         * tree-dump.c (dump_files): Remove tree-inlined dump.
10414         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10415         
10416 2008-02-12  Richard Guenther  <rguenther@suse.de>
10417
10418         PR tree-optimization/35171
10419         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10420         default defs.
10421
10422 2008-02-12  Richard Guenther  <rguenther@suse.de>
10423
10424         PR middle-end/35163
10425         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10426         value-preserving mode.  Disallow final truncation.
10427
10428 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10429
10430         PR middle-end/35136
10431         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10432         code from here to...
10433         (force_gimple_operand): ...here.
10434
10435 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10436
10437         PR c++/35144
10438         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10439         non-compatible pointers.
10440         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10441         different FIELD_DECLs, try harder by comparing field offsets, sizes
10442         and types.
10443
10444         PR inline-asm/35160
10445         * function.c (match_asm_constraints_1): Don't replace the same input
10446         multiple times.
10447
10448 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10449
10450         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10451         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10452         (expand_epilogue): Restore RAMPZ register.
10453         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10454
10455 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10456
10457         * config/i386/cygwin.asm: (__alloca): Correct calling
10458         convention and alignment.
10459         (__chkstk): Force 8 byte stack alignment.
10460
10461 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10462             Richard Guenther  <rguenther@suse.de>
10463
10464         PR tree-optimization/33992
10465         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10466         the zero we compare against.
10467
10468 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10469
10470         PR libfortran/35063
10471         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10472         to CloseHandle after unlocking to prevent accumulation of handle
10473         count.
10474
10475 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10476
10477         PR middle_end/34150
10478         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10479         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10480         and update LABEL_NUSES during and after reload.
10481
10482 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10483
10484         PR middle-end/34627
10485         * combine.c (simplify_if_then_else): Make sure the comparison is
10486         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10487
10488 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10489
10490         PR bootstrap/35051
10491         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10492         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10493         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10494         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10495         * tree.h (get_type_static_bounds): Likewise.
10496
10497 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10498
10499         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10500         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10501         Make -Wfoo language annotations match what the compiler outputs.
10502
10503 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10504
10505         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10506         intrinsics spu_convts, spu_convtu, spu_convtf.
10507
10508 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10509
10510         * doc/extend.texi (Function Attributes) <noinline>: Mention
10511         asm ("") as method to keep calls.
10512
10513 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10514
10515         PR other/32754
10516         * doc/options.texi (Options): Replace references to opts.sh with
10517         optc-gen.awk.
10518         * opts-common.c: Likewise.
10519         * optc-gen.awk: Likewise.
10520         
10521 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10522
10523         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10524
10525 2008-02-07  Richard Henderson  <rth@redhat.com>
10526
10527         PR rtl-opt/33410
10528         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10529         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10530         funny mode.
10531
10532 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10533
10534         PR tree-optimization/35085
10535         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10536         for operand entry oe2 in addition to operand entry oe3 in order to
10537         expose more opportunities for vectorizer sum reduction.
10538
10539 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10540
10541         PR other/35107
10542         * Makefile.in (LIBS): Remove $(GMPLIBS).
10543         (cc1-dummy, cc1): Add $(GMPLIBS).
10544
10545 2008-02-06  Jan Hubicka  <jh@suse.cz>
10546
10547         PR target/23322
10548         * i386.md (moddf_integer): Do not produce partial memory stalls for
10549         targets where it hurts.
10550
10551 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10552
10553         PR target/35083
10554         * optabs.c (expand_float): Do not check for decimal modes when
10555         expanding unsigned integer through signed conversion.
10556
10557 2008-02-06  Nick Clifton  <nickc@redhat.com>
10558
10559         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10560         inside the clobber with a match_operand and duplicated operand
10561         number in the constraint.
10562         (ineqbranchsi): Delete redundant comment.
10563
10564 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10565
10566         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10567         builtin_define ("__USE_INIT_FINI__").
10568         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10569         -msx multilibs.
10570         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10571
10572 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10573
10574         PR documentation/30330
10575         * doc/invoke.texi (C++ Dialect Options)
10576         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10577         For each warning option -Wfoo that allows -Wno-foo, ensure both
10578         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10579         entry of -Wswitch-default, index -Wnormalized= including the
10580         `=', and -Wlarger-than-@var{len} including @var{len}.
10581
10582 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10583
10584         * config/i386/i386.md (floatunssisf2): Use
10585         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10586         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10587         Macroize expander using MODEF mode iterator.
10588
10589 2008-02-05  Diego Novillo  <dnovillo@google.com>
10590
10591         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10592
10593         PR 33738
10594         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10595
10596 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10597
10598         PR other/35070
10599         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10600
10601 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10602
10603         PR target/35084
10604         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10605         to indicate if a message should be generated.
10606         (init_cumulative_args): Updated.
10607         (function_value_32): Likewise.
10608
10609 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10610
10611         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10612
10613 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10614
10615         PR target/35083
10616         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10617         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10618
10619 2008-02-04  Diego Novillo  <dnovillo@google.com>
10620
10621         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10622
10623         PR 33738
10624         * tree-vrp.c (vrp_evaluate_conditional): With
10625         -Wtype-limits, emit a warning when comparing against a
10626         constant outside the natural range of OP0's type.
10627
10628 2008-02-04  Richard Guenther  <rguenther@suse.de>
10629
10630         PR middle-end/33631
10631         * expr.c (count_type_elements): Give for unions instead of
10632         guessing.
10633
10634 2008-02-04  Richard Guenther  <rguenther@suse.de>
10635
10636         PR middle-end/35043
10637         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10638         to TYPE_DOMAINs base type instead of using bitsizetype here.
10639
10640 2008-02-03  Jason Merrill  <jason@redhat.com>
10641
10642         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10643
10644 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10645
10646         PR other/29972
10647         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10648         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10649         (RS/6000 and PowerPC Options): Fix typos and markup.
10650         * doc/passes.texi (Tree-SSA passes): Likewise.
10651
10652 2008-02-02  Michael Matz  <matz@suse.de>
10653
10654         PR target/35045
10655         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10656         from record_last_reg_set_info.
10657         (record_last_reg_set_info): Take an RTX argument, iterate over all
10658         constituent hardregs.
10659         (record_last_set_info, record_opr_changes): Change calls to
10660         new signature or to record_last_reg_set_info_regno.
10661
10662 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10663
10664         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10665
10666 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10667
10668         PR rtl-optimization/34773
10669         * reg-notes.def (EQUAL): Mention significance of combination of
10670         REG_EQUAL and REG_RETVAL.
10671         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10672         insn that has a REG_RETVAL.
10673
10674 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10675
10676         PR bootstrap/33781
10677         * configure.ac (--enable-fixed-point): Disable unless explicitly
10678         requested on IRIX.
10679         * configure: Regenerate.
10680
10681 2008-02-01  Richard Guenther  <rguenther@suse.de>
10682
10683         PR other/35042
10684         * invoke.texi (-finline-limit): Remove no longer true parts
10685         of the documentation.  Note that there is no default value.
10686
10687 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10688             Mark Mitchell  <mark@codesourcery.com>
10689             Ben Elliston  <bje@au.ibm.com>
10690
10691         PR c/29326
10692         * doc/extend.texi (Other Builtins): Document.
10693
10694 2008-01-31  Tom Browder <tom.browder@gmail.com>
10695
10696         * doc/c-tree.texi (Types): Fix grammar.
10697         (Expression trees): Ditto.
10698         * doc/passes.texi (Tree-SSA passes): Ditto.
10699         
10700         * doc/configterms.texi (Configure Terms): Fix typo.
10701         * doc/cpp.texi (Common Predefined Macros): Ditto.
10702         * doc/md.texi (Machine Constraints): Ditto.
10703         
10704         * doc/makefile.texi (Makefile): Add comma.
10705
10706 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10707             Gerald Pfeifer  <gerald@pfeifer.com>
10708         
10709         * doc/sourcebuild.texi (Front End): Remove references to CVS
10710         and CVSROOT/modules.
10711         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10712         (Back End): Remove reference to CVS.
10713
10714 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10715
10716         PR target/34900
10717         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10718         comment from...
10719         (mips16_gp_pseudo_reg): ...here.
10720         * config/mips/mips.md (load_const_gp): Replace with...
10721         (load_const_gp_<mode>): ...this :P-based insn.
10722
10723 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10724
10725         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10726         options. Minor fixes.
10727         (-std): Move reference to standards closer to where language
10728         standards are first mentioned.
10729         
10730 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10731
10732         PR rtl-optimization/34995
10733         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10734         parameter and return a bool.  If the rtx parameter is nonnull,
10735         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10736         (find_reloads): Update call accordingly.  Pass the new operand
10737         if it needed no address reloads, otherwise pass null.
10738
10739 2008-01-30  Richard Henderson  <rth@redhat.com>
10740
10741         PR c/34993
10742         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10743         for unbounded arrays.
10744
10745 2008-01-30  Silvius Rus  <rus@google.com>
10746
10747         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10748
10749 2008-01-30  Jan Hubicka  <jh@suse.cz>
10750
10751         PR target/34982
10752         * i386.c (init_cumulative_args): Use real function declaration when
10753         calling locally.
10754
10755 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10756
10757         PR rtl-optimization/34998
10758         * global.c (build_insn_chain): Treat non-subreg_lowpart
10759         SUBREGs of pseudos as clobbering all the words covered by the
10760         SUBREG, not just all the bytes.
10761         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10762         original df_ref rather than an extract parameter.
10763         (global_conflicts): Update call accordingly.
10764
10765 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10766
10767         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10768         the overflow check to make it easier to read.
10769         (__fixtfdi): Change the type of the ll member in union
10770         long_double to UDItype_x.
10771
10772 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10773
10774         PR middle-end/34969
10775         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10776         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10777         * tree-inline.c (fold_marked_statements): Call
10778         cgraph_update_edges_for_call_stmt if folding a call statement.
10779         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10780         debug_generic_stmt calls, reset it back afterwards.
10781
10782         PR c/35017
10783         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10784         static decls.
10785         * c-typeck.c (build_external_ref): Don't pedwarn about
10786         static vars in current function's scope.
10787
10788 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10789
10790         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10791
10792 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10793
10794         PR c/35002
10795         * ipa-struct-reorg.c: Fix spelling.
10796         * params.def: Ditto.
10797
10798 2008-01-29  Richard Guenther  <rguenther@suse.de>
10799
10800         PR middle-end/35006
10801         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10802         field.
10803         * tree-inline.c (remap_type): Increment remapping_type_depth
10804         around remapping types.
10805         (copy_body_r): Only add referenced variables if they are referenced
10806         from code, not types.
10807
10808 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10809
10810         PR c++/34055
10811         PR c++/34103
10812         PR c++/34219
10813         PR c++/34606
10814         PR c++/34753
10815         PR c++/34754
10816         PR c++/34755
10817         PR c++/34919
10818         PR c++/34961
10819         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10820         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10821
10822 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10823
10824         PR target/34412
10825         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10826         pointer for tiny stack.
10827
10828 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10829
10830         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10831
10832 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10833
10834         * config/vx-common.h: Fix typo in comment.
10835
10836 2008-01-28  Ian Lance Taylor  <iant@google.com>
10837
10838         PR c++/34862
10839         PR c++/33407
10840         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10841         coalesce pointers if they have different DECL_NO_TBAA_P values.
10842         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10843         between variables with different DECL_NO_TBAA_P values.
10844
10845 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10846
10847         PR 31535
10848         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10849         are not legitimate small data references on SPE targets.
10850
10851 2008-01-28  David Daney  <ddaney@avtrex.com>
10852
10853         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10854
10855 2008-01-28  David Daney  <ddaney@avtrex.com>
10856
10857         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10858
10859 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10860
10861         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10862         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10863         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10864         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10865         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10866         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10867         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10868         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10869
10870 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10871
10872         * basic-block.h (condjump_equiv_p): Fix comment.
10873
10874 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10875
10876         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10877         print_generic_stmt_indented): Fix comment.
10878
10879 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10880
10881         * configure.ac (__stack_chk_fail): Add detecion for availability
10882         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10883         * configure: Regenerate.
10884
10885 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10886
10887         PR middle-end/34688
10888         * final.c (output_addr_const): Handle TRUNCATE.
10889
10890 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10891
10892         PR target/34711
10893         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10894         (zero_cost, infinite_cost): New constants.
10895         (struct cost_pair): Change type of cost to comp_cost.
10896         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10897         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10898         New functions.
10899         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10900         split_address_cost, ptr_difference_cost, difference_cost,
10901         get_computation_cost_at, get_computation_cost,
10902         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10903         determine_use_iv_cost_condition, determine_use_iv_costs,
10904         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10905         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10906         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10907         Change type of cost to comp_cost.
10908         (determine_iv_cost): Increase cost of non-original ivs, instead
10909         of decreasing the cost of original ones.
10910         (get_address_cost): Indicate the complexity of the addressing mode 
10911         in comp_cost.
10912         (try_add_cand_for): Prefer using ivs not specific to some object.
10913         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10914
10915 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10916             Janis Johnson  <janis187@us.ibm.com>
10917
10918         PR target/34814
10919         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10920         (TARGET_INSTANTIATE_DECLS): Likewise.
10921         * target.h (expand_to_rtl_hook): New target hook.
10922         (instantiate_decls): Likewise.
10923         * function.c (instantiate_decl): Make non-static.  Rename to...
10924         (instantiate_decl_rtl): ... this.
10925         (instantiate_expr): Use instantiate_decl_rtl.
10926         (instantiate_decls_1): Likewise.
10927         (instantiate_decls): Likewise.
10928         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10929         * function.h (instantiate_decl_rtl): Add prototype.
10930         * cfgexpand.c (target.h): New include.
10931         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10932         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10933         (TARGET_INSTANTIATE_DECLS): Likewise.
10934         (TARGET_INITIALIZER): New target hooks added.
10935         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10936         New prototype.
10937         * config/rs6000/rs6000.c (tree-flow.h): New include.
10938         (machine_function): Add sdmode_stack_slot field.
10939         (rs6000_alloc_sdmode_stack_slot): New function.
10940         (rs6000_instantiate_decls): Likewise.
10941         (rs6000_secondary_memory_needed_rtx): Likewise.
10942         (rs6000_check_sdmode): Likewise.
10943         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10944         (TARGET_INSTANTIATE_DECLS): Likewise.
10945         (rs6000_hard_regno_mode_ok): Allow SDmode.
10946         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10947         (rs6000_emit_move): Handle SDmode.
10948         (function_arg_advance): Likewise.
10949         (function_arg): Likewise.
10950         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10951         SDmode var args for 32-bit compiles.
10952         (rs6000_secondary_reload_class): Handle SDmode.
10953         (rs6000_output_function_epilogue): Likewise.
10954         (rs6000_function_value): Simplify if statement.
10955         (rs6000_libcall_value): Likewise.
10956         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10957         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10958         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10959         (movsd_hardfloat): New define_insn.
10960         (movsd_softfloat): Likewise.
10961         (movsd_store): Likewise.
10962         (movsd_load): Likewise.
10963         (extendsddd2): Likewise.
10964         (extendsdtd2): Likewise.
10965         (truncddsd2): Likewise.
10966         (movdd_hardfloat64): Fixup comment.
10967         (UNSPEC_MOVSD_LOAD): New constant.
10968         (UNSPEC_MOVSD_STORE): Likewise.
10969
10970 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10971
10972         PR c++/34965
10973         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10974         TRUTH_XOR_EXPR.
10975         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10976         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10977         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10978         and TRUTH_XOR_EXPR.
10979
10980 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10981
10982         PR target/34794
10983         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10984         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10985         __LONGDOUBLE128 too.
10986         * config/rs6000/aix61.h: New file.
10987
10988 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10989
10990         PR rtl-optimization/34959
10991         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10992         popcount and parity rtxes the same mode as their operand.
10993         Truncate or extend the result to the return value's mode
10994         if necessary.
10995
10996 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10997
10998         PR target/34981
10999         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
11000         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
11001         to GOT_VERSION_REGNUM.
11002         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
11003         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
11004         * config/mips/mips.c (mips_emit_call_insn): New function.
11005         (mips_call_tls_get_addr): Call mips_expand_call directly.
11006         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
11007         emit_call_insn.
11008         (mips16_build_call_stub): Likewise.  Return the call insn or null.
11009         (mips_expand_call): Update the call to mips16_build_call_stub
11010         accordingly and a remove redundant condition.  Assert that MIPS16
11011         stubs do not use lazy binding.  Use mips_emit_call_insn and return
11012         the call insn.
11013         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
11014         TARGET_USE_GOT.
11015         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
11016         (mips_avoid_hazard): Remove hazard_set handling.
11017         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
11018         (UNSPEC_RESTORE_GP): ...this.
11019         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
11020         (FAKE_CALL_REGNO): Rename to...
11021         (GOT_VERSION_REGNUM): ...this.
11022         (type): Add "ghost" value.  Add an associated insn reservation.
11023         (hazard_set): Remove.
11024         (exception_receiver): Rename to...
11025         (restore_gp): ...this and update the unspec identifier accordingly.
11026         (exception_receiver, nonlocal_got_receiver): New expanders.
11027         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
11028         FAKE_CALL_REGNO.  Remove hazard_set attribute.
11029         (set_got_version, update_got_version): New patterns.
11030
11031 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
11032
11033         PR target/34970
11034         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
11035
11036 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11037
11038         PR other/31955
11039         * doc/install.texi2html: Generate gcc-vers.texi.
11040
11041 2008-01-25  DJ Delorie  <dj@redhat.com>
11042
11043         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11044
11045 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11046
11047         * config/c4x: Remove directory.
11048         * config.gcc (crx-*, mt-*): Mark obsolete.
11049         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
11050         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
11051         sh-*-rtemscoff*): Remove cases.
11052         * defaults.h (C4X_FLOAT_FORMAT): Remove.
11053         * real.c (encode_c4x_single, decode_c4x_single,
11054         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
11055         c4x_extended_format): Remove.
11056         * real.h (c4x_single_format, c4x_extended_format): Remove.
11057         * doc/extend.texi (interrupt, naked): Remove mention of attributes
11058         on C4x.
11059         (Pragmas): Remove comment about c4x pragmas.
11060         * doc/install.texi (c4x): Remove target-specific instructions.
11061         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
11062         * doc/md.texi (Machine Constraints): Remove C4x documentation.
11063         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
11064         refer to C4x source files as examples.
11065         (C4X_FLOAT_FORMAT): Remove documentation.
11066
11067 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
11068
11069         * config/bfin/bfin.c (override_options): Reorder tests so that
11070         flag_pic gets enabled for -msep-data.
11071
11072 2008-01-25  Richard Guenther  <rguenther@suse.de>
11073
11074         PR middle-end/32244
11075         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
11076         to its bitfield precision if required.
11077
11078 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11079
11080         PR middle-end/33880
11081         * tree-nested.c (walk_omp_for): New function.
11082         (convert_nonlocal_reference, convert_local_reference): Call
11083         walk_omp_for on OMP_FOR.
11084         (convert_call_expr): Call walk_body on OMP_FOR's
11085         OMP_FOR_PRE_INIT_BODY.
11086
11087 2008-01-25  Richard Guenther  <rguenther@suse.de>
11088
11089         PR tree-optimization/34966
11090         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
11091         default defs and PHI_NODEs we have to insert after the
11092         defining statement.
11093
11094 2008-01-24  Nick Clifton  <nickc@redhat.com>
11095
11096         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
11097         Provide a default definition.
11098         (LIBGCC2_UNITS_PER_WORD): Likewise.
11099
11100         * config/stormy16/stormy16.c: Include df.h for the prototype
11101         for df_regs_ever_live_p.
11102         (xstormy16_expand_builtin_va_start): Convert the stack offset
11103         into a component_ref and then use POINTER_PLUS_EXPR to add it
11104         to the incoming_virtual_args_rtx.
11105         (xstormy16_gimplify_va_arg_expr): Rename to
11106         xstormy16_gimplify_va_arg_expr.
11107         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
11108         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
11109         xstormy16_gimplify_va_arg_expr.
11110         Fix up some formatting issues.
11111
11112         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
11113         Move to predicates.md.
11114         (xs_hi_general_operand): Likewise.
11115         (xs_hi_nonmemory_operand): Likewise.
11116         * config/stormy16/predicates.md:
11117         (xstormy16_carry_plus_operand): New predicate.
11118         (xs_hi_general_operand): New predicate.
11119         (xs_hi_nonmemory_operand): New predicate.
11120         * config/stormy16/stormy16-protos.h:
11121         (xstormy16_carry_plus_operand): Delete prototype.
11122         (xs_hi_general_operand): Likewise.
11123         (xs_hi_nonmemory_operand): Likewise.
11124
11125         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
11126         modifiers as they are no longer needed and they can trigger
11127         reload spill failures.
11128
11129         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
11130         with a match_operand in order to help reload.
11131
11132         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
11133         constraint with 'e' for the 8th alternative as this version of
11134         the mov.w instruction only accepts the lower 8 registers.
11135
11136 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
11137
11138         PR target/34856
11139         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
11140         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
11141         vector elements.
11142
11143 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11144
11145         PR middle-end/33333
11146         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
11147
11148 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11149
11150         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
11151         New functions.
11152         (remove_structure): Update allocations list before removing structure.
11153         
11154 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11155
11156         * ipa-struct-reorg.c (is_safe_cond_expr, 
11157         create_new_stmts_for_cond_expr): Use integer_zerop function,
11158         that recognize not only zero-pointer, but zero-integer too.
11159
11160 2008-01-25  Ben Elliston  <bje@au.ibm.com>
11161
11162         PR other/22232
11163         * fixproto: Escape "." in sed expression that strips leading "./".
11164
11165 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11166
11167         PR driver/34904
11168         * gcc.c (SWITCH_OK): Removed.
11169         (SWITCH_LIVE): Changed to bit.
11170         (SWITCH_FALSE): Likewise.
11171         (SWITCH_IGNORE): Likewise.
11172         (switchstr): Change live_cond to unsigned int.
11173         (process_command): Replace SWITCH_OK with 0.
11174         (do_self_spec): Likewise.
11175         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
11176         (give_switch): Likewise.
11177         (used_arg): Likewise.
11178         (do_spec_1): Set the SWITCH_IGNORE bit.
11179         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
11180         bits.  Set the SWITCH_LIVE bit.
11181
11182 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
11183
11184         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
11185
11186 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
11187
11188         PR tree-optimization/34472
11189         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
11190         parameter to a "bool *" and set *DATA to false if there is
11191         an unsafe access.  Do not delete the structure here.
11192         (check_cond_exprs): Delete it here instead.
11193         (check_cond_exprs, exclude_cold_structs): Do not increase
11194         I when removing a structure.
11195
11196 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
11197
11198         PR target/34856
11199         * config/i386/i386.c (ix86_expand_vector_init): Consider only
11200         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
11201
11202 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
11203
11204         PR middle-end/34934
11205         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
11206         a fixed vector for stack.
11207
11208 2008-01-24  Ben Elliston  <bje@au.ibm.com>
11209
11210         PR c++/25701
11211         * doc/gcc.texi (Software development): Add a direntry for g++.
11212         
11213 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
11214
11215         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11216         stale and straggling -fforce-addr comments above.
11217
11218         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11219         define.
11220         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11221         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11222
11223 2008-01-23  Michael Matz  <matz@suse.de>
11224
11225         PR debug/34895
11226         * dwarf2out.c (force_type_die): Use modified_type_die instead of
11227         gen_type_die.
11228
11229 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
11230
11231         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11232         malloc result type.
11233
11234 2008-01-23 Anatoly Sokolov <aesok@post.ru>
11235
11236         * config/avr/avr.c (avr_current_arch): New variable.
11237         (avr_arch_types): Add 'avr31' and 'avr51' entries.
11238         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11239         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11240         (avr_override_options): Init 'avr_current_arch'. 
11241         (base_arch_s): Move from here...
11242         * config/avr/avr.h (base_arch_s): ... here. Add new members 
11243         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
11244         'mega' to 'have_jmp_call'.
11245         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
11246         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
11247         macros.
11248         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
11249         architectures.
11250         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
11251         MULTILIB_MATCHES): (Ditto.).
11252
11253 2008-01-23  Richard Guenther  <rguenther@suse.de>
11254
11255         PR middle-end/31529
11256         * cgraphunit.c (cgraph_reset_node): Always mark the node
11257         not reachable if it is not queued already.
11258
11259 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11260
11261         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11262         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11263         (cputype_selected): New static variable.
11264         (bfin_handle_option): Set it if -mcpu is used.
11265         (override_option): Select default set of workarounds if no cpu type
11266         selected on the command line.
11267         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11268
11269         From  Michael Frysinger  <michael.frysinger@analog.com>
11270         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11271         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11272
11273         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11274         for bf547, bf523, bf524, and bf526.
11275         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11276         bf526.
11277         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11278         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11279         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11280         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11281         * doc/invoke.texi (Blackfin Options): Document that
11282         -mcpu now accept bf547, bf523, bf524, and bf526.
11283
11284 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11285
11286         PR rtl-optimization/34628
11287         * combine.c (try_combine): Stop and undo after the first combination
11288         if an autoincrement side-effect on the first insn has effectively
11289         been lost.
11290
11291 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11292
11293         PR target/34529
11294         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11295         Offset addresses are not valid for Altivec or paired float modes.
11296
11297 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11298
11299         PR c++/34607
11300         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11301         if DECL_INITIAL (decl) is error_mark_node.
11302
11303         PR c++/34914
11304         * c-common.c (handle_vector_size_attribute): Only allow
11305         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11306         the same way as pointer, array etc. types.
11307         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11308
11309         PR c++/34917
11310         * tree.c (build_type_attribute_qual_variant): Call
11311         build_qualified_type if attributes are equal, but quals are not.
11312
11313 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11314
11315         PR 32102
11316         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11317         * flags.h (warn_strict_aliasing): Remove.
11318         (warn_strict_overflow): Remove.
11319         * opts.c (warn_strict_aliasing): Remove.
11320         (warn_strict_overflow): Remove.
11321         * c-opts.c (c_common_handle_option): -Wall only sets
11322         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11323         (c_common_post_options): Give default values to -Wstrict-aliasing
11324         and -Wstrict-overflow if they are uninitialized.
11325         * common.opt (Wstrict-aliasing): Specify Var and Init.
11326         (Wstrict-overflow): Likewise.
11327
11328 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11329
11330         PR rtl-optimization/26854
11331         PR rtl-optimization/34400
11332         PR rtl-optimization/34884
11333         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11334         DF_RD->gen.
11335         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11336         (df_rd_bb_info.expanded_lr_out): Deleted
11337         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11338         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11339         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11340         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11341         Removed code to allocate, initialize or free expanded_lr_out.
11342         (df_rd_bb_local_compute_process_def): Restructured to make more
11343         understandable.
11344         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11345         sets if the sets are being trimmed.
11346
11347 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11348
11349         PR bootstrap/32287
11350         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11351         (as_vers): Likewise.
11352         * configure: Regenerated.
11353
11354 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11355
11356         PR middle-end/33092
11357         * tree-pass.h (pass_build_alias): New pass.
11358         * tree-ssa-alias.c (gate_build_alias): New.
11359         (pass_build_alias): New.
11360         * passes.c (init_optimization_passes): Add pass_build_alias after
11361         pass_create_structure_vars.
11362
11363 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11364
11365         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11366         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11367         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11368         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11369         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11370         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11371         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11372         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11373         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11374         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11375         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11376         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11377         * config/s390/s390.md (FP_ALL): New mode iterator.
11378         (_d): New mode attribute.
11379         ("*signbit<mode>2>"): Changed mode of first operand.
11380         ("isinf<mode>2"): Changed mode of first operand.
11381         ("*TDC_insn"): Adaptation for DFP modes.
11382
11383 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11384
11385         * tree.c (check_qualified_type): Improve function description.
11386
11387 2008-01-21  Jason Merrill  <jason@redhat.com>
11388
11389         PR c++/34196
11390         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11391         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11392         if it is set.
11393
11394 2008-01-21  DJ Delorie  <dj@redhat.com>
11395
11396         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11397         return zero.
11398
11399 2008-01-21  Richard Guenther  <rguenther@suse.de>
11400
11401         PR middle-end/34856
11402         * tree-cfg.c (verify_expr): Allow all invariant expressions
11403         instead of just constant class ones as reference argument.
11404         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11405         like any other constant.
11406         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11407
11408 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11409
11410         * regmove.c (fixup_match_1): Update call crossed frequencies.
11411
11412 2008-01-21  Richard Guenther  <rguenther@suse.de>
11413
11414         PR c/34885
11415         * tree-inline.c (setup_one_parameter): Deal with mismatched
11416         types using a VIEW_CONVERT_EXPR.
11417
11418 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11419             Olga Golovanevsky  <olga@il.ibm.com>
11420         
11421         PR tree-optimization/34701
11422         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11423         when the structure size is not a power of 2.
11424
11425 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11426
11427         * doc/install.texi: Add doc for --enable-checking=df.
11428         
11429 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11430
11431         PR rtl-optimization/34808
11432         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11433
11434 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11435
11436         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11437         input.
11438
11439 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11440
11441         PR rtl-optimization/26854
11442         PR rtl-optimization/34400
11443         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11444         DF_RD->gen.
11445         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11446         (df_rd_bb_info.expanded_lr_out): New.
11447         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11448         * loop_iv.c (iv_analysis_loop_init): Ditto.
11449         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11450         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11451         Added code to allocate, initialize or free expanded_lr_out.
11452         (df_rd_bb_local_compute_process_def): Restructured to make
11453         more understandable.
11454         (df_rd_confluence_n): Add code to do nothing with fake edges and
11455         code to no apply invalidate_by_call sets if the sets are being trimmed.
11456         (df_lr_local_finalize): Renamed to df_lr_finalize.
11457         (df_live_local_finalize): Renamed to df_live_finalize.
11458
11459 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11460
11461         PR target/34831
11462         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11463         deciding whether to use reciprocal instructions.
11464
11465 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11466
11467         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11468         dwarf2out_note_section_used if cold_text_section is NULL.
11469
11470 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11471
11472         PR gcov-profile/34610
11473         * tree-cfg.c (make_edges): Mark both outgoing edges from
11474         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11475         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11476         from OMP_FOR and OMP_CONTINUE outgoing edges.
11477
11478         * tree-profile.c (tree_profiling): Return early if
11479         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11480         at the end.
11481         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11482         from cfun to child_cfun.
11483         * function.h (struct function): Add after_tree_profile bit.
11484
11485 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11486
11487         * config/avr/avr.S (_exit): Disable interrupt.
11488
11489 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11490             Steven Bosscher  <stevenb.gcc@gmail.com>
11491
11492         PR rtl-optimization/26854
11493         PR rtl-optimization/34400
11494         * df-problems.c (df_live_scratch): New scratch bitmap.
11495         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11496         (df_live_reset): Clear the proper bitmaps.
11497         (df_live_bb_local_compute): Only process the artificial defs once
11498         since the order is not important.
11499         (df_live_init): Init the df_live sets only with the variables
11500         found live by df_lr.
11501         (df_live_transfer_function): Use the df_lr sets to prune the
11502         df_live sets as they are being computed.  
11503         (df_live_free): Free df_live_scratch.
11504
11505 2008-01-18  Ian Lance Taylor  <iant@google.com>
11506
11507         * common.opt: Add fmerge-debug-strings.
11508         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11509         flag_merge_debug_strings rather than flag_merge_constants.
11510         * doc/invoke.texi (Option Summary): Mention
11511         -fmerge-debug-strings.
11512         (Debugging Options): Document -fmerge-debug-strings.
11513
11514 2008-01-18  Ian Lance Taylor  <iant@google.com>
11515
11516         PR c++/33407
11517         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11518         (struct tree_function_decl): Add new field operator_new_flag.
11519         * tree-inline.c (expand_call_inline): When inlining a call to
11520         operator new, force the return value to go into a variable, and
11521         set DECL_NO_TBAA_P on that variable.
11522         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11523
11524 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11525
11526         PR debug/34484
11527         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11528         DWARF2_DEBUGGING_INFO.
11529         (dwarf2out_note_section_used): Ditto.  Add prototype.
11530         (have_multiple_function_sections, text_section_used,
11531         cold_text_section_used, *cold_text_sections): Move declarations
11532         before their uses.
11533
11534 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11535
11536         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11537         field and add signal_ra.
11538         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11539         assignments to frame state pc.  Move end of stack check after
11540         MD_FALLBACK_FRAME_STATE_FOR.
11541         (uw_update_context_1): Use frame state signal_regs if set, instead
11542         of checking signal_frame flag.
11543         (uw_update_context): Use frame state signal_ra if set.
11544         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11545         * config/xtensa/linux-unwind.h: New file.
11546
11547 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11548
11549         * modulo-sched.c (get_sched_window): Fix comment typo.
11550
11551 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11552
11553         PR tree-optimization/34648
11554         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11555
11556 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11557
11558         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11559         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11560
11561 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11562
11563         PR rtl-optimization/34400
11564         * df-core.c (df_worklist_dataflow_overeager,
11565         df_worklist_dataflow_doublequeue): New functions.
11566         (df_worklist_dataflow): Two different worklist solvers.
11567         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11568         New param.
11569
11570 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11571
11572         PR testsuite/34821
11573         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11574         and ftree-parallelize-loops.
11575
11576 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11577
11578         PR rtl-optimization/34826
11579         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11580
11581 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11582
11583         * global.c (find_reg): Mark the eh regs as used if necessary.
11584         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11585         * ra.h (struct allocno): no_eh_reg field added.  Changed
11586         no_stack_reg type to bitfield.
11587
11588 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11589
11590         * tree.c (substitute_in_expr): Add missing 'break'.
11591
11592 2008-01-17  Richard Guenther  <rguenther@suse.de>
11593
11594         PR tree-optimization/34825
11595         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11596         x / x as division to handle.
11597
11598 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11599
11600         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11601         "-pthread" is specified.
11602         * pa-hpux11.h (LIB_SPEC): Likewise.
11603
11604 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11605             Peter Bergner  <bergner@vnet.ibm.com>
11606
11607         PR rtl-optimization/33796
11608         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11609
11610 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11611
11612         PR libgfortran/34699
11613         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11614         static links.
11615         * pa-hpux10.h (LINK_SPEC): Likewise.
11616         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11617
11618 2008-01-16  Richard Guenther  <rguenther@suse.de>
11619
11620         PR middle-end/32628
11621         * fold-const.c (fold_convert_const_int_from_int): Do not
11622         set overflow if that occured only because of a sign extension
11623         change when converting from/to a sizetype with the same
11624         precision and signedness.
11625
11626 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11627
11628         PR debug/34249
11629         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11630         location address to the correct place.  Update copyright year.
11631
11632 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11633
11634         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11635         no dependences in the dependence_relations vector.
11636
11637 2008-01-16  Jan Hubicka  <jh@suse.cz>
11638
11639         PR rtl-optimization/31396
11640         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11641         * cfg.c (dump_reg_info): Print it.
11642         * regs.h (struct reg_info_t): add freq_calls_crossed.
11643         (REG_FREQ_CALLS_CROSSED): New macro.
11644         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11645         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11646         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11647         regmove_optimize): Update call crossed frequencies.
11648         * local-alloc.c (struct qty): Add freq_calls_crossed.
11649         (alloc_qty): Copute freq_calls_crossed.
11650         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11651         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11652         * ra.h (struct allocno): Add freq_calls_crossed.
11653
11654 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11655
11656         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11657         libgomp when compiling with ftree-parallelize-loops.
11658         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11659
11660 2008-01-16  Richard Guenther  <rguenther@suse.de>
11661
11662         PR tree-optimization/34769
11663         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11664         * tree.c (int_cst_value): Instead make this function more
11665         permissive in what it accepts as valid input.  Document this
11666         function always sign-extends the value.
11667
11668 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11669             Richard Guenther  <rguenther@suse.de>
11670
11671         PR c/34668
11672         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11673         (gimple_fold_indirect_ref_rhs): ... this.
11674         (gimple_fold_indirect_ref): New function with foldings
11675         that preserve lvalueness.
11676         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11677         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11678         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11679         to fold an INDIRECT_REF, fall back to the old use of
11680         fold_indirect_ref_1.
11681
11682 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11683
11684         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11685         free_conflict_function.
11686         (compute_self_dependence): Same.
11687
11688 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11689
11690         PR debug/34249
11691         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11692         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11693         function global.
11694         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11695         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11696         for DWARF2_UNWIND_INFO targets.
11697
11698 2008-01-16  Richard Guenther  <rguenther@suse.de>
11699
11700         PR c/34768
11701         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11702         type qualifiers for function types.
11703
11704 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11705
11706         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11707         loop_iterator li from previous commit.
11708
11709 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11710
11711         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11712
11713 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11714
11715         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11716         (parallelize_loops): Don't parallelize irreducible components.
11717
11718 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11719
11720         PR c++/24924
11721         * c-opts (c_common_post_options): Do not enable CPP
11722         flag_pedantic_errors by default.
11723         
11724 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11725
11726         PR rtl-optimization/31944
11727         * cse.c (remove_pseudo_from_table): New function.
11728         (merge_equiv_classes): Use above function to remove pseudo-registers.
11729         (invalidate): Likewise.
11730
11731 2008-01-13  Richard Guenther  <rguenther@suse.de>
11732
11733         PR middle-end/34601
11734         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11735         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11736
11737 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11738
11739         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11740         validate_change to unshare the source of the PC set.
11741
11742 2008-01-12  Jan Hubicka  <jh@suse.cz>
11743
11744         PR middle-end/32135
11745         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11746         references above array bounds.  This might trigger bounds checks for
11747         pointers to arrays.
11748
11749 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11750
11751         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11752         new_replaceable_dependencies.
11753
11754 2008-01-12  Doug Kwan  <dougkwan@google.com>
11755
11756         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11757         instead of OPT_Wreturn_type in warning due to ignored return type
11758         qualifiers.
11759         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11760         options included in -Wextra.
11761         * c.opt: New option -Wignored_qualifiers.
11762         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11763         -Wignore_qualifiers.
11764         (-Wignored-qualifiers): Document.
11765         (-Wreturn-type): Remove description of functionality now handled
11766         by -Wignored-qualifiers.
11767
11768 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11769
11770         PR ada/33788
11771         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11772         NOP_EXPR if it is between integral types with the same precision.
11773
11774 2008-01-12  Jan Hubicka  <jh@suse.cz>
11775
11776         PR other/28023
11777         * invoke.texi (max-inline-recursive-depth): Fix default value.
11778
11779 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11780
11781         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11782         correct type.
11783
11784 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11785         
11786         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11787         
11788 2008-01-11  James E. Wilson  <wilson@specifix.com>
11789
11790         PR target/26015
11791         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11792
11793 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11794
11795         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11796         save/restore frame pointer register and don't use 'call-prologues' 
11797         optimization in function with "OS_task" attribute.
11798
11799 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11800
11801         PR middle-end/31309
11802         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11803         when copying to memory.
11804
11805 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11806
11807         PR rtl-optimization/30905
11808         * cfgcleanup.c: Include dce.h
11809         (crossjumps_occured): New global variable.
11810         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11811         If something changed, set crossjumps_occured to true.
11812         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11813         Don't add/remove fake edges to exit here...
11814         (cleanup_cfg): ...but do it here, when crossjumping.
11815         Run a fast DCE when successful crossjumps occured in the latest
11816         iteration of try_optimize_cfg.
11817
11818 2008-01-11  Richard Guenther  <rguenther@suse.de>
11819
11820         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11821         (struct vn_unary_op_s): Likewise.
11822         (vn_reference_insert): Free old reference on hash collision.
11823
11824 2008-01-10  Raksit Ashok  <raksit@google.com>
11825
11826         PR rtl-optimization/27971
11827         * combine.c (find_split_point): Split PLUS expressions which are
11828         inside a MEM rtx, and whose first operand is complex.
11829
11830 2008-01-10  DJ Delorie  <dj@redhat.com>
11831
11832         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11833         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11834         (m32c_hard_regno_ok): Call the underlying function.
11835
11836 2008-01-10  Richard Guenther  <rguenther@suse.de>
11837
11838         PR middle-end/34683
11839         * tree-cfg.c (tree_merge_blocks): Do not go through the
11840         full-blown folding and stmt updating path if we just deal
11841         with virtual operands.
11842         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11843         test for abnormal SSA_NAMEs.
11844
11845 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11846
11847         PR middle-end/34641
11848         * reload.c (push_reload): Add assertions.  All constants from
11849         reg_equiv_constant should have been used for replacing the respective
11850         pseudo earlier.
11851         (find_reloads_address): Invoke find_reloads_address_part for
11852         constant taken from the reg_equiv_constant array.
11853
11854 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11855
11856         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11857         field (valnum) the first in the struct.  Replace bools with
11858         unit bit fields.
11859
11860 2008-01-10  Richard Guenther  <rguenther@suse.de>
11861
11862         PR tree-optimization/34651
11863         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11864         types and ordering for masking and converting.
11865
11866 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11867
11868         PR tree-optimization/34017
11869         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11870         also for PHI_NODE expressions.
11871
11872 2008-01-09  Jan Hubicka  <jh@suse.cz>
11873
11874         PR tree-optimization/34708
11875         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11876         based on number of case labels.
11877         (init_inline_once): Remove switch_cost.
11878         * tree-inline.h (eni_weights_d): Remove switch_cost.
11879
11880 2008-01-09  Richard Guenther  <rguenther@suse.de>
11881         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11882
11883         PR middle-end/30132
11884         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11885         temporary if an rvalue is ok or an lvalue is not required.
11886
11887 2008-01-09  Richard Guenther  <rguenther@suse.de>
11888
11889         PR middle-end/34458
11890         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11891         adjust return type.
11892
11893 2008-01-09  Richard Guenther  <rguenther@suse.de>
11894
11895         PR middle-end/34679
11896         * tree.c (host_integerp): Check for sizetype only if the
11897         type is an integer type.
11898
11899 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11900
11901         PR debug/26364
11902         * opts.c (decode_options): Disable inlining of functions called
11903         once if not in unit-at-a-time mode.
11904
11905 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11906
11907         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11908
11909 2008-01-08  Richard Guenther  <rguenther@suse.de>
11910
11911         PR middle-end/31863
11912         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11913         out early if the result will be unused.
11914
11915 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11916
11917         PR target/34709
11918         Revert:
11919
11920         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11921         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11922         for TARGET_RECIP.       
11923         
11924 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11925         
11926         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11927         for vectorization tuned.
11928         
11929 2008-01-08  Richard Guenther  <rguenther@suse.de>
11930
11931         PR tree-optimization/34683
11932         * tree-ssa-operands.c (operand_build_cmp): Export.
11933         * tree-ssa-operands.h (operand_build_cmp): Declare.
11934         * tree-vn.c (vuses_compare): Remove.
11935         (sort_vuses): Use operand_build_cmp.
11936         (sort_vuses_heap): Likewise.
11937         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11938         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11939         (vdefs_to_vec): Do not sort already sorted VDEFs.
11940
11941 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11942
11943         PR middle-end/34694
11944         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11945
11946 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11947
11948         PR target/34702
11949         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11950         limitations of reciprocal sequences on x86 targets.
11951
11952 2008-01-08  Richard Guenther  <rguenther@suse.de>
11953
11954         PR tree-optimization/34683
11955         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11956
11957 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11958
11959         PR target/34622
11960         * config/darwin.c (darwin_mergeable_string_section): Don't use
11961         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11962
11963 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11964
11965         PR target/34682
11966         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11967         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11968         predicates of op0 and op1 to register_operand.
11969         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11970         expander using X87MODEF mode iterator.  Change predicates of
11971         op0 and op1 to register_operand.
11972         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11973         corresponding patterns and macroize using MODEF macro.  Change
11974         predicates of op0 and op1 to register_operand and remove
11975         "m" constraint. Disparage "r" alternative with "!".
11976         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11977         macroize using X87MODEF macro.  Change predicates of op0 and op1
11978         to register_operand and remove "m" constraint.  Disparage "r"
11979         alternative with "!".
11980         (absneg splitter with memory operands): Remove.
11981         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11982         patterns and macroize using X87MODEF mode iterator.
11983         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11984         Change predicate of op1 to register_operand.
11985         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11986         for memory operands.
11987
11988 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11989
11990         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11991
11992 2008-01-07  Richard Guenther  <rguenther@suse.de>
11993
11994         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11995         fields.
11996
11997 2008-01-07  Richard Guenther  <rguenther@suse.de>
11998
11999         PR tree-optimization/34683
12000         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
12001         VOPs of the needed size to save memory.  Use VEC_quick_push
12002         to save compile-time.
12003         (vdefs_to_vec): Likewise.
12004
12005 2008-01-07  Sa Liu  <saliu@de.ibm.com>
12006
12007         * config/spu/spu.md (divdf3): Genetate inline code for double
12008         division.  The implementation doesn't handle INF or NAN, therefore it
12009         only applies when -ffinite-math-only is given.
12010
12011 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
12012
12013         PR libstdc++/34680
12014         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
12015         * doc/cpp.texi ([Common Predefined Macros]): Document.
12016
12017 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
12018
12019         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
12020         order to use commutative addition instead of subtraction.
12021
12022 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12023             Mircea Namolaru  <namolaru@il.ibm.com>
12024             Vladimir Yanovsky  <yanov@il.ibm.com>
12025             Revital Eres  <eres@il.ibm.com>
12026
12027         PR tree-optimization/34263
12028         * tree-outof-ssa.c (process_single_block_loop_latch,
12029         contains_tree_r): New functions.
12030         (analyze_edges_for_bb): Call process_single_block_loop_latch
12031         function to empty single-basic-block latch block if possible.
12032
12033 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12034
12035         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12036         for TARGET_RECIP.
12037         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
12038
12039 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12040
12041         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
12042
12043 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12044
12045         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
12046
12047 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
12048
12049         PR tree-optimization/34618
12050         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
12051         flag from T.
12052
12053 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12054
12055         PR target/34673
12056         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
12057         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
12058         Update copyright year.
12059
12060         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
12061         Update copyright year.
12062         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
12063         using NR fixup.
12064
12065 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
12066
12067         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
12068         edge does not point to current bb before changing need_assert.
12069
12070 2008-01-04  Richard Guenther  <rguenther@suse.de>
12071
12072         PR middle-end/34029
12073         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
12074         for verifying purposes if they are is_gimple_min_invariant.
12075
12076 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
12077
12078         PR tree-optimization/34448
12079         PR tree-optimization/34465
12080         * gimplify.c (gimplify_init_constructor): Add new parameter
12081         notify_temp_creation.  Use it.
12082         (gimplify_modify_expr_rhs): Take volatiles into account when
12083         optimizing constructors.
12084         Do not optimize constructors if gimplify_init_constructor will dump to
12085         memory.
12086         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
12087         * gcc.c-torture/compile/pr34448.c: New.
12088
12089 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
12090
12091         PR gcov-profile/34609
12092         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
12093         return_slot if result is TREE_ADDRESSABLE.
12094
12095 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
12096
12097         * config/mips/mips.md (sqrt_condition): Tweak comment.
12098         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
12099
12100 2008-01-03  Tom Tromey  <tromey@redhat.com>
12101
12102         PR c/34457
12103         * c-common.c (c_type_hash): Handle VLAs.
12104
12105 2008-01-03  Jan Hubicka  <jh@suse.cz>
12106
12107         PR tree-optimization/31081
12108         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
12109         0 when inlining and not inlining to first basic block.
12110         (remap_decl): When var is initialized to 0, don't set default_def.
12111         (expand_call_inline): Set entry_bb.
12112         * tree-inline.h (copy_body_data): Add entry_bb.
12113
12114 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12115
12116         PR c++/34619
12117         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
12118         before returning.
12119
12120         PR tree-optimization/29484
12121         * tree-inline.c (inline_forbidden_p_2): New function.
12122         (inline_forbidden_p): Disallow inlining if some static var
12123         has an address of a local LABEL_DECL in its initializer.
12124         * doc/extend.texi (Labels as Values): Document &&foo behaviour
12125         vs. inlining.
12126
12127 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
12128
12129         PR tree-optimization/34635
12130         * tree-data-ref.c (add_other_self_distances): Make sure that the
12131         evolution step is constant.
12132
12133 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12134
12135         PR middle-end/34608
12136         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
12137
12138 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
12139
12140         * tree-sra.c (scalarize_init): Insert the generate_element_init
12141         statements after the generate_element_zero statements.
12142
12143 2008-01-02  Richard Guenther  <rguenther@suse.de>
12144
12145         PR middle-end/34093
12146         PR middle-end/31976
12147         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
12148         for very large number of operands instead of ICEing.
12149
12150 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
12151
12152         PR target/34013
12153         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
12154         while stack probing.
12155
12156 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
12157
12158         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12159         in C++0x mode.
12160
12161 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
12162
12163         PR libmudflap/26442
12164         * tree-mudflap.c (mx_register_decls): Guard warning by
12165         !DECL_ARTIFICIAL check.
12166
12167 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
12168
12169         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
12170         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
12171         sse5_perm<mode>): Fix constraints.