OSDN Git Service

* config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
4         nonmemory_operand. Add "N" operand constraint.
5         (*btsi): Ditto.
6         (*jcc_btdi_mask_rex64): New instruction and split pattern.
7         (*jcc_btsi_mask): Ditto.
8         (*jcc_btsi_mask_1): Ditto.
9
10 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
11
12         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
13         TYPE_CANONICAL for copied element type.
14
15 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
16
17         PR target/36473
18         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
19         Add m_CORE2 and m_GENERIC.
20         * config/i386/predicates.md (bt_comparison_operator): New predicate.
21         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
22         (*btsi): Ditto.
23         (*jcc_btdi_rex64): New instruction and split pattern.
24         (*jcc_btsi): Ditto.
25         (*jcc_btsi_1): Ditto.
26         (*btsq): Fix Intel asm dialect operand order.
27         (*btrq): Ditto.
28         (*btcq): Ditto.
29
30 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
31
32         PR middle-end/36447
33         * simplify-rtx.c (simplify_subreg): Add check for shift count 
34         greater than size.
35
36 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
37
38         * doc/md.texi: Synchronize with later constraints.md change.
39         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
40         with a C implementation.
41         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
42         MFLO handling.
43         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
44         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
45         when moving to and from MD_REGNUM.
46         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
47         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
48         Handle byte and halfword moves.
49         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
50         separately.
51         * config/mips/constraints.md (h): Turn into NO_REGS.
52         (l, x): Update documentation.
53         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
54         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
55         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
56         (HILO): New mode iterator.
57         (MOVE128): Add TI.
58         (any_div): New code iterator.
59         (u): Extend code attribute to div and udiv.
60         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
61         d_operand in the splitters.  Remove redundant CONST_INT checks.
62         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
63         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
64         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
65         accordingly, using normal moves instead of unspecs to move LO into
66         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
67         (<u>mulsidi3): Handle expansion in C code.
68         (<u>mulsidi3_32bit_internal): Rename to...
69         (<u>mulsidi3_32bit): ...this.
70         (<u>mulsidi3_32bit_r4000): Fix insn separator.
71         (*<u>mulsidi3_64bit): Rename to...
72         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
73         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
74         to set LO and HI to the multiplication result.  Use a normal move
75         for MFLO and an unspec for MFHI.
76         (*<u>mulsidi3_64bit_parts): Replace with...
77         (<u>mulsidi3_64bit_hilo): ...this new instruction.
78         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
79         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
80         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
81         instead of HI.  Split the instruction into a separate multiplication
82         and MFHI if !TARGET_FIX_R4000.
83         (<su>muldi3_highpart): Likewise.
84         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
85         and the "=h" clobber.
86         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
87         (<u>mulditi3): New expander.
88         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
89         (madsi): Remove "=h" clobber.
90         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
91         Force the modulus result to be a GPR and split the instruction into
92         a division followed by an MFHI after reload.
93         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
94         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
95         the MIPS16 HIGH define_split.
96         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
97         of acc<->gpr moves to "multi".
98         (*movdi_64bit): Replace the single "x" alternative with
99         alternatives for moving into and out of "a".
100         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
101         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
102         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
103         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
104         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
105         (movti): New expander.
106         (*movti, *movti_mips16): New insns.
107         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
108         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
109         (mthi<GPR:mode>_<HILO:mode>): Likewise.
110         * config/mips/predicates.md (fpr_operand): Delete.
111         (d_operand): New predicate.
112
113 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
114
115         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
116         failure on some Bourne shells.
117         (x86_64-*-*): Ditto.
118
119 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
120
121         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
122
123 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
124
125         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
126         (sparc-sun-solaris2*): Likewise.
127
128 2008-06-09  Arnaud Charlet  <charlet@adacore.com
129
130         * doc/install.texi: Update requirements to build the Ada compiler.
131
132 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
133
134         * df-scan.c (struct df_scan_problem_data): Remove the
135         mw_link_pool alloc pool.
136         (df_scan_free_internal): Don't free it.
137         (df_scan_alloc): Don't allocate it.
138         * df.h (struct df_link): Update comment.
139
140 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
141
142         * except.h: Correct checks for when SJLJ exceptions must be used.
143
144 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
145
146         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
147         default.
148         
149 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
150
151         PR tree-optimization/36218
152         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
153         configure for the build system.
154         (BUILD_LDFLAGS): Define.
155         * configure: Regenerate.
156         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
157
158 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
159
160         PR target/36424
161         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
162         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
163         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
164
165 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
166
167         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
168
169 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
170
171         * config.gcc (Obsolete configurations): Remove list of
172         configurations.
173         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
174         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
175         targets matched by those patterns.
176         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
177         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
178         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
179         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
180         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
181         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
182         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
183         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
184         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
185         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
186         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
187         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
188         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
189         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
190         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
191         Make code for Solaris 7 and greater unconditional for Solaris.
192         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
193         Remove --with-* handling.
194         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
195         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
196         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
197         LINK_OS_WINDISS_SPEC): Remove.
198         * config/rs6000/sysv4.opt (mwindiss): Remove.
199         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
200         * configure: Regenerate.
201         * doc/cpp.texi: Don't mention BeOS.
202         * doc/extend.texi (interrupt): Don't mention MS1.
203         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
204         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
205         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
206         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
207         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
208         Remove.
209         * doc/invoke.texi (MT Options): Remove.
210         (-mwindiss): Remove.
211         (CRIS Options): Remove cris-axis-aout references.
212         (HPPA Options): Don't mention hppa1.1-*-pro.
213         * doc/md.texi: (MorphoTech family): Remove.
214         * libgcc2.c: Don't handle UWIN.
215         * config/alpha/t-unicosmk: Remove.
216         * config/alpha/unicosmk.h: Remove.
217         * config/arm/kaos-arm.h: Remove.
218         * config/arm/kaos-strongarm.h: Remove.
219         * config/arm/strongarm-coff.h: Remove.
220         * config/arm/strongarm-elf.h: Remove.
221         * config/arm/strongarm-pe.h: Remove.
222         * config/arm/t-strongarm-pe: Remove.
223         * config/arm/t-xscale-coff: Remove.
224         * config/arm/t-xscale-elf: Remove.
225         * config/arm/xscale-coff.h: Remove.
226         * config/arm/xscale-elf.h: Remove.
227         * config/chorus.h: Remove.
228         * config/cris/aout.h: Remove.
229         * config/cris/aout.opt: Remove.
230         * config/cris/t-aout: Remove.
231         * config/i386/beos-elf.h: Remove.
232         * config/i386/kaos-i386.h: Remove.
233         * config/i386/ptx4-i.h: Remove.
234         * config/i386/sco5.h: Remove.
235         * config/i386/sco5.opt: Remove.
236         * config/i386/sysv4-cpp.h: Remove.
237         * config/i386/sysv5.h: Remove.
238         * config/i386/t-beos: Remove.
239         * config/i386/t-sco5: Remove.
240         * config/i386/t-uwin: Remove.
241         * config/i386/uwin.asm: Remove.
242         * config/i386/uwin.h: Remove.
243         * config/kaos.h: Remove.
244         * config/mips/windiss.h: Remove.
245         * config/mt: Remove directory.
246         * config/pa/pa-osf.h: Remove.
247         * config/pa/pa-pro-end.h: Remove.
248         * config/pa/t-pro: Remove.
249         * config/ptx4.h: Remove.
250         * config/rs6000/beos.h: Remove.
251         * config/rs6000/kaos-ppc.h: Remove.
252         * config/rs6000/t-beos: Remove.
253         * config/rs6000/windiss.h: Remove.
254         * config/sh/kaos-sh.h: Remove.
255         * config/sol2-6.h: Remove.
256         * config/sparc/sol26-sld.h: Remove.
257         * config/sparc/sysv4-only.h: Remove.
258         * config/vax/bsd.h: Remove.
259         * config/vax/t-memfuncs: Remove.
260         * config/vax/ultrix.h: Remove.
261         * config/vax/vaxv.h: Remove.
262         * config/windiss.h: Remove.
263
264 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
265
266         PR rtl-optimization/36438
267         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
268         for vector shifts with constant scalar shift operands.
269
270 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
271
272         * doc/invoke.texi: Document -march=xlr.
273         * config/mips/xlr.md: New file.
274         * config/mips/mips.md: Include it.
275         (cpu): Add "xlr".
276         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
277         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
278         (mips_rtx_cost_data): Likewise.
279
280 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
281
282         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
283         PRE_INC and PRE_DEC cases.
284
285 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
286
287         PR rtl-optimization/36419
288         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
289         the emitting jump insn.
290
291         PR target/36362
292         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
293         is not bool, boolify the whole *expr_p and convert to the desired type.
294
295 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
296
297         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
298         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
299         Add omp_private_outer_ref hook, add another argument to
300         omp_clause_default_ctor hook.
301         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
302         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
303         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
304         hook_tree_tree_tree_tree_null.
305         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
306         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
307         * hooks.c (hook_tree_tree_tree_tree_null): New function.
308         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
309         * tree.def (OMP_TASK): New tree code.
310         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
311         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
312         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
313         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
314         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
315         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
316         OMP_CLAUSE_COLLAPSE_EXPR): Define.
317         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
318         (OMP_DIRECTIVE_P): Add OMP_TASK.
319         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
320         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
321         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
322         and OMP_CLAUSE_UNTIED entries.
323         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
324         num_ops to 2.
325         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
326         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
327         * tree-pretty-print.c (dump_omp_clause): Handle
328         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
329         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
330         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
331         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
332         warning about unsigned iterators.  Change decl/init/cond/incr
333         arguments to TREE_VECs, check arguments for all collapsed loops.
334         (c_finish_omp_taskwait): New function.
335         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
336         ws_clauses.
337         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
338         default_function_array_conversion on init.  Add par_clauses argument.
339         If decl is present in parallel's lastprivate clause, change it to
340         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
341         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
342         collapse count in clauses.
343         (c_parser_omp_for, c_parser_omp_parallel): Adjust
344         c_parser_omp_for_loop callers.
345         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
346         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
347         (c_parser_omp_clause_name): Handle collapse and untied clauses.
348         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
349         functions.
350         (c_parser_omp_clause_schedule): Handle schedule(auto).
351         Include correct location in the error message.
352         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
353         and PRAGMA_OMP_CLAUSE_UNTIED.
354         (OMP_TASK_CLAUSE_MASK): Define.
355         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
356         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
357         * tree-nested.c (convert_nonlocal_omp_clauses,
358         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
359         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
360         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
361         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
362         OMP_CLAUSE_DECL.
363         (conver_nonlocal_reference, convert_local_reference,
364         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
365         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
366         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
367         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
368         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
369         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
370         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
371         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
372         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
373         OMP_CLAUSE_UNTIED.
374         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
375         * c-common.h (c_finish_omp_taskwait): New prototype.
376         * gimple-low.c (lower_stmt): Handle OMP_TASK.
377         * tree-parloops.c (create_parallel_loop): Create 1 entry
378         vectors for OMP_FOR_{INIT,COND,INCR}.
379         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
380         (make_edges): Handle OMP_TASK.
381         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
382         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
383         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
384         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
385         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
386         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
387         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
388         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
389         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
390         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
391         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
392         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
393         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
394         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
395         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
396         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
397         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
398         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
399         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
400         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
401         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
402         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
403         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
404         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
405         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
406         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
407         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
408         original iterator is present in lastprivate clause or if
409         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
410         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
411         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
412         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
413         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
414         if it is set, lookup var in outer contexts too.  Handle
415         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
416         to be implicitly determined firstprivate for task regions.
417         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
418         if it is set, lookup var in outer contexts too.  Set
419         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
420         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
421         OMP_CLAUSE_UNTIED.  Take region_type as last argument
422         instead of in_parallel and in_combined_parallel.
423         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
424         Adjust callers.
425         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
426         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
427         (new_omp_context): Set default_kind to
428         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
429         (omp_region_type): New enum.
430         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
431         fields, add region_type.
432         (new_omp_context): Take region_type as argument instead of is_parallel
433         and is_combined_parallel.
434         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
435         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
436         ctx->is_combined_parallel checks.
437         (gimplify_omp_task): New function.
438         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
439         OMP_CLAUSE_UNTIED.
440         * omp-low.c (extract_omp_for_data): Use schedule(static)
441         for schedule(auto).  Handle pointer and unsigned iterators.
442         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
443         Add loops argument.  Extract data for collapsed OMP_FOR loops.
444         (expand_parallel_call): Assert sched_kind isn't auto,
445         map runtime schedule to index 3.
446         (struct omp_for_data_loop): New type.
447         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
448         Add loop, loops, collapse and iter_type fields.
449         (workshare_safe_to_combine_p): Disallow combined for if
450         iter_type is unsigned long long.  Don't combine collapse > 1 loops
451         unless all bounds and steps are constant.  Adjust extract_omp_for_data
452         caller.
453         (expand_omp_for_generic): Handle pointer, unsigned and long long
454         iterators.  Handle collapsed OMP_FOR loops.  Adjust
455         for struct omp_for_data changes.  If libgomp function doesn't return
456         boolean_type_node, add comparison of the return value with 0.
457         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
458         pointer, unsigned and long long iterators.  Adjust for struct
459         omp_for_data changes.
460         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
461         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
462         unsigned long long.  Allocate loops array, pass it to
463         extract_omp_for_data.  For collapse > 1 loops use always
464         expand_omp_for_generic.
465         (omp_context): Add sfield_map and srecord_type fields.
466         (is_task_ctx, lookup_sfield): New functions.
467         (use_pointer_for_field): Use is_task_ctx helper.  Change first
468         argument's type from const_tree to tree.  Clarify comment.
469         In OMP_TASK disallow copy-in/out sharing.
470         (build_sender_ref): Call lookup_sfield instead of lookup_field.
471         (install_var_field): Add mask argument.  Populate both record_type
472         and srecord_type if needed.
473         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
474         in srecord_type.
475         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
476         and DECL_FIELD_OFFSET.
477         (scan_sharing_clauses): Adjust install_var_field callers.  For
478         firstprivate clauses on explicit tasks allocate the var by value in
479         record_type unconditionally, rather than by reference.
480         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
481         Use is_taskreg_ctx instead of is_parallel_ctx.
482         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
483         (create_omp_child_function_name): Add task_copy argument, use
484         *_omp_cpyfn* names if it is true.
485         (create_omp_child_function): Add task_copy argument, if true create
486         *_omp_cpyfn* helper function.
487         (scan_omp_parallel): Adjust create_omp_child_function callers.
488         Rename parallel_nesting_level to taskreg_nesting_level.
489         (scan_omp_task): New function.
490         (lower_rec_input_clauses): Don't run constructors for firstprivate
491         explicit task vars which are initialized by *_omp_cpyfn*.  
492         Pass outer var ref to omp_clause_default_ctor hook if
493         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
494         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
495         OMP_CLAUSE_REDUCTION_INIT.
496         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
497         avoid duplicate setting of fields.  Handle
498         OMP_CLAUSE_PRIVATE_OUTER_REF.
499         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
500         copy-out if TREE_READONLY, only copy-in.
501         (expand_task_copyfn): New function.
502         (expand_task_call): New function.
503         (struct omp_taskcopy_context): New type.
504         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
505         New functions.
506         (lower_omp_parallel): Rename to...
507         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
508         Call create_task_copyfn if srecord_type is needed.  Adjust
509         sender_decl type.
510         (task_shared_vars): New variable.
511         (check_omp_nesting_restrictions): Warn if work-sharing,
512         barrier, master or ordered region is closely nested inside OMP_TASK.
513         Add warnings for barrier if closely nested inside of work-sharing,
514         ordered, or master region.
515         (scan_omp_1): Call check_omp_nesting_restrictions even for
516         GOMP_barrier calls.  Rename parallel_nesting_level to
517         taskreg_nesting_level.  Handle OMP_TASK.
518         (lower_lastprivate_clauses): Even if some lastprivate is found on a
519         work-sharing construct, continue looking for them on parent parallel
520         construct.
521         (lower_omp_for_lastprivate): Add lastprivate clauses
522         to the beginning of dlist rather than end.  Adjust for struct
523         omp_for_data changes.
524         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
525         not after it.  Handle collapsed OMP_FOR loops, adjust for
526         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
527         (get_ws_args_for): Adjust extract_omp_for_data caller.
528         (scan_omp_for): Handle collapsed OMP_FOR
529         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
530         (lower_omp_single_simple): If libgomp function doesn't return
531         boolean_type_node, add comparison of the return value with 0.
532         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
533         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
534         (parallel_nesting_level): Rename to...
535         (taskreg_nesting_level): ... this.
536         (is_taskreg_ctx): New function.
537         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
538         of is_parallel_ctx.
539         (execute_lower_omp): Rename parallel_nesting_level to
540         taskreg_nesting_level.
541         (expand_omp_parallel): Rename to...
542         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
543         Call omp_task_call for OMP_TASK regions.
544         (expand_omp): Adjust caller, handle OMP_TASK.
545         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
546
547         * bitmap.c (bitmap_default_obstack_depth): New variable.
548         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
549         if argument is NULL and bitmap_default_obstack is already initialized.
550         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
551         at the end.
552         * matrix-reorg.c (matrix_reorg): Likewise.
553
554 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
555
556         * config/i386/i386.md (*indirect_jump): Macroize using P
557         mode iterator.  Remove !TARGET_64BIT from insn constraints.
558         (*tablejump_1): Ditto.
559         (*indirect_jump_rex64): Remove insn pattern.
560         (*tablejump_1_rex64): Ditto.
561         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
562         and eh_return_si insn patterns.
563
564 2008-06-06  Richard Guenther  <rguenther@suse.de>
565
566         * tree-ssa-structalias.c (merge_smts_into): Remove.
567         (find_what_p_points_to): Do not bother to compute the
568         points-to set for pt_anything pointers.
569         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
570         for pt_anything pointers is ok.
571
572 2008-06-06  Jan Hubicka  <jh@suse.cz>
573
574         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
575
576 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
577
578         * cgraph.c: Fix typos in comments.
579         (cgraph_availability_names): Fix string typo.
580         * fold-const.c: Fix typos in comments.
581         (fold_binary): Fix typo in warning.
582         * genautomata.c: Fix typos in comments.
583         (check_presence_pattern_sets): Fix typo in local variable.
584         (output_description): Fix typo in output.
585         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
586         * hwint.h: Likewise.
587         * matrix-reorg.c (check_allocation_function): Likewise.
588         * omega.c (smooth_weird_equations): Likewise.
589         * auto-inc-dec.c: Fix typos in comments.
590         * bb-reorder.c: Likewise.
591         * builtins.c: Likewise.
592         * c-common.c: Likewise.
593         * c-cppbuiltin.c: Likewise.
594         * c-parser.c: Likewise.
595         * c-pretty-print.c: Likewise.
596         * cfgcleanup.c: Likewise.
597         * cfgexpand.c: Likewise.
598         * cfghooks.c: Likewise.
599         * cfglayout.c: Likewise.
600         * cfgloopmanip.c: Likewise.
601         * cgraphunit.c: Likewise.
602         * coverage.c: Likewise.
603         * dbxout.c: Likewise.
604         * df-byte-scan.c: Likewise.
605         * df-core.c: Likewise.
606         * df-problems.c: Likewise.
607         * df-scan.c: Likewise.
608         * dfp.c: Likewise.
609         * dominance.c: Likewise.
610         * domwalk.c: Likewise.
611         * dse.c: Likewise.
612         * dwarf2out.c: Likewise.
613         * emit-rtl.c: Likewise.
614         * et-forest.c: Likewise.
615         * function.c: Likewise.
616         * function.h: Likewise.
617         * gcc.c: Likewise.
618         * gcov-io.c: Likewise.
619         * gcov.c: Likewise.
620         * gcse.c: Likewise.
621         * genattrtab.c: Likewise.
622         * ggc-page.c: Likewise.
623         * gimplify.c: Likewise.
624         * gthr-lynx.h: Likewise.
625         * haifa-sched.c: Likewise.
626         * ipa-cp.c: Likewise.
627         * ipa-inline.c: Likewise.
628         * ipa-prop.h: Likewise.
629         * ipa-pure-const.c: Likewise.
630         * ipa-struct-reorg.c: Likewise.
631         * ipa-struct-reorg.h: Likewise.
632         * ipa-type-escape.c: Likewise.
633         * ipa.c: Likewise.
634         * loop-doloop.c: Likewise.
635         * mips-tfile.c: Likewise.
636         * mkmap-flat.awk: Likewise.
637         * mkmap-symver.awk: Likewise.
638         * modulo-sched.c: Likewise.
639         * omp-low.c: Likewise.
640         * optabs.c: Likewise.
641         * optabs.h: Likewise.
642         * opts.c: Likewise.
643         * passes.c: Likewise.
644         * postreload-gcse.c: Likewise.
645         * postreload.c: Likewise.
646         * predict.c: Likewise.
647         * pretty-print.h: Likewise.
648         * profile.c: Likewise.
649         * protoize.c: Likewise.
650         * ra-conflict.c: Likewise.
651         * real.c: Likewise.
652         * recog.c: Likewise.
653         * regclass.c: Likewise.
654         * regs.h: Likewise.
655         * reload.c: Likewise.
656         * rtl-error.c: Likewise.
657         * rtlanal.c: Likewise.
658         * scan.h: Likewise.
659         * sched-rgn.c: Likewise.
660         * see.c: Likewise.
661         * stmt.c: Likewise.
662         * target.h: Likewise.
663         * tree-dfa.c: Likewise.
664         * tree-eh.c: Likewise.
665         * tree-flow-inline.h: Likewise.
666         * tree-inline.c: Likewise.
667         * tree-into-ssa.c: Likewise.
668         * tree-loop-distribution.c: Likewise.
669         * tree-nested.c: Likewise.
670         * tree-parloops.c: Likewise.
671         * tree-pass.h: Likewise.
672         * tree-pretty-print.c: Likewise.
673         * tree-profile.c: Likewise.
674         * tree-scalar-evolution.c: Likewise.
675         * tree-sra.c: Likewise.
676         * tree-ssa-alias-warnings.c: Likewise.
677         * tree-ssa-ccp.c: Likewise.
678         * tree-ssa-coalesce.c: Likewise.
679         * tree-ssa-dom.c: Likewise.
680         * tree-ssa-dse.c: Likewise.
681         * tree-ssa-forwprop.c: Likewise.
682         * tree-ssa-live.c: Likewise.
683         * tree-ssa-live.h: Likewise.
684         * tree-ssa-loop-im.c: Likewise.
685         * tree-ssa-loop-ivopts.c: Likewise.
686         * tree-ssa-loop-niter.c: Likewise.
687         * tree-ssa-loop-prefetch.c: Likewise.
688         * tree-ssa-phiopt.c: Likewise.
689         * tree-ssa-phiprop.c: Likewise.
690         * tree-ssa-sccvn.c: Likewise.
691         * tree-ssa-ter.c: Likewise.
692         * tree-ssa-threadupdate.c: Likewise.
693         * tree-ssa.c: Likewise.
694         * tree-vect-analyze.c: Likewise.
695         * tree-vect-transform.c: Likewise.
696         * tree-vectorizer.c: Likewise.
697         * tree-vn.c: Likewise.
698         * tree-vrp.c: Likewise.
699         * tree.c: Likewise.
700         * tree.def: Likewise.
701         * tree.h: Likewise.
702         * unwind-dw2-fde.c: Likewise.
703         * unwind.inc: Likewise.
704         * value-prof.c: Likewise.
705         * vmsdbgout.c: Likewise.
706
707 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
708
709         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
710         always place FP constants in the TOC for TARGET_POWERPC64.
711         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
712
713 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
714
715         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
716         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
717         enable for TARGET_E500_DOUBLE.
718         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
719         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
720         floating-point modes like integer modes for E500 double.
721         (rs6000_legitimate_offset_address_p): Likewise.
722         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
723         addressing for DDmode for E500 double.
724         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
725         modes as using 64-bits of registers for E500 double.
726         (spe_build_register_parallel): Do not handle DDmode or TDmode.
727         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
728         specially for E500 double.
729         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
730         TDmode for E500 double.
731         (rs6000_gimplify_va_arg): Only handle SDmode in registers
732         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
733         (rs6000_split_multireg_move): Do not handle TDmode specially for
734         E500 double.
735         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
736         using 64-bit registers for E500 double.
737         (emit_frame_save): Do not handle DDmode specially for E500 double.
738         (gen_frame_mem_offset): Likewise.
739         (rs6000_function_value): Do not call spe_build_register_parallel
740         for DDmode or TDmode.
741         (rs6000_libcall_value): Likewise.
742         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
743         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
744         for E500 double.
745
746 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
747
748         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
749         in comments.
750
751 2008-06-04  Junjie Gu <jgu@tensilica.com>
752
753         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
754         comparison for frame pointers.
755
756 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
757
758         PR target/27386
759         * config/avr/avr.h (PUSH_ROUNDING): Remove.
760
761 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
762
763         PR target/30243
764         * builtins.c (expand_builtin_signbit): Don't take lowpart when
765         register is already smaller or equal to required mode. 
766
767 2008-06-04  Xinliang David Li  <davidxl@google.com>
768
769         * tree-call-cdce.c: New file. 
770         (cond_dead_built_in_calls): New static variable.
771         (input_domain): New struct.
772         (check_pow): New function.
773         (check_builtin_call): Ditto.
774         (check_target_format): Ditto.
775         (is_call_dce_candidate): Ditto.
776         (gen_one_condition): Ditto.
777         (gen_conditions_for_domain): Ditto.
778         (get_domain): Ditto.
779         (gen_conditions_for_pow_cst_base): Ditto.
780         (gen_conditions_for_pow_int_base): Ditto.
781         (gen_conditions_for_pow): Ditto.
782         (get_no_error_domain): Ditto.
783         (gen_shrink_wrap_conditions): Ditto.
784         (shrink_wrap_one_built_in_call): Ditto.
785         (shink_wrap_conditional_dead_built_in_calls): Ditto.
786         (tree_call_cdce): Ditto.
787         (gate_call_cdce): Ditto.
788         (pass_call_cdce): New gimple pass.
789         * passes.c: (init_optimization_passes): New pass.
790         * tree-pass.h: New pass declaration.
791         * opts.c (decode_options): New flag setting.
792         * common.opt: Add -ftree-builtin-call-dce flag.
793         * Makefile.in: Add new source file.
794         * tempvar.def: New tv_id.
795         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
796
797 2008-06-04  Richard Guenther  <rguenther@suse.de>
798
799         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
800         (is_call_clobbered): Always check var_ann->call_clobbered.
801         (mark_call_clobbered): Always set var_ann->call_clobbered.
802         (clear_call_clobbered): Always clear var_ann->call_clobbered.
803         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
804         (reset_alias_info): Clear call clobbering info on MTAGs and
805         globals as well.
806         (set_pt_anything): Set pt_global_mem.
807         (create_tag_raw): Adjust comment.
808         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
809
810 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
811             Maxim Kuvyrkov  <maxim@codesourcery.com>
812
813         * config/m68k/m68k.opt (mxgot): New option.
814         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
815         (m68k_output_addr_const_extra): New.
816         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
817         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
818         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
819         * doc/invoke.texi (M680x0 Options): Document -mxgot.
820
821 2008-06-04  Richard Guenther  <rguenther@suse.de>
822
823         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
824         negative or non-representable offsets.
825
826 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
827
828         * config/i386/i386.c (ix86_gen_leave): New.
829         (ix86_gen_pop1): Likewise.
830         (ix86_gen_add3): Likewise.
831         (ix86_gen_sub3): Likewise.
832         (ix86_gen_sub3_carry): Likewise.
833         (ix86_gen_one_cmpl2): Likewise.
834         (ix86_gen_monitor): Likewise.
835         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
836         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
837         ix86_gen_one_cmpl2 and ix86_gen_monitor.
838         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
839         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
840         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
841         (ix86_expand_epilogue): Updated.
842         (print_operand): Handle integer register operand for 'z'.
843         (ix86_expand_strlensi_unroll_1): Likewise.
844         (ix86_expand_strlen): Likewise.
845         (ix86_expand_builtin): Likewise.
846         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
847         mov{q}/mov{l} and add{q}/add{l}.
848
849 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
850
851         * config/i386/i386.md (P): New mode iterator.
852         (SFmode push_operand splitter): Macroize DImode and SImode pushes
853         using P mode iterator.
854         (DFmode push_operand splitter): Ditto.
855         (XFmode push_operand splitter): Ditto.
856         (DFmode float_extend SFmode push_operand splitter): Ditto.
857         (XFmode float_extend SFmode push_operand splitter): Do not generate
858         SImode pushes for 64bit target.  Macroize Dimode and SImode
859         pushes using P mode iterator.
860         (XFmode float_extend DFmode push_operand splitter): Ditto.
861
862 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
863
864         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
865         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
866         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
867         return type to int.
868         (ix86_call_abi_override): Remove check for call_used_regs.
869
870 2008-06-03  Richard Guenther  <rguenther@suse.de>
871
872         * tree-ssa-structalias.c (find_func_aliases): Add constraints
873         for the lhs of calls if the return type contains pointers.
874
875 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
876
877         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
878         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
879         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
880         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
881         of cfun and DEFAULT_ABI to deceide abi mode.
882         (DEFAULT_ABI): New.
883         (REG_PARM_STACK_SPACE): Removed.
884         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
885         (STACK_BOUNDARY): Use default target to deceide stack boundary.
886         * config/i386/i386-protos.h (ix86_cfun_abi): New.
887         (ix86_function_abi): Likewise.
888         (ix86_function_type_abi): Likewise.
889         (ix86_call_abi_override): Likewise.
890         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
891         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
892         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
893         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
894         specific defines.
895         (X86_64_REGPARM_MAX): New.
896         (X86_64_SSE_REGPARM_MAX): New.
897         (X64_REGPARM_MAX): New.
898         (X64_SSE_REGPARM_MAX): New.
899         (X86_32_REGPARM_MAX): New.
900         (X86_32_SSE_REGPARM_MAX): New.
901         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
902         (ix86_function_regparm): Handle user calling abi.
903         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
904         by DEFAULT_ABI versus SYSV_ABI check.
905         (ix86_reg_parm_stack_space): New.
906         (ix86_function_type_abi): New.
907         (ix86_call_abi_override): New.
908         (ix86_function_abi): New.
909         (ix86_cfun_abi): New.
910         (init_cumulative_args): Call abi specific initialization.
911         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
912         (function_arg_64): Extend SSE_REGPARM_MAX check.
913         (function_arg (): Remove TARGET_64BIT_MS_ABI.
914         (ix86_pass_by_reference): Likewise.
915         (ix86_function_value_regno_p): Likewise.
916         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
917         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
918         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
919         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
920         (setup_incoming_varargs_64): Adjust regparm for call abi.
921         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
922         (ix86_va_start): Likewise.
923         (ix86_gimplify_va_arg): Likewise.
924         (ix86_expand_prologue): Likewise.
925         (output_pic_addr_const): Likewise.
926         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
927         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
928         (x86_output_mi_thunk): Likewise.
929         (x86_function_profiler): Likewise.
930         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
931         (SYSV_ABI, MS_ABI): New constants.
932         (DEFAULT_ABI): New.
933         (init_regs): Add prototype of function in regclass.c file.
934         (OVERRIDE_ABI_FORMAT): New.
935         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
936         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
937         (OUTGOING_REG_PARM_STACK_SPACE): New.
938         (ix86_reg_parm_stack_space): New prototype.
939         (CUMULATIVE_ARGS): Add call_abi member.
940         (machine_function): Add call_abi member.
941         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
942         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
943
944 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
945
946         PR target/34879
947         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
948         (avr_builtin_setjmp_frame_value): New function.
949         * config/avr/avr.md (nonlocal_goto_receiver): Define.
950         (nonlocal_goto): Define.
951
952 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
953
954         * config/mips/mips.c (mips_emit_loadgp): Return early if
955         there is nothing do to, otherwise emit a blockage if
956         !TARGET_EXPLICIT_RELOCS || crtl->profile.
957         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
958
959 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
960
961         * configure.ac: Drop unneeded backslash ending up in config.in.
962         * acinclude.m4: Likewise.
963         * config.in: Regenerate.
964
965 2008-05-26  Jan Hubicka  <jh@suse.cz>
966
967         * predict.c (maybe_hot_frequency_p): Break out of...
968         (maybe_hot_bb_p): ... here.
969         (maybe_hot_edge_p): New.
970         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
971         * basic-block.h (maybe_hot_edge_p): Declare.
972
973 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
974
975         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
976         (*cmpfp_<mode>_cc): Ditto.
977         (*fp_jcc_8<mode>_387): Ditto.
978         (*fop_<MODEF:mode>_2_i387): Ditto.
979         (*fop_<MODEF:mode>_3_i387): Ditto.
980         (*fop_xf_2_i387): Ditto.
981         (*fop_xf_3_i387): Ditto.
982
983 2008-06-02  Tomas Bily  <tbily@suse.cz>
984
985         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
986
987 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
988
989         * config/mips/mips.c (mips_valid_offset_p): New function.
990         (mips_valid_lo_sum_p): Likewise.
991         (mips_classify_address): Use them.
992         (mips_force_address): New function.
993         (mips_legitimize_address): Use it.
994         * config/mips/mips.md (MOVE128): New mode iterator.
995         (movtf): Require TARGET_64BIT.  Remove empty strings.
996         (*movtf_internal): Rename to...
997         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
998         of "R" and use {,fp}{load,store} attributes instead of "multi".
999         Use a separate define_split.
1000         (*movtf_mips16): New pattern.
1001
1002 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1003
1004         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1005         * config/mips/mips.c (mips_expand_before_return): New function.
1006         (mips_expand_epilogue): Call it.
1007         * config/mips/mips.md (return): Turn into a define_expand.
1008         (*return): New insn.
1009
1010 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1011
1012         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1013         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1014         functions.  Do not emit uses and clobbers of CONCATs; individually
1015         use and clobber their operands.
1016         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1017         gen_clobber, emit_use and gen_use.
1018         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1019         (expand_builtin_return): Likewise.
1020         * cfgbuild.c (count_basic_blocks): Likewise.
1021         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1022         * explow.c (emit_stack_restore): Likewise.
1023         * expmed.c (extract_bit_field_1): Likewise.
1024         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1025         (emit_move_multi_word, store_constructor): Likewise.
1026         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1027         (thread_prologue_and_epilogue_insns): Likewise.
1028         * lower-subreg.c (resolve_simple_move): Likewise.
1029         * optabs.c (widen_operand, expand_binop): Likewise.
1030         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1031         * reload.c (find_reloads): Likewise.
1032         * reload1.c (eliminate_regs_in_insn): Likewise.
1033         * stmt.c (expand_nl_goto_receiver): Likewise.
1034         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1035         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1036         * config/arm/arm.c (arm_load_pic_register): Likewise.
1037         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1038         * config/arm/arm.md (untyped_return): Likewise.
1039         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1040         * config/avr/avr.c (expand_prologue): Likewise.
1041         * config/bfin/bfin.c (do_unlink): Likewise.
1042         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1043         * config/cris/cris.c (cris_expand_prologue): Likewise.
1044         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1045         (machopic_legitimize_pic_address): Likewise.
1046         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1047         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1048         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1049         (ix86_expand_convert_uns_didf_sse): Likewise.
1050         (ix86_expand_vector_init_general): Likewise.
1051         * config/ia64/ia64.md (eh_epilogue): Likewise.
1052         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1053         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1054         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1055         (config/iq2000/iq2000.c): Likewise.
1056         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1057         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1058         (builtin_longjmp): Likewise.
1059         * config/mn10300/mn10300.md (call, call_value): Likewise.
1060         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1061         * config/pdp11/pdp11.md (abshi2): Likewise.
1062         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1063         * config/s390/s390.c (s390_emit_prologue): Likewise.
1064         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1065         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1066         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1067         * config/sh/sh.c (prepare_move_operands): Likewise.
1068         (output_stack_adjust, sh_expand_epilogue): Likewise.
1069         (sh_set_return_address, sh_expand_t_scc): Likewise.
1070         * config/sparc/sparc.c (load_pic_register): Likewise.
1071         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1072         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1073         * config/v850/v850.c (expand_epilogue): Likewise.
1074
1075 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1076
1077         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1078         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1079         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1080         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1081         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1082         stack pointer register.
1083         (output_movhi): Remove code for interrupt specific writing to the 
1084         stack pointer register.
1085
1086 2008-05-31  Richard Guenther  <rguenther@suse.de>
1087
1088         PR tree-optimization/34244
1089         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1090         (tree_expr_nonzero_warnv_p): Likewise.
1091         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1092         ssa_name_nonnegative_p.
1093         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1094         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1095         not tree_expr_nonzero_warnv_p.
1096
1097         PR tree-optimization/36262
1098         Revert
1099         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1100
1101         PR tree-optimization/34244
1102         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1103         (record_numbers_of_iterations): New function.
1104         (execute_vrp): Cache the numbers of iterations of loops.
1105         * tree-scalar-evolution.c (scev_reset_except_niters):
1106         New function.
1107         (scev_reset): Use scev_reset_except_niters.
1108         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1109
1110 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1111
1112         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1113         __WORKAROUND_RETS when appropriate.
1114
1115 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1116
1117         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1118         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1119         mode iterator.
1120         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1121         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1122         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1123         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1124         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1125         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1126         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1127         *fop_df_1_sse insn patterns using MODEF mode iterator.
1128         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1129         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1130         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1131         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1132         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1133         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1134         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1135         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1136         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1137         (*fop_xf_5_i387): Ditto.
1138         (*fop_xf_6_i387): Ditto.
1139
1140 2008-05-30  Richard Guenther  <rguenther@suse.de>
1141
1142         * builtins.c (build_string_literal): Avoid generating
1143         a non-gimple_val result.
1144
1145 2008-05-30  DJ Delorie  <dj@redhat.com>
1146
1147         * exec-tool.in: Use an environment variable (private) instead of a
1148         file (shared) as a semaphore, so as to not break parallel builds.
1149
1150 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1151
1152         * optabs.c (maybe_encapsulate_block): Remove.
1153         (emit_libcall_block): Adjust accordingly.
1154         * optabs.h (maybe_encapsulate_block): Remove prototype.
1155
1156         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1157         Don't use maybe_encapsulate_block.
1158
1159 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1160
1161         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1162         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1163         rtx is a SYMBOL_REF before calling get_pool_constant.
1164
1165 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1166
1167         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1168
1169 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1170
1171         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1172         rather than OS names to choose INO_T_EQ definition.
1173         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1174         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1175
1176 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1177
1178         PR target/36348
1179         * config/darwin-f.c: New.
1180         * config/t-darwin: Added rule to build darwin-f.o.
1181         * config.gcc: Defined new variable, fortran_target_objs.
1182         (*-*-darwin*): Set fortran_target_objs.
1183         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1184         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1185         * configure: Regenerated.
1186
1187 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1188
1189         PR target/35771
1190         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1191         canonical type if needed.
1192
1193 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1194
1195         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1196
1197 2008-05-29  Richard Guenther  <rguenther@suse.de>
1198
1199         PR tree-optimization/36343
1200         PR tree-optimization/36346
1201         PR tree-optimization/36347
1202         * tree-flow.h (clobber_what_p_points_to): Declare.
1203         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1204         pointed-to variable is dereferenced is irrelevant to whether
1205         the pointer can access the pointed-to variable.
1206         (clobber_what_p_points_to): New function.
1207         * tree-ssa-alias.c (set_initial_properties): Use it.
1208         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1209         call clobber check for NMTs.
1210
1211 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1212         
1213         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1214         for printing gcov_type.
1215
1216 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1217
1218         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1219         and the eh region information.
1220         * value-prof.c (gimple_move_stmt_histograms): New function.
1221         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1222
1223 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1224
1225         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1226
1227 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1228
1229         * value-prof.c (tree_ic_transform): Print counts.
1230         * tree-profile.c (tree_gen_ic_func_profiler):
1231         Clear __gcov_indreict_call_callee variable to avoid misattribution
1232         of the profile.
1233
1234 2008-05-28  Rafael Espindola  <espindola@google.com>
1235
1236         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1237         invalid sharing.
1238
1239 2008-05-28  Richard Guenther  <rguenther@suse.de>
1240
1241         PR tree-optimization/36339
1242         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1243         and clobbering code out of the loop.
1244
1245 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1246
1247         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1248         letters defined.
1249
1250         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1251         s390_contiguous_bitmask_p, s390_symref_operand_p,
1252         s390_check_symref_alignment, s390_reload_larl_operand,
1253         s390_reload_symref_address): New functions.
1254         (s390_branch_condition_mnemonic): Support compare and branch
1255         instructions.
1256         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1257         and 'W' constraints.
1258         (s390_secondary_reload): Add secondary reloads for unaligned
1259         symbol refs or symbol refs to floating point or QI/TI mode
1260         integer values.
1261         (legitimate_address_p): Accept symbol references as addresses.
1262         (s390_expand_insv): Use rotate and insert selected bits
1263         instruction for insv when building for z10.
1264         (print_operand_address): Handle symbol ref addresses.
1265         (print_operand): Output modifier 'c' added for signed byte values.
1266         (s390_encode_section_info): Mark symbol refs with
1267         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1268
1269         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1270         (length attribute): RRF, RRR have 4 byte length.
1271         (FPALL, INTALL): New mode iterators added.
1272         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1273         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1274         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1275         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1276         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1277         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1278         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1279         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1280         instructions.
1281         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1282         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1283         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1284         reload<INTALL:mode><P:mode>_toreg_z10,
1285         reload<FPALL:mode><P:mode>_tomem_z10,
1286         reload<FPALL:mode><P:mode>_toreg_z10,
1287         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1288         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1289         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1290         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1291         definition.
1292         (movmem, clrmem, cmpmem): New splitters added.
1293
1294         * config/s390/predicates.md (larl_operand): Use
1295         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1296         SYMBOL_REF_ALIGN1_P.
1297         (s390_signed_integer_comparison,
1298         s390_unsigned_integer_comparison): New predicates.
1299
1300         * config/s390/s390-protos.h (s390_check_symref_alignment,
1301         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1302         s390_reload_symref_address,
1303         s390_compare_and_branch_condition_mask): Prototypes added.
1304
1305         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1306         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1307         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1308
1309 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1310
1311         * config/s390/s390.c (z10_cost): New cost function for z10.
1312         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1313         (s390_issue_rate): Adjust issue rate for z10.
1314         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1315         (processor_flags): Add PF_Z10.
1316         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1317         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1318         * gcc/config.gcc: Add z10.
1319
1320 2008-05-28  Richard Guenther  <rguenther@suse.de>
1321
1322         PR tree-optimization/36291
1323         * tree-flow. h (struct gimple_df): Remove var_anns member.
1324         * tree-flow-inline.h (gimple_var_anns): Remove.
1325         (var_ann): Simplify.
1326         * tree-dfa.c (create_var_ann): Simplify.
1327         (remove_referenced_var): Clear alias info from var_anns of globals.
1328         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1329         (delete_tree_ssa): Clear alias info from var_anns of globals.
1330         Do not free var_anns.
1331         (var_ann_eq): Remove.
1332         (var_ann_hash): Likewise.
1333
1334 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1335
1336         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1337         and loongson2f entries.
1338         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1339         * config/mips/mips.h (processor_type): Add Loongson-2E
1340         and Loongson-2F entries.
1341         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1342         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1343         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1344         * doc/invoke.texi (MIPS Options): Document loongson2e
1345         and loongson2f processor names.
1346
1347 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1348
1349         PR target/35767
1350         PR target/35771
1351         * config/i386/i386.c (ix86_function_arg_boundary): Use
1352         alignment of canonical type.
1353         (ix86_expand_vector_move): Check unaligned memory access for
1354         all SSE modes.
1355
1356 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1357
1358         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1359         Moved to the front of file.
1360
1361 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1362             H.J. Lu  <hongjiu.lu@intel.com>
1363
1364         * dwarf2out.c (current_fde): New.
1365         (add_cfi): Use it.
1366         (lookup_cfa:): Likewise.
1367         (dwarf2out_end_epilogue): Likewise.
1368         (dwarf2out_note_section_used): Likewise.
1369
1370 2008-05-27  Michael Matz  <matz@suse.de>
1371
1372         PR c++/27975
1373         * c.opt (Wenum-compare): New warning option.
1374         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1375
1376 2008-05-27  Michael Matz  <matz@suse.de>
1377
1378         PR middle-end/36326
1379         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1380         non-BLKmode types.
1381         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1382         into memory as tail calls.
1383
1384 2008-05-27  Richard Guenther  <rguenther@suse.de>
1385
1386         PR tree-optimization/36339
1387         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1388         pointers cause all addressable variables to be call clobbered.
1389
1390 2008-05-27  Richard Guenther  <rguenther@suse.de>
1391
1392         PR tree-optimization/36245
1393         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1394
1395 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1396
1397         * config/s390/s390.md: Replace all occurences of the 'm'
1398         constraint with 'RT'.
1399
1400 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1401
1402         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1403         definitions added.
1404         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1405         "*movdi_64".
1406         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1407         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1408         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1409
1410 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1411
1412         * reload.c: (find_reloads): Skip alternatives according to the
1413         "enabled" attribute. Constify the constraint variable.
1414         * recog.c (get_attr_enabled): Add default implementation.
1415         (extract_insn): Set the alternative_enabled_p array
1416         in the recog_data struct.
1417         (preprocess_constraints, constrain_operands): Skip
1418         alternatives according to the "enabled" attribute
1419         * recog.h (struct recog_data): New field alternative_enabled_p.
1420         (skip_alternative): New inline function.
1421         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1422         (record_reg_classes): Skip alternative according to the
1423         "enabled" attribute.
1424
1425         * doc/md.texi: Add documention for the "enabled" attribute.
1426
1427 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1428
1429         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1430         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1431         constraint with TARGET_MEM_CONSTRAINT.
1432         * recog.c (asm_operand_ok, preprocess_constraints,
1433         constrain_operands): Likewise.
1434         * regclass.c (record_reg_classes): Likewise.
1435         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1436         * reload1.c (maybe_fix_stack_asms): Likewise.
1437         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1438         * recog.h: Adjust comment.
1439         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1440         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1441         * doc/md.texi: Add a note to description of 'm' constraint.
1442         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1443
1444 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1445
1446         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1447         that the bitfield is of integral type before testing its precision.
1448
1449 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1450             Sa Liu  <saliu@de.ibm.com> 
1451
1452         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1453         __modti3, __udivti3, __umodti3 and __udivmodti4.
1454         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1455         that implement TImode mul and div functions.
1456         * config/spu/multi3.c: New. Implement __multi3.
1457         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1458         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1459         functions on SPU.
1460
1461 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1462
1463         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1464         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1465         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1466         tls_sysv_suffix): New mode and mode attribute iterators.
1467         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1468         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1469         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1470         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1471         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1472         iterators.
1473
1474 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1475
1476         PR tree-optimization/36329
1477         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1478         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1479         * cgraphbuild.c (initialize_inline_failed): Use the latter
1480         macro in lieu of the former.
1481         * ipa-inline.c (cgraph_mark_inline): Likewise.
1482         (cgraph_decide_inlining_of_small_function): Likewise.
1483         (cgraph_decide_inlining): Likewise.
1484         (cgraph_decide_inlining_incrementally): Likewise.
1485
1486 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1487             Anatoly Sokolov  <aesok@post.ru>
1488
1489         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1490         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1491         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1492         optimization for 'avr6' architecture.
1493
1494 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1495
1496         PR target/34932
1497         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1498
1499 2008-05-26  Richard Guenther  <rguenther@suse.de>
1500
1501         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1502         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1503
1504 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1505
1506         PR middle-end/36253
1507         * caller-save.c (insert_restore): Verify alignment of spill space.
1508         (insert_save): Likewise.
1509         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1510         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1511         (STACK_SLOT_ALIGNMENT): Likewise.
1512         * function.c (LOCAL_ALIGNMENT): Removed.
1513         (get_stack_local_alignment): New.
1514         (assign_stack_local): Use it.  Set alignment on stack slot.
1515         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1516         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1517         (STACK_SLOT_ALIGNMENT): New.
1518         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1519         stack slot in XFmode.
1520
1521         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1522
1523 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1524
1525         PR/36321
1526         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1527         argument operand in rax isn't removed.
1528
1529 2008-05-26  Richard Guenther  <rguenther@suse.de>
1530
1531         PR middle-end/36300
1532         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1533         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1534
1535 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1536
1537         PR bootstrap/36331
1538         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1539
1540 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1541
1542         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1543         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1544
1545 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1546
1547         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1548         build a trampoline if we don't want one.
1549         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1550         return zero for nested functions if we don't want a trampoline.
1551
1552 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1553
1554         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1555
1556 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1557
1558         PR fortran/18428
1559         * c.opt: Removed undocumented option '-lang-fortran'.
1560         * c-common.h: Removed global variable 'lang_fortran'.
1561         * c-opts.c (c_common_handle_option): Removed code to handle
1562         option '-lang-fortran'. Updated includes.
1563         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1564         definition of '__GFORTRAN__'.
1565         (define__GNUC__): Reimplemented to use BASEVER and
1566         cpp_define_formatted.
1567         (builtin_define_with_value_n): Removed.
1568         * c-incpath.h: Renamed to ...
1569         * incpath.h: ... this.
1570         * c-incpath.c: Renamed to ...
1571         * incpath.c: ... this. Updated includes.
1572         * fix-header.c: Updated includes.
1573         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1574         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1575         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1576
1577 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1578
1579         * tree.h: Update the table of flags used on tree nodes.
1580         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1581         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1582         (FORCED_LABEL): Add access check.
1583         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1584         (ASM_INPUT_P): Likewise.
1585         (ASM_VOLATILE_P): Likewise.
1586         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1587         (OMP_SECTION_LAST): Access private_flag directly.
1588         (OMP_RETURN_NOWAIT): Likewise.
1589         (OMP_PARALLEL_COMBINED): Likewise.
1590         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1591         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1592         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1593         deprecated_flag directly.
1594
1595 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1596
1597         * final.c (frame_pointer_needed): Removed.
1598         * flags.h (frame_pointer_needed): Likewise.
1599
1600         * function.h (rtl_data): Add frame_pointer_needed.
1601         (frame_pointer_needed): New.
1602
1603 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1604
1605         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1606
1607 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1608
1609         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1610         SRC is a REG.
1611
1612 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1613
1614         * c-common.c (strip_array_types): Move function to..
1615         * tree.c: ..here.
1616         (get_inner_array_type): Delete.
1617         * c-common.h (strip_array_types): Move declaration to..
1618         * tree.h: ..here.
1619         (get_inner_array_type): Delete.
1620         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1621         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1622         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1623         * config/pa/pa.c (emit_move_sequence): Likewise.
1624
1625 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1626
1627         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1628         attribute to 34.
1629
1630 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1631
1632         * function.c: Include target hook for nonlocal_goto frame value.
1633
1634 2008-05-24  Richard Guenther  <rguenther@suse.de>
1635
1636         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1637         variable can be only accessed through a pointer or a union.
1638
1639 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1640
1641         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1642         * doc/extend.texi: Likewise.
1643
1644 2008-05-23  DJ Delorie  <dj@redhat.com>
1645
1646         * config/m32c/jump.md (untyped_call): Add.
1647
1648         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1649         for A24 to PSImode.
1650         (m32c_address_cost): Detail costs for indirect offsets.
1651
1652 2008-05-23  Rafael Espindola  <espindola@google.com>
1653
1654         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1655         if a node is a SUBREG.
1656         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1657         is a SUBREG.
1658
1659 2008-05-23  Paul Brook  <paul@codesourcery.com>
1660             Carlos O'Donell  <carlos@codesourcery.com>
1661
1662         * doc/extend.texi: Clarify use of __attribute__((naked)).
1663         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1664         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1665         * function.c (use_register_for_decl): Use
1666         targetm.calls.allocate_stack_slots_for_args.
1667         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1668         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1669         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1670
1671 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1672
1673         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1674
1675 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1676
1677         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1678         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1679         is only rounded once.
1680
1681 2008-05-23  Richard Guenther  <rguenther@suse.de>
1682
1683         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1684
1685 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1686             Jakub Jelinek  <jakub@redhat.com>
1687
1688         PR target/36079
1689         * configure.ac: Handle --enable-cld.
1690         * configure: Regenerated.
1691         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1692         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1693         (ix86_current_function_needs_cld): New define.
1694         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1695         (cld): New isns pattern.
1696         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1697         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1698         * config/i386/i386.opt (mcld): New option.
1699         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1700         TARGET_CLD and ix86_current_function_needs_cld.
1701         (override_options): Use -mcld by default for 32-bit code if
1702         USE_IX86_CLD.
1703
1704         * doc/install.texi (Options specification): Document --enable-cld.
1705         * doc/invoke.texi (Machine Dependent Options)
1706         [i386 and x86-64 Options]: Add -mcld option.
1707         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1708
1709 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1710         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1711         (return_in_memory_64): Likewise.
1712         (return_in_memory_ms_64): Likewise.
1713
1714 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1715
1716         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1717         * builtins.c (fold_builtin_fpclassify): New.
1718         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1719         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1720         * c-common.c (handle_type_generic_attribute): Adjust to accept
1721         fixed arguments before an elipsis.
1722         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1723         * doc/extend.texi: Document __builtin_fpclassify.
1724
1725 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1726
1727         * omp-low.c (gate_expand_omp_ssa): Remove.
1728         (pass_expand_omp_ssa): Remove.
1729         (gate_expand_omp): Do not check for flag_openmp_ssa.
1730         * common.opt (-fopenmp-ssa): Remove.
1731         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1732
1733 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1734
1735         * config/sh/sh.opt (mfixed-range): New option.
1736         * config/sh/sh-protos.h (sh_fix_range): Declare.
1737         * config/sh/sh.c (sh_fix_range): New function.
1738         * config/sh/sh.h (sh_fixed_range_str): Declare.
1739         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1740         is not empty.
1741         * doc/invoke.texi (SH Options): Document -mfixed-range.
1742
1743 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1744
1745         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1746         it before the redeclaration.
1747
1748 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1749
1750         * config/avr/avr.c (get_sequence_length): Add new function.
1751         (expand_prologue, expand_epilogue): Remove duplicate code.
1752
1753 2008-05-22  Rafael Espindola  <espindola@google.com>
1754
1755         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1756         sharing.
1757
1758 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1759
1760         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1761         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1762
1763         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1764         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1765         (vect_update_misalignment_for_peel): Likewise.
1766         (vector_alignment_reachable_p): Likewise.
1767         * tree-vect-transform.c (vectorizable_load): Likewise.
1768         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1769         (get_vectype_for_scalar_type): Pass mode of scalar_type
1770         to UNITS_PER_SIMD_WORD.
1771
1772         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1773         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1774         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1775         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1776         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1777
1778 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1779
1780         PR tree-optimization/36293
1781         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1782         if the first load must be skipped because of a gap.
1783
1784 2008-05-22  Richard Guenther  <rguenther@suse.de>
1785
1786         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1787         more cases of offset disambiguation that is possible if
1788         strict-aliasing rules apply.
1789         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1790         for basic offset and type-based disambiguation.
1791
1792 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1793
1794         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1795         ix86_expand_vector_set on V16QImode for SSE4.1.
1796
1797 2008-05-21  Tom Tromey  <tromey@redhat.com>
1798
1799         * c.opt (Wimport): Mark as undocumented.
1800         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1801         -Wno-import.
1802         (Warning Options): Likewise.
1803         * doc/cppopts.texi: Don't mention -Wimport.
1804
1805 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1806
1807         PR tree-optimization/36287
1808         PR tree-optimization/36286
1809         * lambda-code.c (build_access_matrix): Do not use the loop->num
1810         for computing the number of induction variables: use the loop depth
1811         instead.
1812
1813 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1814
1815         PR/36280
1816         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1817         option -f(no-)leading-underscore.
1818
1819 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1820
1821         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1822         GET_MODE_NUNITS (mode).
1823
1824 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1825
1826         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1827         (-mmulhw): Add 464 to description.
1828         (-mdlmzb): Likewise.
1829         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1830         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1831         464fp entries.
1832         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1833         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1834         * config/rs6000/rs6000.md: Update comments for 464.
1835
1836 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1837
1838         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1839
1840 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1841
1842         * config/i386/sse.md (vec_extractv4sf): Removed.
1843         (vec_extractv2df): Likewise.
1844         (vec_extractv2di): Likewise.
1845         (vec_extractv4si): Likewise.
1846         (vec_extractv8hi): Likewise.
1847         (vec_extractv16qi): Likewise.
1848         (vec_extract<mode>): New.
1849
1850 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1851
1852         * config/i386/sse.md (vec_setv4sf): Removed.
1853         (vec_setv2df): Likewise.
1854         (vec_setv2di): Likewise.
1855         (vec_setv4si): Likewise.
1856         (vec_setv8hi): Likewise.
1857         (vec_setv16qi): Likewise.
1858         (vec_set<mode>): New.
1859
1860 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1861
1862         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1863         goto for vec_concat and vec_interleave.
1864
1865 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1866
1867         * config/i386/sse.md (vec_initv4sf): Removed.
1868         (vec_initv2df): Likewise.
1869         (vec_initv2di): Likewise.
1870         (vec_initv4si): Likewise.
1871         (vec_initv8hi): Likewise.
1872         (vec_initv16qi): Likewise.
1873         (vec_init<mode>): New.
1874
1875 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1876
1877         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1878
1879 2008-05-21  Tom Tromey  <tromey@redhat.com>
1880
1881         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1882         (zone_find_object_offset): Likewise.
1883         (gt_ggc_m_S): Likewise.
1884         (highest_bit): Likewise.
1885         * ggc-page.c (gt_ggc_m_S): New function.
1886         * stringpool.c (string_stack): Remove.
1887         (init_stringpool): Update.
1888         (ggc_alloc_string): Use ggc_alloc.
1889         (maybe_delete_ident): New function.
1890         (ggc_purge_stringpool): Likewise.
1891         (gt_ggc_m_S): Remove.
1892         * ggc-common.c (ggc_protect_identifiers): New global.
1893         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1894         ggc_protect_identifiers.
1895         * ggc.h (ggc_protect_identifiers): Declare.
1896         (gt_ggc_m_S): Update.
1897         (ggc_purge_stringpool): Declare.
1898         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1899         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1900         special case.
1901         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1902
1903 2008-05-21  David S. Miller  <davem@davemloft.net>
1904
1905         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1906         tmake_file.
1907
1908 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1909
1910         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1911         once finished.
1912
1913 2008-05-20  David Daney  <ddaney@avtrex.com>
1914
1915         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1916         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1917         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1918         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1919         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1920         (atomic_hiqi_op): New define_code_iterator.
1921         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1922         mips_expand_compare_and_swap_12.
1923         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1924         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1925         (sync_<optab><mode>, sync_old_<optab><mode>,
1926         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1927         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1928         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1929         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1930         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1931         (test_and_set_12): New insn.
1932         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1933         sync_new_<optab><mode>, sync_old_nand<mode>,
1934         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1935         clobber to operand 0 for SI and DI mode insns.
1936         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1937         mips_gen_fn_4): New typedefs.
1938         (mips_gen_fn_ptrs): Define new union type.
1939         (mips_expand_compare_and_swap_12): Remove declaration.
1940         (mips_expand_atomic_qihi): Declare function.
1941         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1942         (mips_expand_atomic_qihi): ... this.  Use new generator function
1943         parameter.
1944         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1945         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1946         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1947         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1948         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1949         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1950         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1951         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1952         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1953         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1954         New macros.
1955
1956 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1957
1958         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1959         the missing break.
1960
1961 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1962
1963         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1964         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1965         (avr_attribute_table): Add 'OS_main' function attribute.
1966         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1967         functions with 'OS_main' attribute.
1968
1969 2008-05-20  Richard Guenther  <rguenther@suse.de>
1970
1971         PR tree-optimization/35204
1972         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1973         helper, split out from ...
1974         (DFS): ... here.  Make the DFS walk non-recursive.
1975
1976 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1977             Jan Sjodin  <jan.sjodin@amd.com>
1978
1979         PR tree-optimization/36181
1980         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1981         (parallelize_loops): Don't parallelize when the loop has vector
1982         phi nodes.
1983
1984 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1985             Sebastian Pop  <sebastian.pop@amd.com>
1986
1987         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1988         matrix, and never look at the tree representation of the memory
1989         accesses.
1990         (linear_transform_loops): Computes parameters and access matrices.
1991         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1992         when fails.
1993         (access_matrix_get_index_for_parameter): New.
1994         * tree-data-ref.h (struct access_matrix): New.
1995         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1996         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1997         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1998         am_vector_index_for_loop): New.
1999         (struct data_reference): Add field access_matrix.
2000         (DR_ACCESS_MATRIX): New.
2001         (compute_data_dependences_for_loop): Update declaration.
2002         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2003         * lambda.h (lambda_vector_vec_p): Declared.
2004         * lambda-code.c: Depend on pointer-set.h.
2005         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2006         av_for_af_base, av_for_af, build_access_matrix,
2007         lambda_compute_access_matrices): New.
2008         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2009
2010 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2011
2012         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2013         $SOURCEDIR/include.
2014
2015 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2016             Sebastian Pop  <sebastian.pop@amd.com>
2017
2018         PR tree-optimization/36206
2019         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2020         FOLD_CONVERSIONS.
2021         (instantiate_scev_1): Rename flags to fold_conversions.
2022         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2023         outeside instantiation_loop.
2024         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2025         (evolution_function_is_affine_or_constant_p): Removed.
2026         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2027         instantiate_scev.
2028         (analyze_siv_subscript): Pass in the loop nest number.
2029         Call evolution_function_is_affine_in_loop instead of 
2030         evolution_function_is_affine_p.
2031         (analyze_overlapping_iterations): Pass in the loop nest number.
2032
2033 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2034             Sebastian Pop  <sebastian.pop@amd.com>
2035
2036         PR tree-optimization/36206
2037         * tree-chrec.h (chrec_fold_op): New.
2038         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2039         and other trees.
2040
2041 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2042
2043         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2044         (DIRS_EQ): New.
2045         (remove_duplicates): Do not set inode on non-inode systems.
2046         Use DIRS_EQ.
2047
2048 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2049
2050         * config.gcc (tm_file): Update comments about relative pathnames.
2051
2052 2008-05-20  Richard Guenther  <rguenther@suse.de>
2053
2054         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2055         * tree-ssa-sccvn.c (process_scc): Likewise.
2056         * tree-ssa-sink.c (execute_sink_code): Likewise.
2057         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2058         * tree-vrp.c (process_assert_insertions): Likewise.
2059         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2060         (perform_tree_ssa_dce): Likewise.
2061         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2062         (dump_dominator_optimization_stats): Likewise.
2063         * tree-vectorizer.c (vectorize_loops): Likewise.
2064
2065 2008-05-20  Richard Guenther  <rguenther@suse.de>
2066
2067         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2068
2069 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2070
2071         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2072         (ix86_i386elf_return_in_memory): Likewise.
2073         (ix86_i386interix_return_in_memory): Likewise.
2074         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2075         (SUBTARGET_RETURN_IN_MEMORY): New.
2076         * config/i386/i386elf.h: Likewise.
2077         * config/i386/ptx4-i.h: Likewise.
2078         * config/i386/sol2-10.h: Likewise.
2079         * config/i386/sysv4.h: Likewise.
2080         * config/i386/vx-common.h: Likewise.
2081         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2082         * config/i386/i386.c (ix86_return_in_memory): Made static and
2083         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2084         (ix86_i386elf_return_in_memory): Removed.
2085         (ix86_i386interix_return_in_memory): Removed.
2086         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2087         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2088
2089 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2090
2091         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2092
2093 2008-05-19  Xinliang David Li  <davidxl@google.com>
2094
2095         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2096         * opts.c: Ditto.
2097         * common.opt: Ditto.
2098         * doc/invoke.texi: Ditto.
2099
2100 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2101
2102         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2103         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2104
2105 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2106
2107         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2108         sizes of operand array from 8/4 to 4/2.
2109         (ix86_expand_vector_init_general): Change size of operand array
2110         from 32 to 16.  Remove op0, op1 and half_mode.
2111
2112 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2113
2114         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2115         (ix86_expand_vector_init_interleave): Likewise.
2116         (ix86_expand_vector_init_general): Use them.  Assert
2117         word_mode == SImode when n_words == 4.
2118
2119 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2120
2121         * config/i386/i386.c (ix86_secondary_reload): New static function.
2122         (TARGET_SECONDARY_RELOAD): New define.
2123         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2124         * config/i386/i386.md (reload_outqi): Remove.
2125
2126 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2127
2128         PR middle-end/35509
2129         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2130         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2131         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2132         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2133         (fold_builtin_1): Likewise.
2134         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2135         c-common.c (check_builtin_function_arguments): Handle
2136         BUILT_IN_ISINF_SIGN.
2137         * doc/extend.texi: Document __builtin_isinf_sign.
2138         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2139
2140 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2141
2142         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2143         EH cleanup at the end of the pass, search for those that have been
2144         turned into forwarder blocks and do the cleanup on their successor.
2145
2146 2008-05-18  Richard Guenther  <rguenther@suse.de>
2147
2148         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2149         pointers to sizetype and vice versa.
2150
2151 2008-05-18 Xinliang David Li   <davidxl@google.com>
2152
2153         * gcc/tree-ssa-dce.c: Coding style fix.
2154         (check_pow): Documentation comment. 
2155         (check_log): Documenation comment. Coding style fix.
2156         (is_unnecessary_except_errno_call): Ditto.
2157         (gen_conditions_for_pow): Ditto.
2158         (gen_conditions_for_log): Ditto.
2159         (gen_shrink_wrap_conditions): Ditto.
2160         (shrink_wrap_one_built_in_calls): Ditto.
2161         * gcc/doc/invoke.texi: Better documentation string.
2162         * ChangeLog: Fix wrong change log entries from 
2163         May 17 checkin on function call DCE.
2164
2165 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2166
2167         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2168
2169 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2170
2171         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2172         * df-problems.c (simulation routines): Fixed block comment to
2173         properly say how to add forwards scanning functions.
2174         
2175 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2176
2177         * tree-inline.c (setup_one_parameter): Remove dead code.
2178
2179 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2180
2181         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2182         a BIT_AND_EXPR only for an INTEGER_TYPE.
2183
2184 2008-05-17 Xinliang David Li   <davidxl@google.com>
2185
2186         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2187         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2188         functions to check for eliminating math functions that are pure 
2189         except for setting errno.
2190         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2191         general condition expressions for shrink-wrapping pow/log calls.
2192         (gen_shrink_wrap_conditions): Ditto.
2193         (shrink_wrap_one_built_in_call): Ditto.
2194         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2195         (mark_operand_necessary): If debugging, output if OP is necessary.
2196         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2197         unnecessary.
2198         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2199         opt level >= 2.
2200         * gcc/common.opt: New user flag -ftree-builtin-dce.
2201         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2202
2203 2008-05-16  David S. Miller  <davem@davemloft.net>
2204
2205         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2206         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2207
2208 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2209
2210         PR target/36246
2211         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2212
2213 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2214
2215         * ifcvt.c (dead_or_predicable): Rename
2216         df_simulate_one_insn_backwards to df_simulate_one_insn.
2217         * recog.c (peephole2_optimize): Ditto.
2218         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2219         Ditto.
2220         * df.h: Rename df_simulate_one_insn_backwards to
2221         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2222         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2223         scanning of defs and uses.
2224         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2225         (df_simulate_one_insn_forwards): Removed.
2226
2227 2008-05-16  Doug Kwan  <dougkwan@google.com>
2228
2229         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2230         QNaN & SNaN.
2231         (real_from_string): Handle NaNs and Inf as approriate.
2232
2233 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2234
2235         * doc/gty.texi (Source Files Containing Type Information): Note
2236         that headers should appear first in the gtfiles list.
2237
2238 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2239
2240         * tree.def (COND_EXEC): Properly documented this code.
2241
2242 2008-05-16  Diego Novillo  <dnovillo@google.com>
2243
2244         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2245         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2246         the new field.
2247
2248 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2249
2250         * tree-ssa-dse (max_stmt_uid): Removed.
2251         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2252         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2253         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2254         * function.h (cfun.last_stmt_uid): New field.
2255         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2256         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2257         New functions.
2258         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2259         (create_stmt_ann): Initialize the ann->uid field.
2260         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2261         with new calls.
2262         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2263
2264 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2265
2266         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2267         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2268         (init_empty_tree_cfg): Call it.
2269
2270 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2271
2272         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2273         Update all users.
2274
2275 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2276
2277         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2278         * tree-dump.c (dump_options): New verbose option.
2279         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2280         Add verbose dump.
2281         * tree-pass.h (TDF_VERBOSE): New dump flag.
2282         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2283         (tree-flow.h): Added include.
2284         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2285
2286 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2287
2288         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2289
2290         From Jie Zhang  <jie.zhang@analog.com>
2291         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2292         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2293         mcpu=bf561-none and mcpu=bf561-0.2.
2294         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2295         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2296         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2297         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2298         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2299         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2300         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2301         option.
2302         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2303         (cputype_selected): Remove.
2304         (bfin_handle_option): Don't use cputype_selected.
2305         (override_options): When no mcpu option, enable all workarounds.
2306         Don't use bfin_workarounds.
2307         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2308         processor type.
2309         (DEFAULT_CPU_TYPE): Don't define.
2310
2311 2008-05-16  Richard Guenther  <rguenther@suse.de>
2312
2313         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2314         on deletion of the last stmt.
2315
2316 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2317
2318         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2319         V8HImode for SSE2 and V16QImode for SSE4.1.
2320
2321 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2322
2323         * cgraph.h (compute_inline_parameters): Made public.
2324         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2325         variable_generate_summary, function_write_summary,
2326         variable_write_summary, variable_read_summary.  Added generate_summary,
2327         write_summary, read_summary.
2328         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2329         pass_ipa_inline.function_generate_summary, to
2330         compute_inline_parameters. 
2331         * ipa-inline.c (compute_inline_parameters): Made public and added
2332         node parameter.
2333         (compute_inline_parameters_for_current): New function.
2334         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2335         (inline_generate_summary): Removed parameter and made to loop over
2336         all cgraph nodes.
2337         (pass_ipa_inline): Updated for new IPA_PASS structure.
2338         * passes.c (execute_ipa_summary_passes): Now is called once per
2339         pass rather than once per node*pass.
2340         
2341 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2342
2343         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2344         avr_have_mul_p, avr_asm_only_p): Remove variables.
2345         (avr_override_options): Remove initialization of removed variables.
2346         (avr_file_start):  Convert removed variables to fields of 
2347         'struct base_arch_s *avr_current_arch'. 
2348         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2349         (AVR_HAVE_MUL): (Ditto.).
2350         (AVR_HAVE_MOVW): (Ditto.).
2351         (AVR_HAVE_LPMX): (Ditto.). 
2352         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2353         avr_asm_only_p): Remove declaration.
2354
2355 2008-05-15  Diego Novillo  <dnovillo@google.com>
2356
2357         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2358         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2359
2360 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2361
2362         PR middle-end/36194
2363         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2364         Don't call record_truncated_value from here.
2365         (record_truncated_value): Turn it into a for_each_rtx callback.
2366         (record_truncated_values): New function.
2367         (combine_instructions): Call note_uses with record_truncated_values.
2368         Change name of check_conversion to check_promoted_subreg. 
2369
2370 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2371
2372         * doc/sourcebuild.texi: Document support for torture tests.
2373
2374 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2375
2376         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2377         to alternative 4 of operand 2.
2378
2379 2008-05-15  Richard Guenther  <rguenther@suse.de>
2380
2381         * tree-pass.h (current_pass): Declare.
2382         (get_pass_for_id): Likewise.
2383         * passes.c (passes_by_id, passes_by_id_size): New globals.
2384         (set_pass_for_id): New function.
2385         (get_pass_for_id): Likewise.
2386         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2387         (execute_function_todo): Flush per function statistics.
2388         * toplev.c (compile_file): Init statistics.
2389         (general_init): Do early statistics initialization.
2390         (finalize): Finish statistics.
2391         * statistics.h (statistics_early_init): Declare.
2392         (statistics_init): Likewise.
2393         (statistics_fini): Likewise.
2394         (statistics_fini_pass): Likewise.
2395         (statistics_counter_event): Likewise.
2396         (statistics_histogram_event): Likewise.
2397         * statistics.c: New file.
2398         * Makefile.in (OBJS-common): Add statistics.o.
2399         (statistics.o): Add dependencies.
2400         * doc/invoke.texi (-fdump-statistics): Document.
2401
2402         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2403         (insert): Likewise.
2404         (execute_pre): Use statistics_counter_event.
2405         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2406         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2407
2408 2008-05-15  Diego Novillo  <dnovillo@google.com>
2409
2410         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2411
2412         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2413         * tree-ssa-alias.c (new_type_alias): Remove references to
2414         sub-variables from comment.
2415         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2416
2417 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2418
2419         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2420         attribute to 1 only for insertps alternative.
2421
2422 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2423
2424         * config/bfin/bfin.md (loadbytes): New pattern.
2425         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2426         (bfin_init_builtins): Initialize it.
2427         (bdesc_1arg): Add it.
2428
2429 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2430
2431         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2432         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2433         * testsuite/lib/target-supports.exp: Add
2434         check_effective_target_fortran_integer_16.
2435
2436 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2437
2438         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2439         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2440         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2441         (TARGET_RETURN_IN_MEMORY): Define.
2442
2443 2008-05-15  Richard Guenther  <rguenther@suse.de>
2444
2445         PR middle-end/36244
2446         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2447         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2448         represent unmodifiable vars.
2449
2450 2008-05-15  Richard Guenther  <rguenther@suse.de>
2451
2452         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2453         INDIRECT_REF and TARGET_MEM_REF.
2454         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2455         TARGET_MEM_REF.
2456
2457 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2458             H.J. Lu  <hongjiu.lu@intel.com>
2459
2460         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2461         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2462         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2463         insn alternatives.  Add missing alternatives.
2464         (*vec_concatv2di_rex64_sse4_1): Likewise.
2465         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2466         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2467         Require TARGET_SSE.
2468
2469 2008-05-15  Richard Guenther  <rguenther@suse.de>
2470
2471         PR tree-optimization/36009
2472         PR tree-optimization/36204
2473         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2474         (determine_invariantness_stmt): Record the loop a store is
2475         always executed in.
2476         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2477         dependency.
2478
2479 2008-05-15  Richard Guenther  <rguenther@suse.de>
2480
2481         PR tree-optimization/34330
2482         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2483         through the pointer will alias the SMT.
2484
2485 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2486
2487         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2488
2489 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2490
2491         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2492
2493 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2494             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2495
2496         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2497         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2498         (vashl_optab): New optab for vector/vector shifts.
2499         (vashr_optab): Ditto.
2500         (vlshr_optab): Ditto.
2501         (vrotl_optab): Ditto.
2502         (vrotr_optab): Ditto.
2503         (optab_subtype): New enum for optab_for_tree_code call.
2504         (optab_for_tree_code): Add enum optab_subtype argument.
2505
2506         * optabs.c (optab_for_tree_code): Take an additional argument to
2507         distinguish between a vector shift by a scalar and vector shift by
2508         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2509         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2510         vector shift by a vector.
2511         (expand_widen_pattern_expr): Pass additional argument to
2512         optab_for_tree_code.
2513
2514         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2515         vrotl_optab, vrotr_optab.
2516
2517         * expr.c (expand_expr_real_1): Update calls to
2518         optab_for_tree_code to distinguish between vector shifted by a
2519         scalar and vector shifted by a vector.
2520         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2521         (supportable_narrowing_operation): Ditto.
2522         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2523         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2524         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2525         (vect_create_epilog_for_reduction): Ditto.
2526         (vectorizable_reduction): Ditto.
2527         (vectorizable_operation): Ditto.
2528         (vect_strided_store_supported): Ditto.
2529         (vect_strided_load_supported): Ditto.
2530         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2531         * expmed.c (expand_shift): Ditto.
2532
2533         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2534         scalar type.
2535         (ashr@var{m}3): Ditto.
2536         (vashl@var{m}3): Document new vector/vector shift standard name.
2537         (vashr@var{m}3): Ditto.
2538         (vlshr@var{m}3): Ditto.
2539         (vrotl@var{m}3): Ditto.
2540         (vrotr@var{m}3): Ditto.
2541
2542         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2543         (PPERM_INVERT): Ditto.
2544         (PPERM_REVERSE): Ditto.
2545         (PPERM_REV_INV): Ditto.
2546         (PPERM_ZERO): Ditto.
2547         (PPERM_ONES): Ditto.
2548         (PPERM_SIGN): Ditto.
2549         (PPERM_INV_SIGN): Ditto.
2550         (PPERM_SRC1): Ditto.
2551         (PPERM_SRC2): Ditto.
2552
2553         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2554         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2555         allows a memory operand to be the value being added, and split it
2556         to improve vectorization.
2557         (sse5_pmacsdqh_mem): Ditto.
2558         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2559         (sse5_mulv2div2di3_high): Ditto.
2560         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2561         (vec_pack_trunc_v4si): Ditto.
2562         (vec_pack_trunc_v2di): Ditto.
2563         (sse5_pcmov_<mode>): Remove code that tried to use use
2564         andps/andnps instead of pcmov.
2565         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2566         pmacsdqh instructions.
2567         (vec_widen_smult_lo_v4si): Ditto.
2568
2569         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2570         (PPERM_INVERT): Ditto.
2571         (PPERM_REVERSE): Ditto.
2572         (PPERM_REV_INV): Ditto.
2573         (PPERM_ZERO): Ditto.
2574         (PPERM_ONES): Ditto.
2575         (PPERM_SIGN): Ditto.
2576         (PPERM_INV_SIGN): Ditto.
2577         (PPERM_SRC1): Ditto.
2578         (PPERM_SRC2): Ditto.
2579         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2580         true/false tests.
2581         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2582         comparisons.
2583         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2584         says ignore whether the last reference is a memory operand.
2585
2586 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2587             Paolo Bonzini <bonzini at gnu dot org>
2588
2589         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2590         shift patterns.
2591
2592         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2593         (vlshr<mode>3): Rename from vlshr<mode>3.
2594         (vashr<mode>3): Rename from vashr<mode>3.
2595         (mulv4sf3): Change the names of vector shift patterns.
2596         (mulv4si3): Ditto.
2597         (negv4sf2): Ditt.
2598
2599         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2600         shift insns.
2601
2602         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2603         (SI_SHLHI): Ditto.
2604         (SI_SHL): Ditto.
2605         (SI_SHLI): Ditto.
2606         (SI_ROTH): Ditto.
2607         (SI_ROTHI): Ditto.
2608         (SI_ROT): Ditto.
2609         (SI_ROTI): Ditto.
2610         (SPU_RL_0): Ditto.
2611         (SPU_RL_1): Ditto.
2612         (SPU_RL_2): Ditto.
2613         (SPU_RL_3): Ditto.
2614         (SPU_RL_4): Ditto.
2615         (SPU_RL_5): Ditto.
2616         (SPU_RL_6): Ditto.
2617         (SPU_RL_7): Ditto.
2618         (SPU_SL_0): Ditto.
2619         (SPU_SL_1): Ditto.
2620         (SPU_SL_2): Ditto.
2621         (SPU_SL_3): Ditto.
2622         (SPU_SL_4): Ditto.
2623         (SPU_SL_5): Ditto.
2624         (SPU_SL_6): Ditto.
2625         (SPU_SL_7): Ditto.
2626
2627         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2628         (floatunssidf2_internal): Change vector/vector shift names.
2629         (floatunsdidf2_internal): Ditto.
2630         (mulv8hi3): Ditto.
2631         (ashrdi3): Ditto.
2632         (ashrti3): Ditto.
2633         (cgt_df): Ditto.
2634         (cgt_v2df): Ditto.
2635         (dftsv): Ditto.
2636         (vashl<mode>3): Rename from ashl<mode>3.
2637         (vashr<mode>3): Rename from ashr<mode>3.
2638         (vlshr<mode>3): Rename from lshr<mode>3.
2639         (vrotl<mode>3): Rename from rotl<mode>3.
2640
2641 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2642
2643         PR target/36224
2644         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2645         multiply gives the wrong value when doing widening multiplies.
2646         (vec_widen_smult_lo_v4si): Ditto.
2647
2648 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2649
2650         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2651         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2652         emit_library_call_value. 
2653         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2654         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2655         * calls.c (initialize_argument_information, precompute_arguments, 
2656         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2657         (precompute_arguments): Removed flags parameter.
2658         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2659         
2660 2008-05-14  Richard Guenther  <rguenther@suse.de>
2661
2662         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2663         Make sure to register the store if the use is a PHI_NODE.
2664
2665 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2666
2667         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2668         memory if the component is to be referenced in BLKmode according
2669         to get_inner_reference.
2670
2671 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2672
2673         * calls.c (emit_library_call_value_1): Restore code clearing
2674         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2675
2676 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2677             Nicolas Roche  <roche@adacore.com>
2678
2679         * configure.ac: Add support for a "gcc_subdir" variable in
2680         config-lang.in, to denote a subdirectory where the language/GCC
2681         integration files are to be found.
2682         * configure: Regenerate.
2683
2684 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2685
2686         PR tree-optimization/36098
2687         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2688         value for the first load in the group in case of a gap.
2689         (vect_build_slp_tree): Check that there are no gaps in loads.
2690
2691 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2692
2693         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2694         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2695         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2696         emit_insn and remove unneeded code to construct extra args.
2697         (emit_no_conflict_block): Removed.
2698         * optabls.h: (emit_no_conflict_block): Removed.
2699         * cse.c (cse_extended_basic_block): Remove search for
2700         REG_NO_CONFLICT note.
2701         * global.c: Removed incorrect comment added in revision 117.
2702         * expr.c (convert_move): Change call to emit_no_conflict_block to
2703         emit_insn.
2704         * recog.c: Change comments so that they do not mention
2705         REG_NO_CONFLICT.
2706         * local_alloc.c (combine_regs): Removed last parameter.
2707         (no_conflict_p): Removed.
2708         (block_alloc): Removed note, no_conflict_combined_regno and set
2709         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2710         (combine_regs): Removed already_dead and code to look for
2711         REG_NO_CONFLICT notes.
2712         * lower_subreg (remove_retval_note): Removed code to look for
2713         REG_NO_CONFLICT block.
2714         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2715         (resolve_clobber): Remove code to process libcalls that have
2716         REG_NO_CONFLICT notes.
2717         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2718         case.
2719         * combine.c (can_combine_p, distribute_notes):  Removed
2720         REG_NO_CONFLICT case.
2721         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2722         to emit_insns.
2723         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2724         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2725         Ditto.
2726         * reg-notes.def (NO_CONFLICT): Removed.
2727
2728 2008-05-14  David S. Miller  <davem@davemloft.net>
2729
2730         * config/sparc/sparc.c (sparc_profile_hook): If
2731         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2732         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2733         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2734
2735 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2736
2737         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2738
2739 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2740
2741         PR target/36222
2742         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2743         and op1 expansion before vector concat to have less live pseudos.
2744
2745 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2746
2747         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2748         ix86_expand_vector_set if supported.
2749
2750 2008-05-13  Diego Novillo  <dnovillo@google.com>
2751             Kenneth Zadeck  <zadeck@naturalbridge.com>
2752
2753         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2754
2755         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2756         phinodes_print_statistics, init_ssanames, fini_ssanames,
2757         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2758         release_ssa_name, release_defs, replace_ssa_name_symbol,
2759         ssanames_print_statistics): Move ...
2760         * tree-flow.h: ... here.
2761         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2762         Use FN instead of cfun.
2763         (make_ssa_name_fn): Rename from make_ssa_name.
2764         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2765         * tree-flow-inline.h (make_ssa_name): Move from
2766         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2767         * omp-low.c (expand_omp_parallel):
2768         * tree-flow-inline.h (redirect_edge_var_map_result):
2769         * tree-ssa.c (init_tree_ssa): Add argument FN.
2770         Use it instead of cfun.  Update all users.
2771
2772 2008-05-13  Tom Tromey  <tromey@redhat.com>
2773
2774         PR preprocessor/22168:
2775         * doc/cpp.texi (Top): Update menu.
2776         (Alternatives to Wrapper #ifndef): New node.
2777         (Other Directives): Document deprecation.
2778         (Obsolete Features): Remove menu.
2779         (Assertions): Merge node into Obsolete Features.
2780         (Obsolete once-only headers): Move earlier; rename to Alternatives
2781         to Wrapper #ifndef.
2782         * doc/cppopts.texi: Update.
2783         * c.opt (Wdeprecated): Enable for C and ObjC.
2784         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2785         (C++ Dialect Options): Move -Wno-deprecated from here to...
2786         (Warning Options): ... here.
2787
2788 2008-05-13  Richard Guenther  <rguenther@suse.de>
2789
2790         PR middle-end/36227
2791         * fold-const.c (fold_sign_changed_comparison): Do not allow
2792         changes in pointer-ness.
2793
2794 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2795
2796         PR target/24713
2797         * config/sh/sh.c (sh_expand_prologue): Don't clear
2798         RTX_FRAME_RELATED_P for push insns.
2799
2800 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2801
2802         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2803
2804 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2805
2806         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2807         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2808         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2809
2810 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2811
2812         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2813         (*vec_concatv4sf_sse): This.
2814         (*sse2_concatv2si): Renamed to ...
2815         (*vec_concatv2si_sse2): This.
2816         (*sse1_concatv2si): Renamed to ...
2817         (*vec_concatv2si_sse): This.
2818         (*vec_concatv2di_rex): Renamed to ...
2819         (*vec_concatv2di_rex64): This.
2820         (*vec_concatv2si_sse4_1): New.
2821         (*vec_concatv2di_rex64_sse4_1): Likewise.
2822
2823 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2824
2825         PR rtl-optimization/36111
2826         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2827         that was created for swappable operands.
2828
2829 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2830
2831         PR ada/36001
2832         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2833         * configure.ac: Add call to ACX_PROG_GNAT.
2834
2835 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2836
2837         * optc-gen.awk: Fix comment typo.
2838
2839 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2840
2841         * pretty-print.c (pp_integer_with_precision): Use
2842         HOST_LONG_LONG_FORMAT.
2843
2844 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2845
2846         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2847                 
2848 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2849
2850         * config/i386/i386.c (bdesc_ptest): Removed.
2851         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2852         (bdesc_args): Add __builtin_ia32_ptestz128,
2853         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2854         (ix86_init_mmx_sse_builtins): Updated.
2855         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2856         (ix86_expand_builtin): Updated.
2857
2858 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2859
2860         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2861         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2862
2863 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2864
2865         * value-prof.c (interesting_stringop_to_profile): Do not
2866         return early for BUILT_IN_MEMPCPY.
2867
2868 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2869
2870         * calls.c (expand_call): Don't use callgraph to increase
2871         preferred_stack_boundary.
2872
2873         * cgraph.h (cgraph_rtl_info): Use unsigned on
2874         preferred_incoming_stack_boundary.
2875
2876         * final.c (rest_of_clean_state): Use unsigned on
2877         preferred_stack_boundary.
2878
2879 2008-05-09  Tom Tromey  <tromey@redhat.com>
2880
2881         PR preprocessor/22231:
2882         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2883         proceeding.
2884
2885 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2886
2887         PR tree-optimization/36129
2888         * tree-ssa-ccp.c: Include value-prof.h.
2889         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2890         built-in function was folded to a constant.
2891         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2892
2893 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2894             Sebastian Pop  <sebastian.pop@amd.com>
2895
2896         * tree-scalar-evolution.c: Document instantiate_scev.
2897         (instantiate_parameters_1): Renamed instantiate_scev_1.
2898         Don't use the same loop for instantiation_loop and evolution_loop.
2899         (instantiate_scev): New.
2900         (instantiate_parameters): Moved...
2901         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2902         same loop twice.  Maintains the semantics for this function.
2903         * tree-scalar-evolution.h (instantiate_scev): Declare.
2904         (instantiate_parameters): ...here.  Now static inline.
2905         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2906         instead of resolve_mixers.
2907
2908 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2909
2910         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2911
2912 2008-05-09  Tomas Bily  <tbily@suse.cz>
2913
2914         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2915         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2916         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2917         * c-common.c (c_common_truthvalue_conversion): Likewise.
2918         * tree-object-size.c (compute_object_offset): Likewise.
2919         * tree-inline.c (estimate_num_insns_1): Likewise.
2920         * varasm.c (const_hash_1, compare_constant, copy_constant)
2921         (compute_reloc_for_constant, output_addressed_constants)
2922         (initializer_constant_valid_p): Likewise.
2923         * c-omp.c (check_omp_for_incr_expr): Likewise.
2924         * gimplify.c (gimplify_expr): Likewise.
2925         * c-typeck.c (c_finish_return): Likewise.
2926         * tree-vectorizer.c (supportable_widening_operation)
2927         (supportable_narrowing_operation): Likewise.
2928         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2929         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2930         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2931         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2932         (descr_info_loc): Likewise.
2933         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2934         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2935         (fold_unary): Likewise.
2936         * builtins.c (get_pointer_alignment): Likewise.
2937         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2938         (instantiate_parameters_1): Likewise.
2939         * tree.c (expr_align, stabilize_reference): Likewise.
2940         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2941         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2942         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2943         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2944         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2945         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2946         Likewise.
2947         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2948         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2949         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2950         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2951         (forward_propagate_comparison)
2952         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2953         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2954         * emit-rtl.c (component_ref_for_mem_expr)
2955         (set_mem_attributes_minus_bitpos): Likewise.
2956         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2957         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2958         Likewise.
2959         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2960         (build_function_call, pointer_diff, build_compound_expr)
2961         (c_finish_return): Likewise.
2962         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2963         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2964         Likewise.
2965         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2966         * expr.c (is_aligning_offset): Likewise.
2967         * tree-ssa-alias.c (is_escape_site): Likewise.
2968         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2969         (check_all_va_list_escapes): Likewise.
2970         * tree-ssa-loop-ivopts.c (determine_base_object)
2971         (determine_common_wider_type): Likewise.
2972         * dojump.c (do_jump): Likewise.
2973         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2974         * tree-gimple.c (is_gimple_cast): Likewise.
2975         * fold-const.c (decode_field_reference, )
2976         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2977         (fold_binary): Likewise.
2978         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2979         (already_warned_in_frontend_p): Likewise.
2980         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2981         * tree.c (really_constant_p, get_unwidened): Likewise.
2982         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2983         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2984         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2985         Likewise.
2986         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2987         CONVERT_EXPR_P.
2988         (CONVERT_EXPR_P): Define.
2989         (CASE_CONVERT): Define.
2990         
2991 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2992
2993         PR middle-end/36117
2994         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2995         (delete_unmarked_insns): When deleting a call, call
2996         delete_unreachable_blocks.
2997         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2998         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2999
3000 2008-05-08  Richard Guenther  <rguenther@suse.de>
3001
3002         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3003         (-ftree-salias): Likewise.
3004         (salias-max-implicit-fields): Remove param documentation.
3005         (salias-max-array-elements): Likewise.
3006         * tree-pass.h (pass_create_structure_vars): Remove.
3007         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3008         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3009         * tree-ssa-alias.c (create_structure_vars): Remove.
3010         (gate_structure_vars): Likewise.
3011         (pass_create_structure_vars): Likewise.
3012         (gate_build_alias): Likewise.
3013         (pass_build_alias): Adjust to run always and dump the function.
3014         * common.opt (ftree-salias): Hide.
3015         * passes.c (init_optimization_passes): Remove
3016         pass_create_structure_vars, adjust comment.
3017         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3018         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3019         * opts.c (decode_options): Do not set flag_tree_salias.
3020         (common_handle_option): Add OPT_ftree_salias to the backward
3021         compatibility section.
3022
3023 2008-05-08  Richard Guenther  <rguenther@suse.de>
3024
3025         * tree-flow-inline.h (var_can_have_subvars): Move ...
3026         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3027         * tree-flow.h (var_can_have_subvars): Remove.
3028         (push_fields_onto_fieldstack): Remove.
3029         (sort_fieldstack): Likewise.
3030         (struct fieldoff): Move ...
3031         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
3032         alias_set and base_for_components fields.
3033         (sort_fieldstack): Make static.
3034         (push_fields_onto_fieldstack): Likewise.  Remove code that
3035         handles anything but RECORD_TYPEs.  Remove alias_set and
3036         base_for_components handling.
3037         (create_variable_info_for): Adjust.
3038
3039 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
3040
3041         * common.opt (Wframe-larger-than=): Shorten the help message
3042         to one line.
3043         * doc/invoke.texi (Wframe-larger-than=): Add more description.
3044
3045 2008-05-08  Rafael Espindola  <espindola@google.com>
3046
3047         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3048         trap.
3049         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3050         trap and that both operands are gimple values.
3051         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3052         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3053         is a fp operation.
3054
3055 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3056
3057         * read-rtl.c (join_c_conditions): Return the first string if the
3058         two strings are equal.
3059
3060 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3061
3062         * gensupport.h (pred_data): Add a "num_codes" field.
3063         (add_predicate_code): Declare.
3064         * gensupport.c (add_predicate_code): New function.
3065         (std_pred_table): Add an "allows_const_p" field.
3066         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3067         Remove the (incomplete) list of such codes from the codes field.
3068         (init_predicate_table): Use add_predicate_code.  Add all
3069         RTX_CONST_OBJs if allows_const_p is true.
3070         * genrecog.c (process_define_predicate): Use add_predicate_code.
3071
3072 2008-05-08  David Daney  <ddaney@avtrex.com>
3073             Richard Sandiford  <rsandifo@nildram.co.uk>
3074         
3075         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3076         special case of constant zero operands.
3077         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3078         old and new values.  Special case constant zero values.
3079         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3080         fails.
3081         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3082         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3083
3084 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
3085
3086         PR target/36090
3087         * simplify-rtx.c (simplify_plus_minus): Create CONST of
3088         similar RTX_CONST_OBJ before CONST_INT.
3089
3090 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
3091
3092         * stmt.c (expand_stack_restore): Change sa mode if needed.
3093
3094 2008-05-08  Richard Guenther  <rguenther@suse.de>
3095
3096         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3097         return type to bool.
3098         (ix86_sol10_return_in_memory): Likewise.
3099         (ix86_i386elf_return_in_memory): Likewise.
3100         (ix86_i386interix_return_in_memory): Likewise.
3101         * config/i386/i386.c (ix86_return_in_memory): Likewise.
3102         (ix86_sol10_return_in_memory): Likewise.
3103         (ix86_i386elf_return_in_memory): Likewise.
3104         (ix86_i386interix_return_in_memory): Likewise.
3105
3106 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3107
3108         PR bootstrap/36180
3109         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3110         fndecl argument.
3111         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3112         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3113         declared in front.
3114
3115 2008-05-08  Richard Guenther  <rguenther@suse.de>
3116
3117         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3118         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3119         (DR_SUBVARS): Remove.
3120         * tree-dfa.c (dump_subvars_for): Remove.
3121         (debug_subvars_for): Likewise.
3122         (dump_variable): Do not dump subvars.
3123         (remove_referenced_var): Do not remove subvars.
3124         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3125         (lookup_subvars_for_var): Remove.
3126         (get_subvars_for_var): Likewise.
3127         (get_subvars_at): Likewise.
3128         (get_first_overlapping_subvar): Likewise.
3129         (overlap_subvar): Likewise.
3130         * tree-flow.h (subvar_t): Remove.
3131         (struct var_ann_d): Remove subvars field.
3132         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3133         argument.  Remove special handling of SFTs.
3134         (compute_tag_properties): Likewise.
3135         (set_initial_properties): Likewise.
3136         (compute_call_clobbered): Likewise.
3137         (count_mem_refs): Likewise.
3138         (compute_memory_partitions): Likewise.
3139         (compute_flow_insensitive_aliasing): Likewise.
3140         (setup_pointers_and_addressables): Likewise.
3141         (new_type_alias): Likewise.
3142         (struct used_part): Remove.
3143         (used_portions): Likewise.
3144         (struct used_part_map): Likewise.
3145         (used_part_map_eq): Likewise.
3146         (used_part_map_hash): Likewise.
3147         (free_used_part_map): Likewise.
3148         (up_lookup): Likewise.
3149         (up_insert): Likewise.
3150         (get_or_create_used_part_for): Likewise.
3151         (create_sft): Likewise.
3152         (create_overlap_variables_for): Likewise.
3153         (find_used_portions): Likewise.
3154         (create_structure_vars): Likewise.
3155         * tree.def (STRUCT_FIELD_TAG): Remove.
3156         * tree.h (MTAG_P): Adjust.
3157         (struct tree_memory_tag): Remove base_for_components and
3158         unpartitionable flags.
3159         (struct tree_struct_field_tag): Remove.
3160         (SFT_PARENT_VAR): Likewise.
3161         (SFT_OFFSET): Likewise.
3162         (SFT_SIZE): Likewise.
3163         (SFT_NONADDRESSABLE_P): Likewise.
3164         (SFT_ALIAS_SET): Likewise.
3165         (SFT_UNPARTITIONABLE_P): Likewise.
3166         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3167         (union tree_node): Remove sft field.
3168         * alias.c (get_alias_set): Remove special handling of SFTs.
3169         * print-tree.c (print_node): Remove handling of SFTs.
3170         * tree-dump.c (dequeue_and_dump): Likewise.
3171         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3172         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3173         * tree-predcom.c (set_alias_info): Do not set subvars.
3174         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3175         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3176         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3177         (add_vars_for_offset): Remove.
3178         (add_virtual_operand): Remove special handling of SFTs.
3179         (add_call_clobber_ops): Likewise.
3180         (add_call_read_ops): Likewise.
3181         (get_asm_expr_operands): Likewise.
3182         (get_modify_stmt_operands): Likewise.
3183         (get_expr_operands): Likewise.
3184         (add_to_addressable_set): Likewise.
3185         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3186         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3187         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3188         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3189         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3190         (tree_node_structure): Likewise.
3191         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3192         handling of SFTs.
3193         (find_what_p_points_to): Likewise.
3194
3195 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3196
3197         * config/spu/spu.md: Fixed subti3 pattern.
3198
3199 2008-05-08  Richard Guenther  <rguenther@suse.de>
3200
3201         PR middle-end/36154
3202         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3203         sure to create a representative for trailing arrays for PTA.
3204
3205 2008-05-08  Richard Guenther  <rguenther@suse.de>
3206
3207         PR middle-end/36172
3208         * fold-const.c (operand_equal_p): Two objects which types
3209         differ in pointerness are not equal.
3210
3211 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3212
3213         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3214         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3215         (emit_library_call_value_1): Add new variable fndecl initialized by
3216         NULL_TREE. It should be the decl type of orgfun, but this information
3217         seems not to be available here, so it uses the default calling abi.
3218         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3219         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3220         by TARGET_RETURN_IN_MEMORY.
3221         * config/i386/i386-interix.h: Likewise.
3222         * config/i386/i386.h: Likewise.
3223         * config/i386/i386elf.h: Likewise.
3224         * config/i386/ptx4-i.h: Likewise.
3225         * config/i386/sol2-10.h: Likewise.
3226         * config/i386/sysv4.h: Likewise.
3227         * config/i386/vx-common.h: Likewise.
3228         * config/cris/cris.h: Removed #if 0 clause.
3229         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3230         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3231         argument.
3232         (ix86_sol10_return_in_memory): Likewise.
3233         (ix86_i386elf_return_in_memory): New.
3234         (ix86_i386interix_return_in_memory): New.
3235         * config/mt/mt-protos.h (mt_return_in_memory): New.
3236         * config/mt/mt.c: Likewise.
3237         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3238         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3239         * config/bfin/bfin.h: Likewise.
3240         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3241         argument.
3242         * config/bfin/bfin.c: Likewise.
3243         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3244         * config/alpha/unicosmk.h: Likewise.
3245         * config/i386/cygming.h: Likewise.
3246         * config/iq2000/iq2000.h: Likewise.
3247         * config/mips/mips.h: Likewise.
3248         * config/mn10300/mn10300.h: Likewise.
3249         * config/rs6000/rs6000.h: Likewise.
3250         * config/score/score.h: Likewise.
3251         * config/spu/spu.h: Likewise.
3252         * config/v850/v850.h: Likewise.
3253         * defaults.h: Likewise.
3254         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3255         * expr.c (emit_block_move): Adjust use of
3256         OUTGOING_REG_PARM_STACK_SPACE.
3257         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3258         OUTGOING_REG_PARM_STACK_SPACE.
3259         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3260
3261 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3262
3263         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3264         on OMP_RETURN for OMP_FOR.
3265
3266         PR debug/35896
3267         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3268         (fortran_common): New function.
3269         (gen_variable_die): Call fortran_common instead of common_check,
3270         adjust for it returning tree instead of rtx.  Formatting.
3271
3272 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3273
3274         PR rtl/7335
3275         PR rtl/33826
3276         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3277         * c-decl.c (merge_decls): Ditto.
3278         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3279         to RTL_CONST_OR_PURE_CALL_P.
3280         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3281         Initialized DECL_LOOPING_CONST_PURE.
3282         (process_call_operands): Set tree_side_effects properly.
3283         * tree.h (TREE_READONLY_DECL_P): Removed.
3284         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3285         (DECL_LOOPING_OR_CONST_P): New macro.
3286         (struct tree_function_decl): Added looping_const_or_pure_p.
3287         (ECF_*) Renumbered.
3288         (ECF_LOOPING_OR_CONST_P): New macro.
3289         * rtlanal.c (pure_const_p): Removed.
3290         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3291         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3292         to RTL_CONST_CALL_P.
3293         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3294         (check_decl, check_tree, check_call, scan_function): Initialize
3295         looping.
3296         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3297         (static_execute): Set looping true for recursive functions.
3298         Undo setting state to IPA_NEITHER for recursive functions.
3299         * cse.c (cse_insn): 
3300         * ifcvt.c (noce_can_store_speculate_p): Changed
3301         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3302         RTL_CONST_OR_PURE_CALL_P.
3303         * dse.c (scan_insn): Ditto.
3304         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3305         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3306         RTL_CONST_OR_PURE_CALL_P.
3307         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3308         pure_call_p to RTL_CONST_CALL_P.
3309         * gimplify.c (gimplify_call_expr): Clear side effects for
3310         non-looping pure and constant calls.
3311         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3312         (flags_from_decl_or_type): Set ecf flags from decl flags.
3313         (initialize_argument_information): Turn off
3314         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3315         Change const to pure if callee_copies is true rather than just
3316         turning off const.
3317         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3318         way of marking pure calls.
3319         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3320         Remove hack that was supposed to fix pr7335 and remove old
3321         way of marking pure calls.
3322         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3323         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3324         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3325         RTL_CONST_OR_PURE_CALL_P.
3326         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3327         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3328         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3329         * sched-deps.c (schedule_analyze): Ditto.
3330         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3331         return_val field of calls to represent pure and const function info.
3332         (CONST_OR_PURE_CALL_P): Deleted macro.
3333         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3334         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3335         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3336         TREE_READONLY.
3337         * tree-optimize.c (execute_fixup_cfg): Added test for
3338         ECF_LOOPING_CONST_OR_PURE.
3339         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3340         DECL_PURE_P.
3341         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3342         effects for looping pure or const calls.
3343         (verify_gimple_expr): Added verification code. 
3344         * config/alpha/alpha.c (alpha_legitimize_address,
3345         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3346         RTL_CONST_CALL_P.
3347         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3348         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3349         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3350         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3351         RTL_CONST_OR_PURE_CALL_P.
3352         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3353         and const calls to be deleted.
3354
3355 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3356
3357         PR target/35714
3358         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3359         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3360         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3361         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3362         to handle nonimmediate operands.
3363         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3364         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3365         to handle nonimmediate operands.
3366         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3367         (mmx_pmulhrwv4hi3): New expander.  Use
3368         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3369         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3370         (sse2_umulv1siv1di3): New expander.  Use
3371         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3372         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3373         (mmx_eq<mode>3): New expander.  Use
3374         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3375         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3376         (mmx_uavgv8qi3): New expander.  Use
3377         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3378         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3379         (mmx_uavgv4hi3): New expander.  Use
3380         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3381
3382         * config/i386/sse.md
3383         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3384         to handle nonimmediate operands.
3385         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3386         to handle nonimmediate operands.
3387         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3388         to handle nonimmediate operands.
3389         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3390         to handle nonimmediate operands.
3391         (sse2_unpckhpd_exp): New expander.  Use
3392         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3393         (sse2_unpcklpd_exp): New expander.  Use
3394         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3395         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3396         to handle nonimmediate operands.
3397         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3398         to handle nonimmediate operands.
3399         (*sse2_<plusminus_insn><mode>3): Rename from
3400         sse2_<plusminus_insn><mode>3 insn pattern.
3401         (sse2_<plusminus_insn><mode>3): New expander.  Use
3402         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3403         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3404         (sse2_umulv2siv2di3): New expander.  Use
3405         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3406         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3407         (sse4_1_mulv2siv2di3): New expander.  Use
3408         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3409         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3410         (sse2_pmaddwd): New expander.  Use
3411         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3412         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3413         (sse2_eq<mode>3): New expander.  Use
3414         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3415         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3416         (sse4_1_eqv2di3): New expander.  Use
3417         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3418         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3419         (sse2_uavgv16qi3): New expander.  Use
3420         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3421         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3422         (sse2_uavgv16qi3): New expander.  Use
3423         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3424         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3425         (sse2_uavgv8hi3): New expander.  Use
3426         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3427         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3428         (ssse3_pmulhrswv8hi3): New expander.  Use
3429         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3430         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3431         (ssse3_pmulhrswv4hi3): New expander.  Use
3432         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3433
3434         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3435         (<sse>_vmmul<mode>3): Ditto.
3436         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3437         (divv2df3): Ditto.
3438         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3439         (ssse3_pmaddubsw): Ditto.
3440
3441         * config/i386/i386.c (struct_builtin_description)
3442         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3443         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3444         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3445         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3446         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3447         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3448         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3449         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3450         (ix86_fixup_binary_operands): Assert that src1
3451         and src2 must have the same mode when swapped.
3452         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3453         and ix86_binary_operator_ok.  Do not force operands in registers
3454         when optimizing.
3455
3456 2008-05-07  Jan Hubicka  <jh@suse.cz>
3457
3458         * cgraph.c (dump_cgraph_node): Update.
3459         * cgraph.h (cgraph_local_info): Break out inline summary.
3460         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3461         hook.
3462         * ipa-inline (inline_summary): New accestor function.
3463         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3464         cgraph_decide_inlining, compute_inline_parameters): Update.
3465         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3466
3467 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3468
3469         Cleanup ColdFire scheduling support and add V4 pipeline model.
3470
3471         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3472         (define_attr cpu): Add cfv4 value.
3473         (define_attr type, define_attr type1): Merge into a single 'type'
3474         attribute.  Update all uses.
3475         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3476         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3477         Update all uses.
3478         (define_attr opx_mem, define_attr opy_mem): Remove.
3479         (define_attr op_mem): Clean up, update comment.
3480         (define_attr size): Use specific values instead of general int.
3481         (define_attr guess, define_attr split): Remove.  Update all uses.
3482         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3483         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3484         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3485         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3486         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3487         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3488         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3489         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3490         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3491         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3492         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3493         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3494         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3495         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3496         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3497         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3498         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3499         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3500         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3501         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3502         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3503         Update or set attributes.
3504         (stack_tie): New fake instruction.
3505
3506         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3507         (m68k_sched_attr_size): Update declaration.
3508         (m68k_sched_attr_type2): Remove.
3509         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3510         Declare new bypass predicates.
3511
3512         * config/m68k/m68k.c (m68k_sched_issue_rate,
3513         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3514         implementations.
3515         (TARGET_SCHED_ISSUE_RATE,
3516         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3517         (override_options): Handle scheduling for ColdFire V4 core.
3518         (m68k_expand_prologue): Emit stack_tie.
3519         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3520         'OP_TYPE_FPN'.  Update all uses.
3521         (sched_guess_p): Remove.
3522         (sched_address_type): Handle symbolic addresses.
3523         (sched_get_operand): New static function.
3524         (sched_operand_type): Merge into sched_attr_op_type.
3525         (sched_attr_op_type): Handle FP registers, handle quick constants,
3526         update.
3527         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3528         (m68k_sched_attr_size): Update.  Move logic to ...
3529         (sched_get_attr_size_int): New static function.
3530         (sched_get_opxy_mem_type): New static function.
3531         (m68k_sched_attr_op_mem): Update.
3532         (m68k_sched_attr_type2): Remove.
3533         (sched_cfv4_bypass_data): New static variable.
3534         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3535         (m68k_sched_issue_rate): Implement scheduler hook.
3536         (struct _sched_ib: enabled_p): New field.
3537         (m68k_sched_variable_issue): Update.  Handle V4.
3538         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3539         sched_dump_class_func_t, sched_dump_split_class,
3540         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3541         sched_dump_dfa_class, m68k_sched_dump): Remove.
3542         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3543         hook.
3544         (m68k_sched_init_global): Remove statisctics dumping, introduce
3545         sanity check that all instructions have pipeline reservations.  Handle
3546         ColdFire V4 core.
3547         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3548         Handle ColdFire V4 core.
3549         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3550         New static functions.
3551         (m68k_sched_address_bypass_p): New bypass predicate.
3552         (sched_get_indexed_address_scale): New static function.
3553         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3554
3555         * cf.md: Update comments.
3556         (define_attr type2): Remove.  Use 'type' attribute instead.
3557         Update all uses.
3558         (cf_ib): Rename to cfv123_ib.  Update all uses.
3559         (cf_oep): Rename to cfv123_oep.  Update all uses.
3560         (cf_chr): Rename to cfv123_chr.  Update all uses.
3561         (cf_mem): Rename to cfv123_mem.  Update all uses.
3562         (cf_mac): Move to more appropriate place.
3563         (cfv123_guess): New automaton and cpu_unit.
3564         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3565         Update uses of 'size' attribute.  Handle before reload scheduling.
3566         (cfv123_guess): New dummy reservation for unhandled instructions.
3567         (cfv4_*): Pipeline description of ColdFire V4 core.
3568         (ignore): New reservation to handle 'ignore' type.
3569
3570 2008-05-07  Ian Lance Taylor  <iant@google.com>
3571
3572         PR middle-end/36013
3573         * gimplify.c (find_single_pointer_decl_1): Don't look through
3574         indirections.
3575         (find_single_pointer_decl): Adjust comments.
3576
3577 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3578
3579         PR middle-end/36137
3580         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3581         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3582
3583         PR middle-end/36106
3584         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3585         integral type rather than floating point, then VIEW_CONVERT_EXPR
3586         to the floating point type.
3587
3588 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3589
3590         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3591         TFmode op0 to register.
3592
3593 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3594
3595         * c-decl.c (grokdeclarator): Comment typo.
3596
3597 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3598
3599         * tree-flow.h: Remove prototype for computed_goto_p.
3600         * tree-cfg.c (computed_goto_p): Make static.
3601
3602 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3603
3604         PR target/35657
3605         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3606         (contains_aligned_value_p): This.  Handle _Decimal128.
3607         (ix86_function_arg_boundary): Only align _Decimal128 to its
3608         natural boundary and handle it properly.
3609
3610 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3611
3612         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3613         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3614         (ipcp_method_set_orig_node): Removed.
3615         (ipcp_cval_get_cvalue_type): Removed.
3616         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3617         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3618         (ipcp_cval_set_cvalue_type): Removed.
3619         (ipcp_cval_get_cvalue): Removed.
3620         (ipcp_cval_set_cvalue): Removed.
3621         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3622         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3623         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3624         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3625         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3626         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3627         (ipcp_get_ith_lattice): Changed parameters.
3628         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3629         (ipcp_lattice_from_jfunc): Changed parameters.
3630         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3631         (ipcp_method_cval_print): Added temporary variable info.
3632         (ipcp_redirect): Removed already unused local variable caller.
3633         (ipcp_redirect): New temporary variable orig_callee_info
3634         (ipcp_redirect): Removed newly unused local variable callee.
3635         (ipcp_redirect): Removed (a bit confusing) local variable type.
3636         (ipcp_insert_stage): Added local variable info.
3637         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3638         renamed too
3639         (ipcp_formal_create): Removed.
3640         (ipcp_method_cval_set): Removed.
3641         (ipcp_propagate_stage): Renamed lattice variables.
3642         (ipcp_method_cval_set_cvalue_type): Removed.
3643         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3644         (ipcp_print_all_lattices): Changed printed strings to refer to 
3645         lattices rather than cvals.
3646         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3647         (ipcp_propagate_const): Changed formal parameters.
3648         (build_const_val): Changed formal parameters.
3649         (ipcp_insert_stage): Removed useless variable cvalue
3650         (build_const_val): Changed formal parameters.
3651         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3652         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3653         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3654         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3655         (ipcp_print_func_profile_counts): Changed string from "method" to 
3656         "function"
3657         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3658         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3659         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3660         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3661         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3662         (ipcp_lat_is_const): Changed parameters and made inline.
3663         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3664         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3665         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3666         the predicate condition directly
3667         (ipcp_propagate_stage): Added local variable args. Removed local
3668         variable callee.  (Both are mere code simplifications.)
3669         (ipcp_method_dont_insert_const): Renamed to
3670         ipcp_node_not_modifiable_p.
3671         (ipcp_node_not_modifiable_p): Made inline.
3672         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3673         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3674         (ipcp_print_all_lattices): Removed variable cvalue
3675         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3676         Updated comments.
3677
3678 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3679
3680         * tree-sra.c (try_instantiate_multiple_fields): Early return
3681         if field has POINTER_TYPE.
3682
3683 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3684
3685         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3686         by using 'q' specifier for instruction.
3687         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3688
3689 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3690
3691         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3692         Change mode of zero_extract from QImode to HImode.
3693         (sign bit tests peepholes): (Ditto.).
3694
3695 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3696
3697         * config/i386/mmx.md: Remove double backslashes from asm templates.
3698         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3699         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3700         to handle nonimmediate operands.
3701         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3702         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3703         to handle nonimmediate operands.
3704         (*mmx_<code>v2sf3_finite): New insn pattern.
3705         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3706         (mmx_<code>v2sf3): New expander.  Use
3707         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3708         (mmx_<plusminus_insn><mode>3): New expander.  Use
3709         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3710         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3711         (mmx_add<mode>3): Removed.
3712         (mmx_ssadd<mode>3): Ditto.
3713         (mmx_usadd<mode>3): Ditto.
3714         (mmx_sub<mode>3): Ditto.
3715         (mmx_sssub<mode>3): Ditto.
3716         (mmx_ussub<mode>3): Ditto.
3717         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3718         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3719         to handle nonimmediate operands.
3720         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3721         insn pattern.
3722         (mmx_smulv4hi3_highpart): New expander.  Use
3723         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3724         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3725         insn pattern.
3726         (mmx_umulv4hi3_highpart): New expander.  Use
3727         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3728         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3729         (mmx_<code>v4hi3): New expander.  Use
3730         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3731         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3732         (mmx_<code>v8qi3): New expander.  Use
3733         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3734         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3735         (mmx_<code><mode>3): New expander.  Use
3736         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3737
3738 2008-05-05  Jan Hubicka  <jh@suse.cz>
3739
3740         PR tree-optimization/36118
3741         * passes.c (pass_init_dump_file): Fix dump header.
3742
3743 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3744
3745         PR middle-end/36141
3746         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3747         VCE for function decls.
3748
3749 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3750
3751         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3752
3753 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3754
3755         * config/i386/i386.md (sat_plusminus): New.
3756         (plusminus_insn): Likewise.
3757         (plusminus_mnemonic): Likewise.
3758         (addsub): Removed.
3759         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3760         (*<addsub><mode>3_cc_overflow): Renamed to ...
3761         (*<plusminus_insn><mode>3_cc_overflow): This.
3762         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3763         (*<plusminus_insn>si3_zext_cc_overflow): This.
3764
3765         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3766         (<plusminus_insn><mode>3): This.
3767         (*<addsub><mode>3): Renamed to ...
3768         (*<plusminus_insn><mode>3): This.
3769         (<sse>_vm<addsub><mode>3): Renamed to ...
3770         (<sse>_vm<plusminus_insn><mode>3): This.
3771         (sse3_h<addsub>v4sf3): Renamed to ...
3772         (sse3_h<plusminus_insn>v4sf3): This.
3773         (sse3_h<addsub>v2df3): Renamed to ...
3774         (sse3_h<plusminus_insn>v2df3): This.
3775         (<plusminus_insn><mode>3): New.
3776         (*<plusminus_insn><mode>3): Likewise.
3777         (sse2_<plusminus_insn><mode>3): Likewise.
3778         (add<mode>): Removed.
3779         (*add<mode>3): Likewise.
3780         (sse2_ssadd<mode>3): Likewise.
3781         (sse2_usadd<mode>3): Likewise.
3782         (sub<mode>3): Likewise.
3783         (*sub<mode>3): Likewise.
3784         (sse2_sssub<mode>3): Likewise.
3785         (sse2_ussub<mode>3): Likewise.
3786
3787 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3788
3789         * gthr-single.h: Add in required interface elements as per gthr.h.
3790         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3791         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3792         Generalize UNUSED macro. 
3793         (__gthread_once): Add.
3794         (__gthread_key_create): Add.
3795         (__gthread_key_delete): Add.
3796         (__gthread_getspecific): Add.
3797         (__gthread_setspecific): Add.
3798         
3799 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3800
3801         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3802         the same size types for the indirect reference on the rhs, then
3803         create a VCE.
3804
3805 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3806
3807         * config/i386/i386.md
3808         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3809         one insn template instead of template series.
3810         (*xordi_1_rex64): Ditto.
3811         (*xordi_2_rex64): Ditto.
3812
3813 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3814
3815         PR tree-optimization/36119
3816         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3817         in case of SLP.
3818
3819 2008-06-04  Jan Hubicka  <jh@suse.cz>
3820
3821         tree-optimization/36100
3822         * tree-pass.h (pass_O0_always_inline): Declare.
3823         * ipa-inline.c (inline_transform): Remove dead code.
3824         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3825         pass_O0_always_inline): New.
3826         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3827
3828 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3829
3830         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3831         mnemonic in this_param move for TARGET_64BIT.
3832
3833 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3834
3835         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3836         (*strmovsi_rex_1): Ditto.
3837         (*strsetsi_1): Ditto.
3838         (*strsetsi_rex_1): Ditto.
3839
3840         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3841         adddicc expanders using SWI mode iterator.
3842
3843 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3844
3845         PR target/36121
3846         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3847         argument handling.
3848
3849 2008-05-04  David S. Miller  <davem@davemloft.net>
3850
3851         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3852         (sparc*-*-linux*): Use linux.h in tm_file.
3853         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3854         compiler defaulting to 32-bit.
3855         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3856         no longer needed.
3857         * config/sparc/linux.h: Remove definitions now obtained
3858         properly from linux.h
3859         * config/sparc/linux64.h: Likewise.
3860         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3861         don't want this setting for 32-bit builds in a biarch compiler.
3862         * doc/install.texi: Add sparc-linux to list of targets
3863         supporting --enable-targets=all.
3864
3865 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3866
3867         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3868
3869 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3870
3871         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3872         after V4SI_FTYPE_V8HI.
3873         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3874         case V4SI_FTYPE_V2DF.
3875
3876 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3877
3878         * doc/invoke.texi (max-flow-memory-locations): Removed.
3879         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3880         
3881 2008-05-03  Richard Guenther  <rguenther@suse.de>
3882
3883         PR middle-end/34973
3884         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3885
3886 2008-05-02  David S. Miller  <davem@davemloft.net>
3887
3888         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3889
3890 2008-05-02  Simon Baldwin <simonb@google.com>
3891
3892         PR bootstrap/36108
3893         * c-common.h (warn_array_subscript_range): Removed.
3894         * c-common.c (warn_array_subscript_range): Ditto.
3895         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3896         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3897
3898 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3899
3900         * config/i386/i386.c (ix86_special_builtin_type): New.
3901         (bdesc_special_args): Likewise.
3902         (ix86_expand_special_args_builtin): Likewise.
3903         (ix86_init_mmx_sse_builtins): Updated.
3904         (ix86_expand_builtin): Updated.
3905         (ix86_expand_store_builtin): Removed.
3906         (ix86_expand_unop_builtin): Likewise.
3907
3908         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3909         * config/i386/mmintrin.h (__v2sf): Here.
3910
3911         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3912         const __v2sf.
3913         (_mm_loadl_pi): Likewise.
3914         (_mm_storeh_pi): Replace __v2si with __v2sf.
3915         (_mm_storel_pi): Likewise.
3916
3917         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3918         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3919         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3920         __builtin_ia32_loadlpd.
3921
3922 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3923
3924         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3925         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3926         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3927         (ix86_init_mmx_sse_builtins): Updated.
3928         (ix86_expand_args_builtin): Likewise.
3929         (ix86_expand_builtin): Likewise.
3930         (ix86_expand_unop1_builtin): Renamed to ...
3931         (ix86_expand_unop_vec_merge_builtin): This.
3932
3933 2008-05-01  Jan Hubicka  <jh@suse.cz>
3934
3935         PR bootstrap/36100
3936         * ipa-inline.c (inline_generate_summary): Make static.
3937         (inline_transform): Do not call inlining at -O0; make static.
3938         * passes.c (execute_todo): Add sanity check.
3939         (execute_one_ipa_transform_pass): Execute proper flags.
3940
3941 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3942
3943         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3944         (DECL_NONADDRESSABLE_P): Likewise.
3945         * alias.c (record_component_aliases): Fix comment.
3946
3947 2008-05-01  Simon Baldwin <simonb@google.com>
3948
3949         * c-common.h (warn_array_subscript_range): New function.
3950         * c-common.c (warn_array_subscript_range): Ditto.
3951         * tree-vrp.c (check_array_ref): Corrected code to agree with
3952         comment, ignoring only arrays of size 0 or size 1.
3953         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3954
3955 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3956
3957         * config/i386/i386.c (ix86_builtin_type): Replace
3958         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3959         (bdesc_args): Updated.
3960         (ix86_init_mmx_sse_builtins): Likewise.
3961         (ix86_expand_args_builtin): Likewise.
3962
3963         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3964         with __v1di.
3965
3966         * doc/extend.texi: Correct __builtin_ia32_palignr.
3967
3968 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3969
3970         PR target/36095
3971         * config/i386/i386.c (bdesc_crc32): Removed.
3972         (ix86_expand_crc32): Likewise.
3973         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3974         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3975         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3976         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3977         UINT_FTYPE_UINT_UCHAR.
3978         (bdesc_args): Updated. Add crc32 builtins.
3979         (ix86_init_mmx_sse_builtins): Updated.
3980         (ix86_expand_args_builtin): Updated to support subreg.
3981
3982         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3983
3984 2008-05-01  Jan Hubicka  <jh@suse.cz>
3985
3986         * tree-pass.h (opt_pass): Add IPA_PASS.
3987         (varpool_node, cgraph_node): Forward declare.
3988         (ipa_opt_pass): Define.
3989         (pass_ipa_inline): Turn into ipa_opt_pass.
3990         (pass_apply_inline): Remove.
3991         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3992         (apply_inline): Turn into ....
3993         (inline_transform): ... this one.
3994         (inline_generate_summary): New function.
3995         (pass_apply_inline): Remove.
3996         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3997         vector.
3998         (struct function): Add ipa_transforms_to_apply.
3999         * passes.c (register_one_dump_file): Work on IPA_PASS.
4000         (init_optimization_passes): Remove pass_inline_parameters and
4001         pass_apply_inline.
4002         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
4003         (execute_one_pass) ... here; apply transforms when possible.
4004         (add_ipa_transform_pass, execute_ipa_summary_asses,
4005         execute_one_ipa_transform_pass): New.
4006         (execute_ipa_pass_list): Update for IPA_PASS type.
4007
4008 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4009
4010         * config/i386/i386.c (ix86_builtin_type): Add
4011         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
4012         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
4013         (bdesc_args): Add SSE4a builtins.
4014         (ix86_init_mmx_sse_builtins): Updated.
4015         (ix86_expand_args_builtin): Likewise.
4016         (ix86_expand_builtin): Likewise.
4017
4018 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4019
4020         * config/i386/i386.c (ix86_builtin_type): Add
4021         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
4022         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
4023         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
4024         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
4025         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
4026         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
4027         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
4028         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
4029         and DI_FTYPE_DI_DI_INT.
4030         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
4031         (ix86_init_mmx_sse_builtins): Updated.
4032         (ix86_expand_args_builtin): Likewise.
4033         (ix86_expand_builtin): Likewise.
4034         (ix86_expand_binop_imm_builtin): Removed.
4035
4036         * doc/extend.texi: Correct __builtin_ia32_palignr128.
4037
4038 2008-04-30  Richard Guenther  <rguenther@suse.de>
4039
4040         PR tree-optimization/32921
4041         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
4042
4043 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
4044
4045         * config/arm/arm.c (arm_unwind_emit): Use
4046         crtl->all_throwers_are_sibcalls instead of
4047         cfun->all_throwers_are_sibcalls.
4048         (arm_output_fn_unwind): Likewise.
4049         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
4050         instead of cfun->uses_pic_offset_table.
4051         (frv_expand_prologue): Likewise.
4052         (frv_frame_pointer_required): Likewise.
4053         (frv_expand_fdpic_call): Likewise.
4054         (frv_emit_movsi): Likewise.
4055         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
4056         cfun->returns_pcc_struct instead of
4057         current_function_returns_pcc_struct.
4058         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
4059         instead of cfun->calls_eh_return.
4060         (m32c_pushm_popm): Likewise.
4061         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
4062         "extern" declaration.
4063
4064 2008-04-30  Richard Guenther  <rguenther@suse.de>
4065
4066         PR tree-optimization/21636
4067         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
4068         constant address.
4069         (evaluate_stmt): Print the likely value.
4070         (ccp_visit_stmt): Avoid excessive vertical spacing.
4071
4072 2008-04-30  Rafael Espindola  <espindola@google.com>
4073
4074         * builtins.c (fold_call_expr): Return realret.
4075         * tree-ssa-threadedge.c
4076         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
4077         __builtin_object_size.
4078
4079 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
4080
4081         * gcc.c (wrapper_string): New variable.
4082         (insert_wrapper): New function.
4083         (execute): New option -wrapper.
4084         * doc/invoke.texi (Overall Options): New driver option -wrapper.
4085
4086 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
4087
4088         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
4089         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
4090         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
4091         from...
4092         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
4093         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
4094         config/rs6000/e500crtres64gprctr.asm,
4095         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
4096         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
4097         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
4098         config/rs6000/e500crtsav64gprctr.asm,
4099         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
4100         config/rs6000/e500crtsavg64gprctr.asm: New files.
4101         * config/rs6000/t-ppccomm: Add build rules for new files.
4102         (LIB2FUNCS_STATIC_EXTRA): Add new files.
4103         * config/rs6000/t-netbsd: Add build rules for new files.
4104         (LIB2FUNCS_STATIC_EXTRA): New variable.
4105         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
4106         (CRTSAVRES_DEFAULT_SPEC): Likewise.
4107         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
4108
4109 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
4110
4111         * config/i386/i386.c (ix86_builtin_type): Add
4112         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
4113         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
4114         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
4115         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
4116         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
4117         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4118         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4119         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4120         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4121         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4122         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4123         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4124         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4125         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4126         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4127         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4128         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4129         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4130         V1DI_FTYPE_V2SI_V2SI.
4131         (bdesc_2arg): Moved to ...
4132         (bdesc_args): Here.
4133         (ix86_init_mmx_sse_builtins): Updated.
4134         (ix86_expand_args_builtin): Updated.  Take a pointer
4135         to const struct builtin_description.  Handle comparison
4136         builtin functions.
4137         (ix86_expand_sse_compare): Take a new argument for swapping operands.
4138         (ix86_expand_builtin): Updated.
4139
4140         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4141         (ssse3_pmaddubsw128): This.
4142         (ssse3_pmaddubswv4hi3): Renamed to ...
4143         (ssse3_pmaddubsw): This.
4144
4145         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
4146         (__builtin_ia32_packssdw128): Likewise.
4147         (__builtin_ia32_packuswb128): Likewise.
4148         (__builtin_ia32_pmaddubsw): Likewise.
4149         (__builtin_ia32_pmaddubsw128): Likewise.
4150
4151 2008-04-30  Richard Guenther  <rguenther@suse.de>
4152
4153         PR tree-optimization/14847
4154         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4155         (recognize_bits_test): Use it.
4156         (recognize_single_bit_test): Likewise.
4157
4158 2008-04-30  Martin Jambor  <mjambor@suse.cz>
4159
4160         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4161         instead of setting number of formal parameters to zero.
4162         (ipcp_init_stage): Do not set the number of actual parameters to zero 
4163         either.
4164         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4165         which are called with variable number of arguments.
4166         (ipcp_insert_stage): Explicitely skipping all nodes which are
4167         called with variable number of arguments.
4168         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4169         number of parameters.
4170
4171         * ipa-prop.h (struct ipa_node_params): Added flag
4172         called_with_var_arguments
4173         (ipa_set_param_count): Added.  Changed sole setter to use it.
4174         (ipa_get_param_count): Added.  All readers of param_count
4175         converted to use it instead.
4176         (ipa_set_called_with_variable_arg): Added.
4177         (ipa_is_called_with_var_arguments): Added.
4178         (ipa_get_ith_param): Added.  All readers of param_decls converted
4179         to use it instead.
4180         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4181         changed to use it. 
4182         (ipa_get_cs_argument_count): Added, all readers of argument_count
4183         changed to cal it.
4184         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4185         to use it.
4186         
4187         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4188         (struct ipcp_lattice): Renamed cval_type to type
4189         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4190
4191         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4192         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4193         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4194         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4195         (build_const_val): Changed the type of parameter cvalue to tree
4196         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4197         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4198         
4199         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4200         constant 
4201
4202         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4203         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4204         (ipa_add_method): Renamed to ipa_push_func_to_list
4205         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4206         (ipa_callsite_param_count): Removed.
4207         (ipa_callsite_param_count_set): Removed.
4208         (ipa_callsite_param): Removed.
4209         (ipa_callsite_callee): Removed.
4210         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4211         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4212         (ipa_method_formal_count): Removed.
4213         (ipa_method_formal_count_set): Removed.
4214         (ipa_method_get_tree): Removed.
4215         (ipa_method_tree_map_create): Removed.
4216         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4217         (ipa_create_param_decls_array): Creates the array itself
4218         (ipa_create_param_decls_array): Temporary variable info instead of 
4219         a few dereferences.
4220         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4221         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4222         (get_type): Removed.
4223         (ipa_jf_get_info_type): Removed.
4224         (ipa_node_create): Renamed to ipa_create_node_params
4225         (ipa_free): Renamed to ipa_free_all_node_params
4226         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4227         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4228         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4229         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4230         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4231         ipa_free_all_edge_args
4232         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4233         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4234         (ipa_create_methodlist_node): Removed.
4235         (ipa_methodlist_method): Removed.
4236         (ipa_methodlist_method_set): Removed.
4237         (ipa_methodlist_next_method): Removed.
4238         (ipa_methodlist_next_method_set): Removed.
4239         (ipa_method_is_modified): Removed.
4240         (ipa_method_modify_create): Removed.
4241         (ipa_method_modify_init): Temporary variable info instead of a few 
4242         dereferences.
4243         (ipa_detect_param_modifications): Temporary variable info instead of 
4244         a few dereferences.
4245         (ipa_compute_jump_functions): Temporary variable info instead of 
4246         a few dereferences.
4247         (ipa_method_modify_set): Removed.
4248         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4249         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4250         than craph_node as the first parameter.
4251         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4252         (ipa_method_modify_init): Removed.
4253         (ipa_compute_jump_functions): Added a temp variable instead of 
4254         repeatadly dereferencing the cgraph_edge.aux pointer
4255         (ipa_callsite_param_set_type): Removed.
4256         (ipa_compute_jump_functions): i renamed to index and moved to 
4257         an inner block
4258         (ipa_callsite_param_set_info_type_formal): Removed.
4259         (ipa_callsite_param_set_info_type): Removed.
4260         (ipa_callsite_param_map_create): Removed.
4261         (ipa_callsite_tree): Removed.
4262         (ipa_callsite_caller): Removed.
4263         (ipa_pop_func_from_list): return_method removed to return_func
4264
4265         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4266         prefixed all values with IPA_. Changed all users.
4267         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4268         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4269         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4270         (union parameter_info): Renamed to jump_func_value.
4271         (union jump_func_value): Renamed value to constant
4272         (struct ipa_jump_func): Renamed info_type to value
4273         (struct ipa_node): Renamed to ipa_node_params
4274         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4275         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4276         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4277         (struct ipa_edge): Renamed to ipa_edge_args
4278         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4279         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4280         (struct ipa_methodlist): Renamed to ipa_func_list
4281         (struct ipa_func_list): method_p renamed to node, next_method
4282         renamed to next
4283         (ipa_methodlist_p): Removed, switched all users to struct pointer
4284         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4285
4286 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4287
4288         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4289         (rs6000_emit_epilogue): Use backchain to restore only when we
4290         have a large frame.  Make use of frame pointer to restore if we
4291         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4292
4293 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4294
4295         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4296         Add mode to zero_extract.
4297         (sign bit tests peepholes): (Ditto.).
4298
4299 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4300
4301         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4302         Instructions in comments with SSE3.
4303         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4304         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4305         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4306         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4307         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4308         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4309         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4310         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4311         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4312         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4313         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4314         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4315         (bdesc_sse_args): Renamed to ...
4316         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4317         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4318         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4319         IX86_BUILTIN_FABSQ.
4320         (bdesc_1arg): Moved to ...
4321         (bdesc_args): Here.
4322         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4323         Instructions in comments with SSE3.
4324         (ix86_expand_sse_operands_builtin): Renamed to ...
4325         (ix86_expand_args_builtin): This.  Updated.
4326         (ix86_expand_unop1_builtin): Update comments.
4327         (ix86_expand_builtin): Updated.
4328
4329 2008-04-29  Richard Guenther  <rguenther@suse.de>
4330
4331         PR tree-optimization/36078
4332         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4333         Update virtual SSA form after cleaning up the CFG.
4334
4335 2008-04-29  Richard Guenther  <rguenther@suse.de>
4336
4337         PR middle-end/15255
4338         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4339
4340 2008-04-29  Richard Guenther  <rguenther@suse.de>
4341
4342         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4343         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4344         (compute_flow_insensitive_aliasing): Do not treat
4345         PTR_IS_REF_ALL pointers special.
4346         (get_smt_for): Likewise.
4347         (may_alias_p): Re-structure.
4348         (is_escape_site): A ref-all pointer conversion is not an escape site.
4349         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4350         PTR_IS_REF_ALL pointers special.
4351         * tree-ssa-structalias.h (struct alias_info): Remove
4352         ref_all_symbol_mem_tag field.
4353         (PTR_IS_REF_ALL): Remove.
4354
4355 2008-04-29  Richard Guenther  <rguenther@suse.de>
4356
4357         PR middle-end/36077
4358         * fold-const.c (extract_muldiv_1): In combining division constants
4359         make sure to never overflow.
4360
4361 2008-04-29  Nick Clifton  <nickc@redhat.com>
4362
4363         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4364
4365 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4366
4367         PR bootstrap/35169
4368         * optc-gen.awk: Work around HP-UX/IA awk bug.
4369
4370 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4371
4372         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4373         2008-04-25 commit.
4374
4375 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4376
4377         PR target/36073
4378         * config/i386/i386.md
4379         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4380         Change operand 1 predicate to nonimmediate_operand.
4381
4382 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4383
4384         PR debug/36060
4385         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4386         die_sub field.
4387         * gengtype.c (walk_type, write_func_for_structure): Handle
4388         chain_circular.
4389         * doc/gty.texi: Document chain_circular.
4390
4391 2008-04-28  Richard Guenther  <rguenther@suse.de>
4392
4393         PR tree-optimization/36066
4394         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4395         SCEV and loop.
4396
4397 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4398
4399         PR target/36064
4400         * config/i386/i386.md
4401         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4402         Use match_scratch instead of match_operand for operands 3 and 4.
4403
4404 2008-04-27  Richard Guenther  <rguenther@suse.de>
4405
4406         PR tree-optimization/18754
4407         PR tree-optimization/34223
4408         * tree-pass.h (pass_complete_unrolli): Declare.
4409         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4410         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4411         Rewrite loop into loop closed SSA form if it is not already.
4412         (tree_unroll_loops_completely): Re-structure to iterate over
4413         innermost loops with intermediate CFG cleanups.
4414         Unroll outermost loops only if requested or the code does not grow
4415         doing so.
4416         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4417         loops are available.
4418         (tree_vectorize): Instead do so here.
4419         (tree_complete_unroll): Also unroll outermost loops.
4420         (tree_complete_unroll_inner): New function.
4421         (gate_tree_complete_unroll_inner): Likewise.
4422         (pass_complete_unrolli): New pass.
4423         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4424         uses outside of the loop.
4425         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4426         form if it is available.  
4427         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4428         * passes.c (init_optimization_passes): Schedule complete inner
4429         loop unrolling pass before the first CCP pass after final inlining.
4430
4431 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4432
4433         * targhooks.h (default_emutls_var_fields,
4434         default_emutls_var_init): Declare.
4435         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4436         * target.h (struct gcc_target): Add struct emutls member.
4437         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4438         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4439         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4440         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4441         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4442         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4443         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4444         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4445         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4446         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4447         emit debug information.
4448         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4449         * varasm.c: Include targhooks.h.
4450         (emutls_object_section, emutls_tmpl_section): New.
4451         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4452         (EMUTLS_SEPARATOR): New.
4453         (prefix_name): New.
4454         (get_emutls_object_name): New.
4455         (default_emutls_var_fields): New, broken out of ...
4456         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4457         (get_emutls_init_templ_addr): Adjust to use target hooks.
4458         (emutls_decl): Adjust to use target hooks.
4459         (emutls_finish): Likewise.
4460         (default_emutls_var_init): New, broken out of ...
4461         (assemble_variable): ... here.  Adjust to use target hooks.
4462         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4463         SECCAT_EMUTLS_TMPL.
4464         * c-common.c (handle_section_attribute): Prevent overriding
4465         sections for emulated tls with special sections.
4466         * config/i386/i386.c (x86_64_elf_select_section): Add
4467         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4468         (x86_64_elf_unique_section): Likewise.
4469         * config/vxworks.c: Include tree.h.
4470         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4471         (vxworks_override_options): Set TLS scheme.
4472         * doc/tm.texi (Emulated TLS): New node.
4473
4474 2008-04-26  Simon Baldwin <simonb@google.com>
4475
4476         PR c/35652
4477         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4478         with propagated string constants.
4479
4480 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4481
4482         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4483         constraint for operand 2 when operand 0 is memory operand.
4484         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4485         operand 0 is memory operand.
4486         (fix_trunc<mode>_i387_with_temp): Ditto.
4487         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4488         operand 2 when operand 1 is memory operand.
4489         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4490         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4491         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4492         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4493         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4494         operands 2,3 and 4 when operand 1 is memory operand.
4495         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4496         is memory operand.
4497         (fistdi2_floor_with_temp): Ditto.
4498         (fist<mode>2_floor_with_temp): Ditto.
4499         (fistdi2_ceil_with_temp): Ditto.
4500         (fist<mode>2_ceil_with_temp): Ditto.
4501         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4502
4503 2008-04-26  David Daney  <ddaney@avtrex.com>
4504
4505         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4506         unspec_volitile.
4507         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4508         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4509         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4510         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4511         (compare_and_swap_12): New insn.
4512         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4513         * config/mips/mips.c (mips_force_binary): New function.
4514         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4515         (mips_expand_compare_and_swap_12): New function.
4516         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4517
4518 2008-04-25  Jan Hubicka  <jh@suse.cz>
4519
4520         PR testsuite/35843
4521         * cfgexpand.c (pass_expand): Turn into RTL pass.
4522         * passes.c (execute_one_pass): Do pass typechecking after execution.
4523         * tree-pass.h (pass_expand): Turn into RTL pass.
4524
4525         * function.h (struct rtl_data): Move here fields
4526         accesses_prior_frames, calls_eh_return, saves_all_registers,
4527         has_nonlocal_goto, has_asm_statement, is_thunk,
4528         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4529         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4530         arg_pointer_save_area_init from struct function; turn into bool.
4531         (struct function): Move
4532         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4533         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4534         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4535         tail_call_emit, arg_pointer_save_area_init
4536         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4537         (current_function_returns_struct, current_function_returns_pcc_struct,
4538         current_function_calls_setjmp, current_function_calls_alloca,
4539         current_function_accesses_prior_frames,
4540         current_function_calls_eh_return, current_function_is_thunk,
4541         current_function_stdarg, current_function_profile,
4542         current_function_limit_stack, current_function_uses_pic_offset_table,
4543         current_function_uses_const_pool, current_function_has_nonlocal_label,
4544         current_function_saves_all_registers,
4545         current_function_has_nonlocal_goto,
4546         current_function_has_asm_statement): Remove accesor macros.
4547         * ra-conflict.c (global_conflicts): Update.
4548         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4549         (suitable_for_tail_call_opt_p): Update.
4550         * builtins.c (expand_builtin_return_addr): Update.
4551         (expand_builtin_setjmp_setup): Update.
4552         (expand_builtin_nonlocal_goto): Update.
4553         * final.c (final_start_function): Update.
4554         (profile_function): Update.
4555         (leaf_function_p): Update.
4556         (only_leaf_regs_used): Update.
4557         * df-scan.c (df_get_exit_block_use_set): Update.
4558         * dojump.c (clear_pending_stack_adjust): Update.
4559         * tree-stdarg.c (gate_optimize_stdarg): Update.
4560         * gimple-low.c (lower_function_body): Update.
4561         * global.c (compute_regsets): Update.
4562         (global_alloc): Update.
4563         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4564         * expr.c (expand_assignment): Update.
4565         * dse.c (dse_step0): Update.
4566         (dse_step1): Update.
4567         * c-decl.c (store_parm_decls): Update.
4568         * local-alloc.c (combine_regs): Update.
4569         (find_free_reg): Update.
4570         * function.c (assign_parms_augmented_arg_list): Update.
4571         (assign_parm_find_data_types): Update.
4572         (assign_parms): Update.
4573         (allocate_struct_function): Update.
4574         (expand_function_start): Update.
4575         (expand_function_end): Update.
4576         (get_arg_pointer_save_area): Update.
4577         (thread_prologue_and_epilogue_insns): Update.
4578         (rest_of_match_asm_constraints): Update.
4579         * stor-layout.c (variable_size): Update.
4580         * gcse.c (gcse_main): Update.
4581         (bypass_jumps): Update.
4582         * gimplify.c (gimplify_function_tree): Update.
4583         * calls.c (emit_call_1): Update.
4584         (expand_call): Update.
4585         * bt-load.c (compute_defs_uses_and_gen): Update.
4586         * except.c (sjlj_assign_call_site_values): Update.
4587         (sjlj_emit_function_enter): Update.
4588         (can_throw_external): Update.
4589         (set_nothrow_function_flags): Update.
4590         (expand_builtin_unwind_init): Update.
4591         (expand_eh_return): Update.
4592         (convert_to_eh_region_ranges): Update.
4593         (output_function_exception_table): Update.
4594         * emit-rtl.c (gen_tmp_stack_mem): Update.
4595         * cfgexpand.c (expand_used_vars): Update.
4596         (tree_expand_cfg): Update.
4597         * cfgcleanup.c (rest_of_handle_jump): Update.
4598         * explow.c (allocate_dynamic_stack_space): Update.
4599         * varasm.c (assemble_start_function): Update.
4600         (force_const_mem): Update.
4601         (mark_constant_pool): Update.
4602         * tree-optimize.c (tree_rest_of_compilation): Update.
4603         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4604         * tree-cfg.c (notice_special_calls): Update.
4605         (is_ctrl_altering_stmt): Update.
4606         (tree_can_make_abnormal_goto): Update.
4607         (tree_purge_dead_abnormal_call_edges): Update.
4608         * config/alpha/predicates.md: Update.
4609         * config/alpha/alpha.c (alpha_sa_mask): Update.
4610         (alpha_sa_size): Update.
4611         (alpha_does_function_need_gp): Update.
4612         (alpha_expand_prologue): Update.
4613         (alpha_start_function): Update.
4614         (alpha_output_function_end_prologue): Update.
4615         (alpha_expand_epilogue): Update.
4616         * config/frv/frv.c (frv_stack_info): Update.
4617         (frv_expand_epilogue): Update.
4618         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4619         (s390_register_info): Update.
4620         (s390_frame_info): Update.
4621         (s390_init_frame_layout): Update.
4622         (s390_can_eliminate): Update.
4623         (save_gprs): Update.
4624         * config/spu/spu.c (spu_split_immediate): Update.
4625         (need_to_save_reg): Update.
4626         (spu_expand_prologue): Update.
4627         (spu_expand_epilogue): Update.
4628         * config/sparc/sparc.md: Update.
4629         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4630         (sparc_tls_got): Update.
4631         (legitimize_pic_address): Update.
4632         (sparc_emit_call_insn): Update.
4633         (sparc_expand_prologue): Update.
4634         (output_return): Update.
4635         (print_operand): Update.
4636         (sparc_function_ok_for_sibcall): Update.
4637         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4638         * config/m32r/m32r.md: Update.
4639         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4640         (m32r_compute_frame_size): Update.
4641         (m32r_expand_prologue): Update.
4642         (m32r_expand_epilogue): Update.
4643         (m32r_legitimize_pic_address): Update.
4644         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4645         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4646         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4647         (gen_push): Update.
4648         (ix86_save_reg): Update.
4649         (ix86_compute_frame_layout): Update.
4650         (ix86_expand_prologue): Update.
4651         (ix86_expand_epilogue): Update.
4652         * config/sh/sh.c (output_stack_adjust): Update.
4653         (calc_live_regs): Update.
4654         (sh5_schedule_saves): Update.
4655         (sh_expand_prologue): Update.
4656         (sh_expand_epilogue): Update.
4657         (sh_setup_incoming_varargs): Update.
4658         (sh_allocate_initial_value): Update.
4659         (sh_get_pr_initial_val): Update.
4660         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4661         * config/sh/sh.md (label:): Update.
4662         * config/avr/avr.c (out_movhi_mr_r): Update.
4663         * config/crx/crx.h (enum): Update.
4664         * config/xtensa/xtensa.h (along): Update.
4665         * config/stormy16/stormy16.c Update.
4666         (xstormy16_compute_stack_layout): Update.
4667         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4668         (fr30_expand_prologue): Update.
4669         * config/cris/cris.c (cris_conditional_register_usage): Update.
4670         (cris_reg_saved_in_regsave_area): Update.
4671         (cris_initial_frame_pointer_offset): Update.
4672         (cris_simple_epilogue): Update.
4673         (cris_expand_prologue): Update.
4674         (cris_expand_epilogue): Update.
4675         (cris_expand_pic_call_address): Update.
4676         (cris_asm_output_symbol_ref): Update.
4677         (cris_asm_output_label_ref): Update.
4678         * config/cris/cris.md Update.
4679         * config/iq2000/iq2000.c (compute_frame_size): Update.
4680         (iq2000_expand_epilogue): Update.
4681         * config/mt/mt.h (save_direction): Update.
4682         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4683         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4684         (ia64_secondary_reload_class): Update.
4685         * config/m68k/m68k.c (m68k_save_reg): Update.
4686         (m68k_expand_prologue): Update.
4687         (m68k_expand_epilogue): Update.
4688         (legitimize_pic_address): Update.
4689         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4690         (first_reg_to_save): Update.
4691         (first_altivec_reg_to_save): Update.
4692         (compute_vrsave_mask): Update.
4693         (compute_save_world_info): Update.
4694         (rs6000_stack_info): Update.
4695         (spe_func_has_64bit_regs_p): Update.
4696         (rs6000_ra_ever_killed): Update.
4697         (rs6000_emit_eh_reg_restore): Update.
4698         (rs6000_emit_allocate_stack): Update.
4699         (rs6000_emit_prologue): Update.
4700         (rs6000_emit_epilogue): Update.
4701         (rs6000_output_function_epilogue): Update.
4702         (output_profile_hook): Update.
4703         (rs6000_elf_declare_function_name): Update.
4704         * config/rs6000/rs6000.h (rs6000_args): Update.
4705         * config/rs6000/rs6000.md: Update.
4706         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4707         * config/arc/arc.c (arc_output_function_epilogue): Update.
4708         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4709         * config/darwin.c (machopic_function_base_name): Update.
4710         * config/score/score3.c (score3_compute_frame_size): Update.
4711         (rpush): Update.
4712         (rpop): Update.
4713         (score3_epilogue): Update.
4714         * config/score/score7.c (score7_compute_frame_size): Update.
4715         (score7_prologue): Update.
4716         (score7_epilogue): Update.
4717         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4718         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4719         * config/arm/arm.c (use_return_insn): Update.
4720         (require_pic_register): Update.
4721         (arm_load_pic_register): Update.
4722         (arm_compute_save_reg0_reg12_mask): Update.
4723         (arm_compute_save_reg_mask): Update.
4724         (thumb1_compute_save_reg_mask): Update.
4725         (output_return_instruction): Update.
4726         (arm_output_function_prologue): Update.
4727         (arm_output_epilogue): Update.
4728         (arm_get_frame_offsets): Update.
4729         (arm_expand_prologue): Update.
4730         (thumb_pushpop): Update.
4731         (thumb_exit): Update.
4732         (thumb1_expand_prologue): Update.
4733         (thumb1_expand_epilogue): Update.
4734         (arm_unwind_emit): Update.
4735         (arm_output_fn_unwind): Update.
4736         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4737         * config/arm/arm.md: Update.
4738         * config/pa/pa.md: Update.
4739         * config/pa/pa.c (legitimize_pic_address): Update.
4740         (compute_frame_size): Update.
4741         (hppa_expand_prologue): Update.
4742         (hppa_expand_epilogue): Update.
4743         (borx_reg_operand): Update.
4744         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4745         (HARD_REGNO_RENAME_OK): Update.
4746         * config/mips/mips.c (mips_global_pointer): Update.
4747         (mips_save_reg_p): Update.
4748         (mips_compute_frame_info): Update.
4749         (mips_frame_pointer_required): Update.
4750         (mips_expand_prologue): Update.
4751         (mips_expand_epilogue): Update.
4752         (mips_can_use_return_insn): Update.
4753         (mips_reorg_process_insns): Update.
4754         * config/v850/v850.c (compute_register_save_size): Update.
4755         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4756         * config/mmix/mmix.c (along): Update.
4757         (mmix_expand_epilogue): Update.
4758         * config/bfin/bfin.c (legitimize_pic_address): Update.
4759         (must_save_p): Update.
4760         (stack_frame_needed_p): Update.
4761         (add_to_reg): Update.
4762         (bfin_expand_prologue): Update.
4763         * stmt.c (expand_asm_operands): Update.
4764         * reload1.c (reload): Update.
4765         (init_elim_table): Update.
4766
4767 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4768         
4769         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4770         
4771 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4772
4773         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4774         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4775         (mov<mode>): Removed.
4776         (*movv4sf_internal): Likewise.
4777         (*movv2df_internal): Likewise.
4778
4779 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4780
4781         * config.gcc (crx-*-elf): Remove deprecation.
4782
4783 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4784
4785         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4786         __gcc_deregister_frame with atexit.
4787         (deregister_frame_dtor): Remove.
4788
4789 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4790             Nathan Sidwell  <nathan@codesourcery.com>
4791
4792         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4793         (misel): Likewise.
4794         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4795         (rs6000_isel): Likewise.
4796         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4797         (rs6000_isel): New variable.
4798         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4799
4800 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4801
4802         PR c++/35758
4803         * c-common.c (handle_vector_size_attribute): Call
4804         lang_hooks.types.reconstruct_complex_type instead of
4805         reconstruct_complex_type.
4806         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4807         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4808         * langhooks.h (struct lang_hooks_for_types): Add
4809         reconstruct_complex_type hook.
4810         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4811         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4812
4813 2008-04-24  Richard Guenther  <rguenther@suse.de>
4814
4815         * c-common.h (check_builtin_function_arguments): Declare.
4816         * c-common.c (validate_nargs): New function.
4817         (check_builtin_function_arguments): Likewise.
4818         * c-typeck.c (build_function_call): Call
4819         check_builtin_function_arguments.
4820         * builtins.c (fold_builtin_classify): Remove error reporting code.
4821         (fold_builtin_unordered_cmp): Likewise.
4822         (fold_builtin_1): Likewise.
4823         (fold_builtin_n): Likewise.
4824
4825 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4826
4827         PR tree-optimization/36008
4828         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4829         the original op1, rather than delta by step.
4830
4831 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4832             Sebastian Pop  <sebastian.pop@amd.com>
4833
4834         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4835         eliminate_local_variables_stmt, eliminate_local_variables,
4836         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4837         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4838         of code delimited by two edges in the CFG.
4839         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4840         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4841         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4842         the case of parallelisation of reductions.
4843         (expr_invariant_in_region_p): New.
4844
4845         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4846         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4847
4848 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4849             Richard Guenther  <rguenther@suse.de>
4850
4851         PR tree-optimization/36034
4852         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4853         incapable of dealing with loads with gaps.
4854
4855 2008-04-24  Rafael Espindola  <espindola@google.com>
4856
4857         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4858         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4859         vrp_evaluate_conditional.
4860         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4861         (vrp_evaluate_conditional): Split the cond argument.
4862         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4863         (simplify_stmt_for_jump_threading): Update call to
4864         vrp_evaluate_conditional.
4865
4866 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4867
4868         PR tree-optimization/35982
4869         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4870         interleaved data-refs are of the same type.
4871
4872 2008-04-24  Danny Smith  <dannysmith@users.net>
4873
4874         * c-format.c (check_format_info_main): Use strncmp rather than a
4875         magic prefix to handle multichar length specs.
4876         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4877         Don't prefix "I64" and "I32" with '\0'.
4878
4879 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4880
4881         PR target/36015
4882         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4883         in registers for -m32 only if stdarg_p (fntype).
4884
4885 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4886
4887         PR rtl-optimization/36006
4888         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4889         temp to op0 in order to avoid invalid rtx sharing.
4890
4891 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4892
4893         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4894         check TREE_INVARIANT.
4895         * tree-gimple.c (is_gimple_address): New.
4896         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4897         * tree-gimple.h (is_gimple_address): New.
4898         * tree.h (decl_address_invariant_p): New.
4899         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4900         (build_string): Likewise.
4901         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4902         (tree_invariant_p_1): Likewise.
4903         (save_expr): Use it.
4904         (tree_invariant_p): New.
4905         (skip_simple_arithmetic): Use it.
4906         (stabilize_reference_1): Use it.
4907         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4908         simplify.
4909         (build1_stat): Drop code to compute TREE_INVARIANT.
4910         (build2_stat): Drop code to compute TREE_INVARIANT.
4911         (build3_stat): Drop code to compute TREE_INVARIANT.
4912         (build4_stat): Drop code to compute TREE_INVARIANT.
4913         (build5_stat): Drop code to compute TREE_INVARIANT.
4914         (build7_stat): Drop code to compute TREE_INVARIANT.
4915         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4916         * tree.h (struct tree_base): Remove invariant_flag.
4917         (TREE_INVARIANT): Remove.
4918         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4919         (fold_builtin_expect): Check TREE_CONSTANT.
4920         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4921         * c-tree.h (c_expr_to_decl): Drop third parameter.
4922         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4923         (build_c_cast): Don't set TREE_INVARIANT.
4924         (pop_init_level): Don't set TREE_INVARIANT.
4925         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4926         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4927         TREE_CONSTANT.
4928         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4929         (gimplify_addr_expr): Adjust comment.
4930         * tree-mudflap.c (mf_build_string):
4931         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4932         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4933         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4934         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4935         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4936         * langhooks.h (struct lang_hooks): Drop third parameter from
4937         expr_to_decl.
4938
4939 2008-04-23  Richard Guenther  <rguenther@suse.de>
4940
4941         PR tree-optimization/27799
4942         PR tree-optimization/32921
4943         PR tree-optimization/32624
4944         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4945         SMTs aliases and the tag itself into the solution.
4946         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4947         merge the points-to solution back into the SMT aliases.
4948         (may_alias_p): Use alias_set_subset_of instead of
4949         aliases_conflict_p.  A pointer which points to
4950         memory with alias set zero may access any variable.
4951
4952 2008-04-23  Richard Guenther  <rguenther@suse.de>
4953
4954         * alias.c (alias_set_subset_of): Correctly handle asking
4955         if zero is a subset of an alias set with zero child.
4956         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4957         (compute_flow_insensitive_aliasing): Correctly walk all
4958         pointers.  Do not unnecessarily union sets.
4959
4960 2008-04-23  Richard Guenther  <rguenther@suse.de>
4961
4962         PR middle-end/36021
4963         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4964
4965 2008-04-22  Tomas Bily  <tbily@suse.cz>
4966
4967         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4968         unreachable case.
4969         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4970         NON_LVALUE_EXPR.
4971         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4972         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4973         * tree-inline.c (estimate_num_insns_1): Likewise.
4974         * varasm.c (const_hash_1, compare_constant, copy_constant)
4975         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4976         * emit-rtl.c (component_ref_for_mem_expr)
4977         (set_mem_attributes_minus_bitpos): Likewise.
4978         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4979         (is_aligning_offset): Likewise.
4980         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4981         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4982         * dojump.c (do_jump): Likewise.
4983         * builtins.c (get_pointer_alignment, get_memory_rtx)
4984         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4985         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4986
4987 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4988
4989         PR rtl-optimization/36017
4990         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4991         expanding the library call.
4992
4993 2008-04-22  Ian Lance Taylor  <iant@google.com>
4994
4995         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4996         than size_in_bytes.
4997
4998 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4999
5000         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
5001         of LR/CTR moves for Power6.
5002
5003 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
5004
5005         PR middle-end/36003
5006         * passes.c (init_optimization_passes): Remove
5007         pass_fast_rtl_byte_dce.
5008         
5009 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
5010
5011         PR target/29096
5012         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
5013         builtin functions to generate faster code.
5014         (_mm_cvtpu16_ps): Ditto.
5015         (_mm_cvtpi32x2_ps): Ditto.
5016
5017 2008-04-22  Nick Clifton  <nickc@redhat.com>
5018
5019         * common.opt (ftree-loop-distribution): Add Optimization
5020         attribute.
5021
5022         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
5023         (frv_expand_builtin_va_start): Likewise.
5024
5025         * config/arm/arm.c (thumb_find_work_register): Fix location of
5026         argument register count.
5027
5028 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5029
5030         Support scheduling for ColdFire V1 and V3 microarchitecture.
5031         Improve scheduling of multiplication instructions.
5032
5033         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
5034         (mac): New instruction attribute.
5035         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
5036         (m68k_sched_mac): New variable.
5037         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
5038         Handle cfv1 and cfv3.
5039         (max_insn_size): New static variable.
5040         (struct _sched_ib): New type.
5041         (sched_ib): New static variable.
5042         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
5043         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
5044         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
5045         Update.
5046         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
5047         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
5048         new variables.  Update.
5049         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5050         Add modeling of cfv3 instruction buffer.  Update.
5051         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
5052         * config/m68k/m68k.h (TUNE_CFV3): New macro.
5053         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
5054         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
5055         a particular reservation applies to.
5056         (type2): Reorganize attribute values.  Rename alu to alu_reg,
5057         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
5058         to mul_l and mul_w.
5059         (cf_ib_*): Simplify description of instruction buffer.
5060         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
5061         (cf_mem): Split into cf_mem1 and cf_mem2.
5062         (cf_v2_move_??): Rename to cfv12_alu_??.
5063         (cf_v2_move_l_??): Rename to cfv12_omove_??.
5064         (cf_v2_mul_??): Remove reservations.
5065         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
5066         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
5067         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
5068         appropriate place.
5069         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
5070         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
5071         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
5072         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
5073         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
5074         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
5075         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
5076         expansions of the above reservations for instructions of sizes
5077         1, 2 and 3 words.
5078
5079 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5080
5081         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
5082
5083 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
5084
5085         * coverage.c: Include tree-pass.h.
5086         (coverage_counter_alloc): Print da_file_name to the dump file.
5087
5088 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
5089
5090         * sbitmap.c (sbitmap_range_empty_p): New function.
5091         * sbitmap.h (sbitmap_range_empty_p): New function.
5092         * bitmap.h: Now includes obstack.h.
5093
5094 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
5095             Kenneth Zadeck  <zadeck@naturalbridge.com>
5096
5097         * dbgcnt.def (ra_byte_scan): Added.
5098         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
5099         when the last hit happens for a counter.  
5100         * timevar.def (TV_DF_BYTE_LR): New variable.
5101         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
5102         * passes.c (pass_fast_rtl_byte_dce): New pass.
5103         * fwprop.c (update_df): Added mode to call df_ref_create.
5104         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5105         DF_REF_EXTRACT_OFFSET.
5106         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
5107         DF_BYTE_LR_OUT, df_byte_lr): New macro.
5108         (df_mm): New enum.
5109         (df_ref_extract): Added mode field.
5110         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
5111         DF_REF_EXTRACT_OFFSET.
5112         (DF_REF_EXTRACT_MODE): New macro.
5113         (df_byte_lr_bb_info): New structure.
5114         (df_print_byte_regset, df_compute_accessed_bytes, 
5115         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
5116         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
5117         df_byte_lr_simulate_uses,
5118         df_byte_lr_simulate_artificial_refs_at_top,
5119         df_byte_lr_simulate_artificial_refs_at_end,
5120         df_compute_accessed_bytes): New function.
5121         (df_ref_create): Add parameter.
5122         (df_byte_lr_get_bb_info): New inline function.
5123         * df-scan.c (df_ref_record, df_uses_record,
5124         df_ref_create_structure): Added mode parameter.
5125         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
5126         df_defs_record, df_uses_record, df_get_conditional_uses,
5127         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
5128         df_entry_block_defs_collect, df_exit_block_uses_collect):
5129         Added mode parameter to calls to df_ref_record, df_uses_record,
5130         df_ref_create_structure.
5131         (df_ref_equal_p, df_ref_compare): Added test for modes.
5132         (df_ref_create_structure): Added code to set mode.  Renamed
5133         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5134         DF_REF_EXTRACT_OFFSET.
5135         * df-core.c (df_print_byte_regset): New function.
5136         * df-byte-scan.c: New file.
5137         * df-problems.c (df_rd_transfer_function): Removed unnecessary
5138         calls to BITMAP_FREE.  
5139         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5140         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5141         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
5142         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
5143         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5144         df_byte_lr_local_compute, df_byte_lr_init,
5145         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
5146         df_byte_lr_transfer_function, df_byte_lr_free, 
5147         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5148         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
5149         df_byte_lr_simulate_uses,
5150         df_byte_lr_simulate_artificial_refs_at_top,
5151         df_byte_lr_simulate_artificial_refs_at_end): New function.
5152         * dce.c (byte_dce_process_block): New function.
5153         (dce_process_block): au is now passed in rather than computed
5154         locally.  Changed loops that look at artificial defs to not look
5155         for conditional or partial ones, because there never are any.  
5156         (fast_dce): Now is able to drive byte_dce_process_block or 
5157         dce_process_block depending on the kind of dce being done.
5158         (rest_of_handle_fast_dce): Add parameter to fast_dce.
5159         (rest_of_handle_fast_byte_dce): New function.
5160         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5161         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5162
5163 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5164
5165         PR fortran/35019
5166         * gcc.h: Added fortran options that take arguments to
5167         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5168         macros.
5169
5170 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5171
5172         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5173         scalarization if on the LHS and not a full access.
5174
5175 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5176
5177         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5178
5179 2008-04-18  Rafael Espindola  <espindola@google.com>
5180
5181         * tree-vrp.c (find_case_label_index): Fix the binary search.
5182         (find_case_label_range): New.
5183         (vrp_visit_switch_stmt): Use find_case_label_range.
5184         (simplify_switch_using_ranges): Use find_case_label_range.
5185
5186 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5187
5188         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5189         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5190
5191 2008-04-18  Tom Tromey  <tromey@redhat.com>
5192
5193         PR libcpp/15500:
5194         * doc/cpp.texi (Implementation-defined behavior): Mention
5195         -finput-charset.
5196
5197 2008-04-18  Ian Lance Taylor  <iant@google.com>
5198
5199         * fold-const.c (pointer_may_wrap_p): New static function.
5200         (fold_comparison): Add another test for pointer overflow.  Use
5201         pointer_may_wrap_p to disable some false positives.
5202
5203 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5204           
5205         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5206         (fname_as_string): Match updated cpp_interpret_string prototype.
5207         (fix_string_type): Support char16_t* and char32_t*.
5208         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5209         derivative) nodes.  Register as builtin if C++0x.
5210         (c_parse_error): Support CPP_CHAR{16,32}.
5211         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5212         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5213         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5214         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5215         CTI_CHAR32_ARRAY_TYPE>: New elements.
5216         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5217         char32_type_node, signed_char32_type_node, char16_array_type_node,
5218         char32_array_type_node): New defines.
5219         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5220         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5221         (lex_string): Support CPP_STRING{16,32}, match updated
5222         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5223         (lex_charconst): Support CPP_CHAR{16,32}.
5224         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5225         and CPP_STRING{16,32}.
5226
5227 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5228
5229         PR bootstrap/35457
5230         * aclocal.m4: Regenerate.
5231         * configure: Regenerate.
5232
5233 2008-04-18  Jan Hubicka  <jh@suse.cz>
5234
5235         * except.c (dw2_size_of_call_site_table,
5236         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5237
5238         * cgraphbuild.c (build_cgraph_edges): Update.
5239         * tree-pass.h: Update comment.
5240         * final.c (leaf_function_p): Update.
5241         (leaf_renumber_regs): Update.
5242         (rest_of_clean_state): Update.
5243         * omp-low.c (expand_omp_parallel): Update.
5244         * ipa-reference.c (analyze_function): Update.
5245         * reorg.c (find_end_label): Update.
5246         (optimize_skip): Update.
5247         (fill_simple_delay_slots): Update.
5248         (fill_simple_delay_slots): Update.
5249         (make_return_insns): Update.
5250         (dbr_schedule): Update.
5251         * gimple-low.c (record_vars_into): Update.
5252         * cfgbuild.c (make_edges): Update.
5253         * function.c (assign_stack_local): Update.
5254         (assign_parm_adjust_stack_rtl): Update.
5255         (locate_and_pad_parm): Update.
5256         (allocate_struct_function): Do not initialize stack_alignment_needed
5257         and preferred_stack_boundary here.
5258         (stack_protect_prologue): Update.
5259         (stack_protect_epilogue): Update.
5260         (expand_function_start): Initialize stack_alignment_needed,
5261         preferred_stack_boundary and max_jumptable_ents.
5262         (expand_function_end): Update.
5263         (free_after_compilation): Do not NULLify epilogue_delay_list.
5264         * function.h (struct rtl_data): Add stack_protect_guard,
5265         stack_alignment_needed,
5266         preferred_stack_boundary, epilogue_delay_list.
5267         (struct function): Remove value_histograms, stack_alignment_needed,
5268         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5269         last_label_uid,
5270         unexpanded_var_list, stack_protect_guard.
5271         (current_function_epilogue_delay_list): Remove.
5272         * ipa-type-escape.c (analyze_function): Update.
5273         * gimplify.c (pop_gimplify_context): Update comment.
5274         * calls.c (expand_call): Update.
5275         (emit_library_call_value_1): Update.
5276         * except.c (set_nothrow_function_flags): Update.
5277         * cfgexpand.c (get_decl_align_unit): Update.
5278         (create_stack_guard): Update.
5279         (estimated_stack_frame_size): Update.
5280         (expand_used_vars): Update.
5281         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5282         * explow.c (allocate_dynamic_stack_space): Update.
5283         * tree-ssa-live.c (remove_unused_locals): Update.
5284         * varasm.c (mark_constant_pool): Update.
5285         * tree-inline.c (remap_decls): Update.
5286         (initialize_cfun): Update.
5287         (declare_return_variable): Update.
5288         (inline_forbidden_p): Update.
5289         (expand_call_inline): Update.
5290         (declare_inline_vars): Update.
5291         (tree_function_versioning): Update.
5292         * tree-flow.h (value_histograms): New.
5293         (VALUE_HISTOGRAMS): New macro.
5294         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5295         last_label_uid.
5296         * tree-cfg.c (set_bb_for_stmt): Update.
5297         (replace_by_duplicate_decl): Update.
5298         (move_block_to_fn): Update.
5299         (new_label_mapper): Update.
5300         (dump_function_to_file): Update.
5301         * ipa-struct-reorg.c (build_data_structure): Update.
5302         * cfgrtl.c (print_rtl_with_bb): Update.
5303         * reload1.c (reload): Update.
5304         (reload): Update.
5305         * config/i386/i386.c (setup_incoming_varargs_64,
5306         ix86_compute_frame_layout): Update.
5307         * config/arc/arc.c (arc_output_function_epilogue): Update.
5308
5309 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5310
5311         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5312         for FreeBSD as well.
5313         * gthr-posix95.h: Likewise.
5314
5315 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5316
5317         PR rtl-optimization/35838
5318         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5319         out the byte offset of the first subreg.
5320
5321 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5322
5323         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5324         to split_ti instead of three separate calls with single member arrays.
5325         (subti3 splitter): Ditto.
5326         (adddi3 splitter): Ditto with split_di.
5327         (subdi3 splitter): Ditto.
5328         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5329         two separate calls with single member arrays.  Swap match_dup
5330         operands 1 and 2 to better fit into the array.
5331         (negdi2 splitter): Ditto with split_di.
5332         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5333         two separate calls with single member arrays.  Swap match_dup operands
5334         6 and 7 to better fit into the array.
5335
5336 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5337
5338         * config/i386/i386.c (sse_builtin_type): New.
5339         (bdesc_sse_args): Likewise.
5340         (bdesc_sse_3arg): Removed.
5341         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5342         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5343         IX86_BUILTIN_ROUNDPS.
5344         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5345         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5346         IX86_BUILTIN_ROUNDPS.
5347         (ix86_expand_sse_4_operands_builtin): Removed.
5348         (ix86_expand_sse_operands_builtin): New.
5349         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5350         and CODE_FOR_sse4_1_roundps.
5351         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5352         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5353
5354 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5355
5356         PR target/35907
5357         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5358         regs before frame pop when needed.  If use_backchain_to_restore_sp
5359         then load backchain into a temp reg to restore vr and vrsave.  Add
5360         code to restore vr after frame pop if possible.
5361
5362 2008-04-17  Richard Guenther  <rguenther@suse.de>
5363
5364         * tree-vn.c (expressions_equal_p): Do not check type
5365         equality or compatibility before calling operand_equal_p.
5366         * fold-const.c (operand_equal_p): Check equivalence of
5367         integer constants before bailing out due to signedness or
5368         precision differences.
5369         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5370         spurious differences in type qualification.  Ignore types
5371         for COMPONENT_REFs at all.
5372
5373 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5374
5375         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5376         msw_skip comparison.
5377         
5378 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5379
5380         PR c/35739
5381         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5382         reg type.
5383
5384         PR tree-optimization/35899
5385         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5386         rather than TREE_OPERAND.
5387
5388 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5389
5390         PR target/35944
5391         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5392         temporary registers.  Change operand predicate to general_operand.
5393         (remainderxf3): Ditto.
5394
5395 2008-04-16  Richard Guenther  <rguenther@suse.de>
5396
5397         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5398         * tree-affine.c (aff_combination_expand): Look through some
5399         conversions.
5400
5401 2008-04-15  Doug Kwan  <dougkwan@google.com>
5402
5403         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5404         for hex printing.
5405         * tree-pretty-print.c (dump_generic_node): Ditto.
5406         * final.c (output_addr_const): Ditto.
5407         * dwarf2out.c (output_cfi): Ditto.
5408         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5409         * print-rtl.c (print_rtx): Ditto.
5410         * print-tree.c (print_node_brief, print_node): Ditto.
5411         * c-common.c (match_case_to_enum_1): Ditto.
5412         * sched-vis.c (print_value): Ditto.
5413         * config/i386/i386.c (print_operand): Cast to long unsigned int
5414         for hex printing.
5415
5416 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5417         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5418         MS Windows VirtualProtect function.
5419
5420 2008-04-15  Jan Hubicka  <jh@suse.cz>
5421
5422         * gengtype.c (write_root): Param_is argument is OK.
5423         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5424         * function.h: Include varray.h
5425         (rtl_eh): New stucture based on except.c one.
5426         (call_site_record): New forward declaration and vector type.
5427         * calls.c (emit_call_1): Do not call
5428         note_current_region_may_contain_throw.
5429         * except.c (eh_status): Remove cur_region, try_region since they are
5430         unused.
5431         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5432         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5433         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5434         Remove call_site_data_used, call_site_data_size.
5435         Turn call_site_record into vector in function.h.
5436         (note_current_region_may_contain_throw): Remove.
5437         (get_exception_pointer, get_exception_filter): Do not take struct
5438         function argument; update.
5439         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5440         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5441         build_post_landing_pads, dw2_build_landing_pads,
5442         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5443         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5444         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5445         sjlj_build_landing_pads, finish_eh_generation,
5446         remove_exception_handler_label, remove_eh_handler,
5447         maybe_remove_eh_handler, add_reachable_handler,
5448         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5449         add_action_record, collect_one_action_chain, add_call_site,
5450         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5451         sjlj_output_call_site_table, output_function_exception_table,
5452         * except.h (note_current_region_may_contain_throw): Remove
5453         (get_exception_pointer, get_exception_filter): Do not take struct
5454         function argument.
5455         * Makefile.in (GTFILES): Put varargs before struct function.
5456
5457 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5458
5459         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5460         punt for STRING_CST.
5461         (get_constraint_for): Deal with STRING_CST here instead.
5462
5463 2008-04-15  Richard Guenther  <rguenther@suse.de>
5464
5465         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5466         statements in a basic-block with a backward walk.  Do not
5467         substitute into dead statements but instead remove those.
5468
5469 2008-04-15  Richard Guenther  <rguenther@suse.de>
5470
5471         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5472         to zero, thus disable creation of SFTs.
5473
5474 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5475
5476         * tree-predcom.c (suitable_reference_p): Return false if the
5477         reference can throw.
5478
5479 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5480
5481         PR c/35751
5482         * c-decl.c (finish_decl): If extern or static var has variable
5483         size, set TREE_TYPE (decl) to error_mark_node.
5484
5485 2008-04-15  Rafael Espindola  <espindola@google.com>
5486
5487         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5488         variable arg1.
5489
5490 2008-04-15  Richard Guenther  <rguenther@suse.de>
5491
5492         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5493         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5494         (visit_reference_op_load): Do walk vuse-vdef chains on
5495         vn_reference_lookup.
5496         (visit_reference_op_store): But do not here.
5497         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5498         vn_reference_lookup.
5499         (vn_lookup_with_vuses): But do so here.
5500
5501 2008-04-14  Ian Lance Taylor  <iant@google.com>
5502
5503         * fold-const.c (fold_overflow_warning): Remove assertion.
5504
5505 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5506
5507         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5508         temp1 local variables.
5509
5510 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5511
5512         PR target/35661
5513         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5514         ".text.unlikely" section as executable.
5515
5516 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5517
5518         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5519         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5520         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5521         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5522         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5523         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5524         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5525
5526 2008-04-14  Ian Lance Taylor  <iant@google.com>
5527
5528         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5529         * fold-const.c (fold_comparison): If appropriate, test
5530         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5531         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5532         reassociating a pointer type.
5533         * doc/invoke.texi (Optimize Options): Document that
5534         -fstrict-overflow applies to pointer wraparound.
5535
5536 2008-04-13  Jan Hubicka  <jh@suse.cz>
5537
5538         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5539
5540 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5541
5542         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5543         we are going to "save the world".
5544
5545 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5546
5547         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5548         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5549         operand 0 constraint, not "=".
5550
5551 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5552
5553         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5554
5555 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5556
5557         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5558         of size of positions_needed * CHAR_BIT.
5559
5560 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5561
5562         PR middle-end/35897
5563         * dse.c (store_info): Change positions_needed to unsigned
5564         HOST_WIDE_INT.
5565         (lowpart_bitmask): New.
5566         (record_store): Cast to unsigned HOST_WIDE_INT for
5567         positions_needed.  Assert width <= size of positions_needed *
5568         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5569         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5570         lowpart_bitmask to set mask.
5571
5572 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5573
5574         * config/bfin/constraints.md: New file.
5575         * config/bfin/bfin.md: Include it.
5576         (adddi3): Use satisfies_constraint functions instead of the old macros.
5577         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5578         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5579         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5580         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5581         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5582         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5583         EXTRA_CONSTRAINT): Delete.
5584         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5585         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5586         of the old macros.
5587         * config/bfin/bfin.c: Include "tm-constrs.h".
5588         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5589         Use satisfies_constraint functions instead of the old macros.
5590         * doc/md.texi (Blackfin Constraints): Update file name reference.
5591
5592 2008-04-11  Richard Guenther  <rguenther@suse.de>
5593
5594         PR tree-optimization/35869
5595         * tree-vrp.c (execute_vrp): Move switch statement update after
5596         jump threading.  Schedule another cfg cleanup run.
5597
5598 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5599
5600         PR c/35744
5601         * attribs.c (decl_attributes): Return early on errorneous node.
5602
5603 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5604
5605         * tree.h (struct tree_base): Added a new flag default_def_flag.
5606         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5607
5608 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5609
5610         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5611
5612 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5613
5614         PR target/35768
5615         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5616         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5617         (icacheflush): Likewise.
5618         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5619         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5620
5621 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5622
5623         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5624
5625 2008-04-10  Rafael Espindola  <espindola@google.com>
5626
5627         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5628         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5629         (extract_range_from_expr): The same.
5630
5631 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5632
5633         * config/mips/mips.md (GPR2): New mode iterator.
5634         (seq): Add comment.
5635         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5636         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5637         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5638         Rewrite these to take two modes, the mode of comparison and the
5639         mode of the destination.
5640         * config/mips/mips.c (mips_expand_scc): Instead of having
5641         paradoxical subreg as destination, expand "narrowing" scc if mode
5642         of comparison is SI and target is requested in DI mode.
5643         (mips_emit_int_order_test): Update comment.  Make mode of
5644         comparison match CMP0 rather than TARGET.  When creating inverse
5645         target use mode of TARGET.
5646
5647 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5648
5649         * gcov-dump.c (tag_summary): Only print summaries for the first
5650         GCOV_COUNTERS_SUMMABLE counters.
5651
5652 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5653
5654         * config/i386/i386.md (absneg): New code iterator.
5655         (absnegprefix): New code attribute.
5656         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5657         patterns using absneg code iterator.
5658         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5659         using absneg code iterator.
5660         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5661         *neg<mode>2 patterns using absneg code iterator.
5662         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5663         *negextendsfdf2 patterns using absneg code iterator.
5664         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5665         *negextendsfxf2 patterns using absneg code iterator.
5666         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5667         *negextendsfdf2 patterns using absneg code iterator.
5668         * config/i386/sse.md (<code><mode>2): Macroize expander from
5669         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5670
5671 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5672
5673         * config/s390/s390.h: Remove the remains of the recent search
5674         & replace action of current_function_outgoing_args_size.
5675
5676 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5677
5678         PR tree-optimization/35821
5679         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5680         NEW_STMT_LIST is not NULL.
5681
5682 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5683
5684         PR libstdc++/35597
5685         * toplev.c (process_options): Remove -ffunction-sections debugging
5686         warning.
5687
5688 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5689
5690         PR middle-end/PR28690
5691         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5692         than gen_rtx_fmt_ee to perform more canonicalizations.
5693
5694 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5695
5696         PR driver/35665
5697         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5698
5699 2008-04-09  Richard Guenther  <rguenther@suse.de>
5700
5701         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5702         (dump_function_to_file): Dump function arguments with types.
5703
5704 2008-04-08  Richard Guenther  <rguenther@suse.de>
5705
5706         * fold-const.c (fold_widened_comparison): Do not allow
5707         sign-changes that change the result.
5708
5709 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5710
5711         PR target/35839
5712         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5713         kinds of indirect references.
5714
5715 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5716
5717         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5718         GNU Fortran language string.
5719
5720 2008-04-08  Rafael Espindola  <espindola@google.com>
5721
5722         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5723         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5724         * tree.h (tree_call_nonnegative_warnv_p): New.
5725
5726 2008-04-08  Jan Hubicka  <jh@suse.cz>
5727
5728         * function.c (free_after_compilation): Clear out regno_reg_rtx
5729         pointer.
5730
5731 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5732
5733         Revert
5734         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5735
5736         PR middle-end/PR28690
5737         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5738         same precedence as REG_POINTER and MEM_POINTER operands.
5739
5740 2008-04-08  Richard Guenther  <rguenther@suse.de>
5741
5742         PR middle-end/35834
5743         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5744         for adding index to base.
5745
5746 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5747
5748         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5749         (MINGW_ENABLE_EXECUTE_STACK): New.
5750         (IN_LIBGCC2): For libgcc include windows.h file for
5751         function declarations.
5752
5753 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5754
5755         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5756         and tem2 if tem1 is not a REG or MULT.
5757
5758 2008-04-08  Jan Hubicka  <jh@suse.cz>
5759
5760         * function.h (incomming_args): Break out of struct function.
5761         (function_subsections): Break out of struct function.
5762         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5763         return_rtx and hard_reg_initial_vals from struct function.
5764         Kill inl_max_label_num.
5765         (current_function_pops_args, current_function_args_info,
5766         current_function_args_size, current_function_args_size,
5767         current_function_pretend_args_size,
5768         current_function_outgoing_args_size,
5769         current_function_internal_arg_pointer, current_function_return_rtx):
5770         Kill compatibility accestor macros.
5771         * builtins.c (expand_builtin_apply_args_1): Update.
5772         (expand_builtin_next_arg): Update.
5773         * df-scan.c (df_get_call_refs): Update.
5774         * dbxout.c (dbxout_function_end): Update.
5775         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5776         (output_line_info): Update.
5777         (secname_for_decl): Update.
5778         (dwarf2out_var_location): Update.
5779         * function.c (free_after_compilation): Update.
5780         (assign_parm_find_stack_rtl): Update.
5781         (assign_parms): Update.
5782         (expand_dummy_function_end): Update.
5783         (expand_function_end): Update.
5784         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5785         (expand_call): Update.
5786         (emit_library_call_value_1): Update.
5787         (store_one_arg): Update.
5788         * varasm.c (initialize_cold_section_name): Update.
5789         (unlikely_text_section): Update.
5790         (unlikely_text_section_p): Update.
5791         (assemble_start_function): Update.
5792         (assemble_end_function): Update.
5793         (default_section_type_flags): Update.
5794         (switch_to_section): Update.
5795         * integrate.c (set_decl_abstract_flags): Update.
5796         (get_hard_reg_initial_val): Update.
5797         (has_hard_reg_initial_val): Update.
5798         (allocate_initial_values): Update.
5799         * resource.c (init_resource_info): Update.
5800         * config/alpha/alpha.c (NUM_ARGS): Update.
5801         (direct_return): Update.
5802         (alpha_va_start): Update.
5803         (alpha_sa_size): Update.
5804         (alpha_initial_elimination_offset): Update.
5805         (alpha_expand_prologue): Update.
5806         (alpha_start_function): Update.
5807         (alpha_expand_epilogue): Update.
5808         (unicosmk_initial_elimination_offset):
5809         * config/alpha/alpha.md (call expander): Update.
5810         * config/s390/s390.c (s390_register_info): Update.
5811         (s390_register_info): Update.
5812         (s390_frame_info): Update.
5813         (s390_initial_elimination_offset): Update.
5814         (s390_build_builtin_va_list): Update.
5815         (s390_va_start): Update.
5816         * config/spu/spu.c (direct_return): Update.
5817         (spu_expand_prologue): Update.
5818         (spu_initial_elimination_offset): Update.
5819         (spu_build_builtin_va_list): Update.
5820         (spu_va_start): Update.
5821         * config/sparc/sparc.c (sparc_init_modes): Update.
5822         (sparc_compute_frame_size): Update.
5823         (function_value): Update.
5824         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5825         * config/i386/i386.md (return expander): Update.
5826         * config/i386/i386.c (ix86_va_start): Update.
5827         (ix86_can_use_return_insn_p): Update.
5828         (ix86_compute_frame_layout): Update.
5829         (ix86_expand_epilogue): Update.
5830         * config/sh/sh.c (output_stack_adjust): Update.
5831         (calc_live_regs): Update.
5832         (sh_expand_prologue): Update.
5833         (sh_builtin_saveregs): Update.
5834         (sh_va_start): Update.
5835         (initial_elimination_offset): Update.
5836         (sh_allocate_initial_value): Update.
5837         (sh_function_ok_for_sibcall): Update.
5838         (sh_get_pr_initial_val): Update.
5839         * config/sh/sh.md (return expander): Update.
5840         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5841         * config/crx/crx.c (crx_compute_frame): UPdate.
5842         (crx_initial_elimination_offset): UPdate.
5843         * config/xtensa/xtensa.c (compute_frame_size): Update
5844         (xtensa_builtin_saveregs): Update.
5845         (xtensa_va_start): Update.
5846         (order_regs_for_local_alloc): Update.
5847         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5848         (xstormy16_expand_builtin_va_start): Update.
5849         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5850         * config/m68hc11/m68hc11.md (return expanders): Update.
5851         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5852         (expand_epilogue): Update.
5853         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5854         (cris_simple_epilogue): Update.
5855         (cris_expand_prologue): Update.
5856         (cris_expand_epilogue): Update.
5857         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5858         (compute_frame_size): Update.
5859         * config/mt/mt.c (mt_compute_frame_size): Update.
5860         * config/mn10300/mn10300.c (expand_prologue): Update.
5861         (expand_epilogue): Update.
5862         (initial_offset): Update.
5863         (mn10300_builtin_saveregs):
5864         * config/mn10300/mn10300.md (return expander): Update.
5865         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5866         (ia64_initial_elimination_offset): Update.
5867         (ia64_initial_elimination_offset): Update.
5868         (ia64_expand_prologue): Update.
5869         * config/m68k/m68k.md (return expander): Update.
5870         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5871         (rs6000_stack_info): Update.
5872         * config/mcore/mcore.c (layout_mcore_frame): Update.
5873         (mcore_expand_prolog): Update.
5874         * config/arc/arc.c (arc_compute_frame_size): Update.
5875         * config/score/score3.c (score3_compute_frame_size): Update.
5876         * config/score/score7.c (score7_compute_frame_size): Update.
5877         * config/arm/arm.c (use_return_insn): Update.
5878         (thumb_find_work_register): Update.
5879         (arm_compute_save_reg_mask): Update.
5880         (arm_output_function_prologue): Update.
5881         (arm_output_epilogue): Update.
5882         (arm_size_return_regs): Update.
5883         (arm_get_frame_offsets): Update.
5884         (arm_expand_prologue): Update.
5885         (thumb_exit): Update.
5886         (thumb_unexpanded_epilogue): Update.
5887         (thumb1_output_function_prologue): Update.
5888         * config/pa/pa.md (return expander): Update.
5889         * config/pa/pa.c (compute_frame_size): Update.
5890         (hppa_builtin_saveregs): Update.
5891         * config/mips/mips.c (mips_va_start): Update.
5892         (mips16_build_function_stub): Update.
5893         (mips_compute_frame_info): Update.
5894         (mips_restore_gp): Update.
5895         (mips_output_function_prologue): Update.
5896         (mips_expand_prologue): Update.
5897         * config/v850/v850.c (compute_frame_size): Update.
5898         (expand_prologue): * config/mmix/mmix.c (along): update.
5899         (mmix_initial_elimination_offset): update.
5900         (mmix_reorg): update.
5901         (mmix_use_simple_return): update.
5902         (mmix_expand_prologue): update.
5903         (mmix_expand_epilogue): Update.
5904         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5905         (emit_link_insn): Update.
5906
5907 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5908
5909         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5910         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5911         instructions.
5912         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5913         atmega103 device.
5914
5915 2008-04-07  Jan Hubicka  <jh@suse.cz>
5916
5917         * function.h (rtl): Rename to x_rtl.
5918         (crtl): New define.
5919         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5920         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5921         used_temp_slots avail_temp_slots, temp_slot_level,
5922         nonlocal_goto_handler_labels): Update accesstors.
5923         (rtl): New global variable.
5924         (struct function): Move some fileds to rtl_data.
5925         (get_arg_pointer_save_area): Update prototype.
5926         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5927         get_arg_pointer_save_area.
5928         * expr.c (init_expr): Update
5929         * function.c (get_frame_size): Update
5930         (assign_stack_local): Update
5931         (expand_function_end): Update.
5932         (get_art_pointer_save_area): Update
5933         * function.h 
5934         * emit-rtl.c (rtl): Declare.
5935         (regno_reg_rtx): Declare.
5936         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5937         Update.
5938         (gen_reg_rtx): Update.
5939         * varasm.c (n_deferred_constatns): Update accestor.
5940         (init_varasm_status): Do not allocate varasm_status.
5941         (force_const_mem, get_pool_size, output_constant_pool): Update.
5942         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5943         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5944         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5945         * sparc/sparc.h (INIT_EXPANDERS): Update.
5946         * ia64/ia64.h (INIT_EXPANDERS): Update.
5947
5948 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5949
5950         * reload.c (push_secondary_reload): Add missing break to for loop.
5951
5952 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5953
5954         PR middle-end/PR28690
5955         * rtlanal.c: Update copyright years.
5956         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5957         as REG_POINTER and MEM_POINTER operands.
5958         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5959         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5960         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5961         * gcse.c: Update copyright years.
5962         (pre_delete): Call gen_reg_rtx_and_attrs.
5963         (hoist_code): Likewise.
5964         (build_store_vectors): Likewise.
5965         (delete_store): Likewise.
5966         * loop-invariant.c (move_invariant_reg): Likewise.
5967         Update copyright years.
5968
5969 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5970
5971         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5972         control string instead of quoted.
5973
5974 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5975
5976         * doc/rtl.texi: Rewrite of subreg section.
5977
5978 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5979
5980         PR/35842
5981         * config/i386/i386.c (legitimize_pic_address): Add treating
5982         of dllimport SYM_REF's.
5983         (legitimize_dllimport_symbol): Add prototype.
5984
5985 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5986
5987         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5988         reference in constructor with non self-referential type.
5989
5990 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5991
5992         Removal of Return with Depressed Stack Pointer support
5993         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5994         (ECF_SP_DEPRESSED): Likewise.
5995         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5996         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5997         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5998         (expand_call): Do not test ECF_SP_DEPRESSED.
5999         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6000         * function.c (keep_stack_depressed): Delete.
6001         (handle_epilogue_set): Likewise.
6002         (update_epilogue_consts): Likewise.
6003         (emit_equiv_load): Likewise.
6004         (thread_prologue_and_epilogue_insns): Remove support for Return with
6005         Depressed Stack Pointer.
6006         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6007
6008 2008-04-06  Richard Guenther  <rguenther@suse.de>
6009
6010         PR tree-optimization/35400
6011         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
6012         information from SSA_NAMEs.
6013
6014 2008-04-06  Anatoly Sokolov <aesok@post.ru>
6015
6016         * config/avr/avr.h (avr_mega_p): Remove declaration.
6017         (AVR_MEGA): Remove macro.
6018         * config/avr/avr.c (avr_mega_p): Remove variable.
6019         (avr_override_options): Remove inicializion of avr_mega_p.
6020         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6021         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6022         (avr_jump_mode): (Ditto.).
6023         (avr_output_progmem_section_asm_op): (Ditto.).
6024         (avr_asm_init_sections): (Ditto.).
6025         (avr_asm_init_sections): (Ditto.).
6026         (avr_rtx_costs): (Ditto.).
6027         * config/avr/avr.md: (Ditto.).
6028         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
6029         '__AVR_MEGA__'.
6030
6031 2008-04-06  Richard Guenther  <rguenther@suse.de>
6032
6033         PR tree-optimization/35842
6034         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
6035         is_gimple_invariant_address.
6036
6037 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6038
6039         * gcc.c (default_compilers): Sync Fortran extensions list with
6040         that in fortran/lang-specs.h.
6041         * doc/invoke.texi: Likewise.
6042         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
6043         * dwarf2out.c (gen_compile_unit_die): Likewise.
6044
6045 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
6046
6047         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
6048
6049 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
6050
6051         PR target/12329
6052         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
6053         attribute is used for nested functions.
6054
6055 2008-04-05  Jan Hubicka  <jh@suse.cz>
6056
6057         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
6058
6059         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
6060         letter argument.
6061         (dump_files): Update.
6062         (enable_rtl_dump_file): Do not accept letter argument.
6063         * tree-pass.h (dump_file_info): Remove letter argument.
6064         * toplev.c (decode_d_option): Update -da handling.
6065         * toplev.h (enable_rtl_dump_file): Update prototype.
6066         * passes.c (register_one_dump_file): Do not accept IPA argument; work
6067         it out based on pass type.
6068         (register_dump_files_1): Likewise.
6069         (init_optimization_passes): Update register_one_dump_file calls.
6070         (execute_one_pass): Sanity check that IPA passes are called at IPA
6071         level and RTL passes at RTL level.
6072         (execute_pass_list): IPA pass can not be after or subpass of
6073         GIMPLE/RTL pass.
6074         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
6075         disallov RTL subpasses of IPA subpasses.
6076
6077 2008-04-05  Ben Elliston  <bje@au.ibm.com>
6078
6079         * tree-cfg.c (need_fake_edge_p): Return false for calls to
6080         builtins that return exactly once and do not throw. Cache call to
6081         call_expr_flags.
6082
6083 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
6084
6085         PR rtl-optimization/34916
6086         PR middle-end/35519
6087         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
6088         between instruction pairs.
6089
6090 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
6091
6092         * doc/invoke.texi: Document -mbitops for SH.
6093         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
6094         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
6095         * config/sh/sh.c (print_operand): Add %t operand code.
6096         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
6097         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
6098         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
6099         (extendqihi2): Likewise.
6100         (movqi_i): Likewise.
6101         (insv): Use bset, bclr and bst instructions for SH2A if possible.
6102         (extv): Use bld instruction for SH2A if possible.
6103         (extzv): Likewise.
6104         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
6105         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
6106         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
6107         (bset.b, bclr.b): Define peepholes.
6108         * config/sh/sh.opt (mbitops): New option.
6109
6110 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
6111
6112         PR target/35620
6113         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
6114         and view convert expression.
6115
6116 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6117
6118         PR target/35364
6119         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6120
6121 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
6122
6123         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6124
6125         * config/i386/cpuid.h (bit_AES): New.
6126         (bit_PCLMUL): Likewise.
6127
6128         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6129         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
6130         SSE2 if AES or PCLMUL is enabled.
6131         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6132         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6133         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6134         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6135         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6136         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6137         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6138         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6139         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6140         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6141         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6142         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6143         __builtin_ia32_aeskeygenassist128 and
6144         __builtin_ia32_pclmulqdq128.
6145         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6146         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6147         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
6148
6149         * config/i386/i386.h (TARGET_AES): New.
6150         (TARGET_PCLMUL): Likewise.
6151         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6152
6153         * config/i386/i386.md (UNSPEC_AESENC): New.
6154         (UNSPEC_AESENCLAST): Likewise.
6155         (UNSPEC_AESDEC): Likewise.
6156         (UNSPEC_AESDECLAST): Likewise.
6157         (UNSPEC_AESIMC): Likewise.
6158         (UNSPEC_AESKEYGENASSIST): Likewise.
6159         (UNSPEC_PCLMUL): Likewise.
6160
6161         * config/i386/i386.opt (maes): New.
6162         (mpclmul): Likewise.
6163
6164         * config/i386/sse.md (aesenc): New pattern.
6165         (aesenclast): Likewise.
6166         (aesdec): Likewise.
6167         (aesdeclast): Likewise.
6168         (aesimc): Likewise.
6169         (aeskeygenassist): Likewise.
6170         (pclmulqdq): Likewise.
6171
6172         * config/i386/wmmintrin.h: New.
6173
6174         * doc/extend.texi: Document AES and PCLMUL built-in function.
6175
6176         * doc/invoke.texi: Document -maes and -mpclmul.
6177
6178 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6179
6180         * function.c (free_after_parsing): Replace with
6181         cxx_push_function_context from C++ front-end.
6182         (allocate_struct_function): Don't call langhook.
6183         * langhooks.h (struct lang_hooks_for_functions): Delete.
6184         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6185         member "function".
6186         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6187         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6188         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6189         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6190         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6191         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6192         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6193
6194         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6195         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6196         
6197 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6198
6199         PR c/35440
6200         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6201         for all types.
6202
6203 2008-04-04  Richard Guenther  <rguenther@suse.de>
6204
6205         PR middle-end/35823
6206         * fold-const.c (optimize_minmax_comparison): Use the correct
6207         type for the constant in the simplified comparison.
6208
6209 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6210
6211         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6212         Pass L2 size as "--param l2-cache-size" to the compiler.
6213         (decode_l2_cache): New function to decode L2 cache parameters using
6214         0x8000006 extended cpuid function.
6215         (detect_caches_amd): Determine parameters of L2 cache using
6216         decode_l2_caches function.
6217         (decode_caches_intel): Decode L2 cache parameters.
6218         (detect_caches_intel): Determine L2 cache parameters using
6219         decode_caches_intel and decode_l2_caches functions.
6220
6221 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6222
6223         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6224         secondary input reload for subword loads from the constant pool.
6225
6226 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6227
6228         PR target/35713
6229         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6230           constants of the appropriate size for runtime calculations.
6231
6232         PR c/35712
6233         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6234           decimal-float literal constant zero.
6235
6236 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6237
6238         PR c/35738
6239         * c-parser.c (c_parser_omp_atomic): Call
6240         default_function_array_conversion on the RHS.
6241
6242         PR middle-end/35818
6243         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6244         call is_variable_sized if decl has incomplete type.
6245
6246 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6247
6248         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6249
6250 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6251
6252         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6253         iterators.
6254         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6255         (sgt<u>): Merge sgt and sgtu into new expander.
6256         (sgt, sgtu): Remove expanders.
6257         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6258         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6259         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6260         *sgtu_<mode>_mips16 into new pattern.
6261         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6262         (sge<u>): Merge sge and sgeu into new expander.
6263         (sge, sgeu): Remove expanders.
6264         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6265         new pattern.
6266         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6267         (slt<u>): Merge slt and sltu into new expander.
6268         (slt, sltu): Remove expanders.
6269         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6270         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6271         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6272         *sltu_<mode>_mips16 into new pattern.
6273         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6274         (sle<u>): Merge sle and sleu into new expander.
6275         (sle, sleu): Remove expanders.
6276         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6277         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6278         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6279         *sleu_<mode>_mips16 into new pattern.
6280         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6281
6282 2008-04-03  Jan Hubicka  <jh@suse.cz>
6283
6284         PR tree-optimization/35795
6285         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6286         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6287         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6288         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6289         * score/score3.c (score3_output_mi_thunk): Likewise.
6290         * score/score7.c (score7_output_mi_thunk): Likewise.
6291         * mips/mips.c (mips_output_mi_thunk): Likewise.
6292
6293 2008-04-03  Richard Guenther  <rguenther@suse.de>
6294
6295         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6296         conversions.  Simplify code.
6297
6298 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6299
6300         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6301
6302 2008-04-03  Tom Tromey  <tromey@redhat.com>
6303             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6304
6305         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6306         * config/bfin/t-bfin-linux (generated_files): Add
6307         linux-sysroot-suffix.h.
6308         * doc/install.texi (Prerequisites): Require make 3.80.
6309         * doc/sourcebuild.texi (Front End Directory): Document new
6310         variable.
6311         * Makefile.in (generated_files): New variable.
6312         (ALL_HOST_OBJS): New variable.
6313         ($(ALL_HOST_OBJS)): New target.
6314
6315 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6316
6317         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6318         (remap_block): Call id->transform_lang_insert_block instead
6319         of langhook.
6320         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6321         Set id.transform_lang_insert_block to NULL.
6322         (clone_body): Move to cp/optimize.c
6323         * tree-inline.h (struct copy_body_data): Change
6324         transform_lang_insert_block to function pointer.
6325         (copy_generic_body, copy_decl_no_change): Export.
6326         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6327         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6328         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6329
6330         * c-tree.h (insert_block): Kill.
6331         * c-decl.c (insert_block): Kill.
6332
6333 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6334
6335         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6336         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6337         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6338         argument.
6339         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6340         argument, call {push,pop}_function_context from here.
6341         * c-parser.c: Use c_{push,pop}_function_context.
6342
6343         * function.c (push_function_context_to): Move meat ...
6344         (push_function_context): ... here.  Simplify.
6345         * function.c (pop_function_context_from): Move meat ...
6346         (pop_function_context): ... here.  Simplify.
6347         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6348         leave_nested).
6349         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6350         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6351         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6352         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6353
6354 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6355
6356         * expmed.c (extract_force_align_mem_bit_field): Remove.
6357
6358 2008-04-03  Richard Guenther  <rguenther@suse.de>
6359
6360         PR middle-end/35800
6361         * expr.h (try_casesi): Adjust prototype.
6362         * expr.c (try_casesi): Take fallback label as extra parameter.
6363         Use that for gen_casesi if default_label is NULL.
6364         * stmt.c (expand_case): Pass fallback label to try_casesi,
6365         make sure to fill gaps with a fallback label if default_label
6366         is not present.
6367
6368 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6369
6370         PR target/35801
6371         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6372
6373 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6374
6375         * expmed.c (extract_split_bit_field): Remove if (0) code.
6376         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6377         (do_ds_constraint): Likewise.
6378
6379 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6380
6381         * doc/cppopts.texi (-dU): Document.
6382         * c-common.h (flag_dump_macros): Update comment.
6383         * c-opts.c (handle_OPT_d): Handle -dU.
6384         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6385         dump_queued_macros, cb_used_define, cb_used_undef): New.
6386         (init_pp_output): Handle -dU.
6387         (cb_line_change): Call dump_queued_macros.
6388         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6389
6390 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6391
6392         * config/avr/predicates.md (io_address_operand): New predicate. 
6393         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6394         * config/avr/avr.c (avr_io_address_p): Remove function.
6395         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6396         'avr_io_address_p' function.
6397         (out_movhi_r_mr): (Ditto.).
6398         (out_movqi_mr_r): (Ditto.).
6399         (out_movhi_mr_r): (Ditto.).
6400         (avr_address_cost): (Ditto.).
6401
6402 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6403
6404         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6405         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6406         in 32bit mode when XMM registers are available to avoid store
6407         forwarding stalls.
6408         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6409         corresponding post-reload splitters.
6410
6411 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6412
6413         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6414         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6415         __builtin_ia32_roundss.
6416         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6417         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6418         __builtin_ia32_roundss.
6419         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6420         IX86_BUILTIN_SHUFPD here.
6421
6422 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6423
6424         * config/i386/i386.md (plogic): New.
6425         (plogicprefix): Likewise.
6426
6427         * config/i386/mmx.md (mmx_<code><mode>3): New.
6428         (mmx_and<mode>3): Removed.
6429         (mmx_ior<mode>3): Likewise.
6430         (mmx_xor<mode>3): Likewise.
6431
6432         * config/i386/sse.md (<code><mode>3): New.
6433         (*<code><mode>3): Likewise.
6434         (*<code><mode>3): Likewise.
6435         (<code><mode>3): Likewise.
6436         (*sse_<code><mode>3): Likewise.
6437         (*sse2_<code><mode>3): Likewise.
6438         (<code>tf3): Likewise.
6439         (*<code>tf3): Likewise.
6440         (and<mode>3): Likewise.
6441         (*and<mode>3): Likewise.
6442         (ior<mode>3): Removed.
6443         (*ior<mode>3): Likewise.
6444         (xor<mode>3): Likewise.
6445         (*xor<mode>3): Likewise.
6446         (*and<mode>3): Likewise.
6447         (*ior<mode>3): Likewise.
6448         (*xor<mode>3): Likewise.
6449         (and<mode>3): Likewise.
6450         (*sse_and<mode>3): Likewise.
6451         (*sse2_and<mode>3): Likewise.
6452         (andtf3): Likewise.
6453         (*andtf3): Likewise.
6454         (ior<mode>3): Likewise.
6455         (*sse_ior<mode>3): Likewise.
6456         (*sse2_ior<mode>3): Likewise.
6457         (iortf3): Likewise.
6458         (*iortf3): Likewise.
6459         (xor<mode>3): Likewise.
6460         (*sse_xor<mode>3): Likewise.
6461         (*sse2_xor<mode>3): Likewise.
6462         (xortf3): Likewise.
6463         (*xortf3): Likewise.
6464
6465 2008-04-02  Richard Guenther  <rguenther@suse.de>
6466
6467         PR tree-optimization/14495
6468         PR tree-optimization/34793
6469         * tree-vrp.c (struct switch_update): New structure.
6470         (to_remove_edges, to_update_switch_stmts): New VECs.
6471         (simplify_switch_using_ranges): New function.  Remove not taken
6472         case labels and edges.
6473         (simplify_stmt_using_ranges): Call it.
6474         (identify_jump_threads): Mark edges we have queued for removal
6475         so we don't thread them.
6476         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6477         case label vector.
6478         * tree-cfg.c (group_case_labels): Deal with missing default label.
6479         (tree_verify_flow_info): Allow missing default label.
6480         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6481         (emit_case_nodes): Likewise.
6482         (expand_case): Do not rely on the default label to be present.
6483         * expr.c (try_casesi): Deal with NULL default_label.
6484         (do_tablejump): Likewise.
6485
6486 2008-04-02  Richard Guenther  <rguenther@suse.de>
6487
6488         PR tree-optimization/14495
6489         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6490         SWITCH_EXPR here ...
6491         (vrp_visit_switch_stmt): ... but here (new function).
6492         (find_case_label_index): New helper function.
6493         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6494
6495 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6496
6497         * fwprop.c: Fix ISO-C99ism.
6498
6499 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6500
6501         PR bootstrap/35752
6502         * Makefile.in (objdir): Set it here.
6503         * configure.ac: Not here.  Find dynamic linker characteristics.
6504         * exec-tool.in: Use them.
6505         * aclocal.m4: Regenerate.
6506         * configure: Regenerate.
6507
6508 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6509
6510         * expr.c (expand_var): Delete it.
6511         * expr.h (expand_var): Delete prototype.
6512         * function.c (expand_function_start): Use expand_decl instead.
6513         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6514         langhook.
6515
6516 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6517
6518         PR rtl-optimization/35542
6519         * fwprop.c (forward_propagate_and_simplify): Replace
6520         loc_reg_mentioned_in_p with reg_mentioned_p.
6521
6522 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6523
6524         PR rtl-optimization/35281
6525         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6526         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6527         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6528         (varying_mem_p): Move above propagate_rtx.
6529         (all_uses_available_at): Do not check MEMs.
6530
6531 2008-04-02  Rafael Espindola  <espindola@google.com>
6532
6533         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6534         (register_edge_assert_for_2): Split the cond argument.
6535         (register_edge_assert_for_1): Adjust for the change in
6536         register_edge_assert_for_2.
6537         (register_edge_assert_for): Split the cond argument.
6538         (find_switch_asserts): Adjust for the change in
6539         register_edge_assert_for.
6540
6541 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6542
6543         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6544         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6545         offsets for 64-bit mingw.
6546         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6547         abi for x86_64-pc-mingw.
6548
6549 2008-04-02  Richard Guenther  <rguenther@suse.de>
6550
6551         * tree-vrp.c (extract_range_from_assert): Make sure to not
6552         produce range min/max with TREE_OVERFOW set.
6553         If merging a anti-range and a range keep the anti-range if
6554         the range covers all values of the type.
6555         (register_edge_assert_for_2): Only allow sign-changing
6556         conversions in detecting canonical range checks.  Also
6557         register an assert for the unsigned name if useful.
6558
6559         PR tree-optimization/35787
6560         * tree-vrp.c (vrp_val_max): New function.
6561         (vrp_val_min): Likewise.
6562         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6563         (vrp_val_is_min): Likewise.
6564         (supports_overflow_infinity): Use vrp_val_{min,max}.
6565         (negative_overflow_infinity): Likewise.
6566         (positive_overflow_infinity): Likewise.
6567         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6568         (is_positive_overflow_infinity): Likewise.
6569         (is_overflow_infinity): Likewise.
6570         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6571         vrp_val_is_{min,max}.
6572         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6573         to ranges if possible.  Avoid empty ranges.
6574
6575 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6576
6577         PR middle-end/35705
6578         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6579         the expression is a function address.
6580
6581 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6582
6583         PR fortran/35154, fortran/23057
6584         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6585         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6586         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6587         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6588         in common.
6589         (dbxout_syms): Check for COMMON-based symbol and wrap in
6590         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6591         in bracket for efficiency.
6592
6593         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6594         using DW_TAG_common_block + member offset.
6595         (add_pubname_string): New function.
6596         (dw_expand_expr): New function to find block name and offset for
6597         COMMON var.
6598         (common_check): New function to check whether symbol in Fortran COMMON.
6599         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6600
6601 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6602
6603         PR c/35436
6604         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6605
6606 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6607
6608         * config/v850/v850.md (casesi): Remove if (0) code.
6609         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6610         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6611
6612 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6613
6614         * config/i386/i386.md (rex64suffix): New mode attribute.
6615         (floathi<mode>2): Disable expander for SSE math.
6616         (*floathi<mode>2_1): New insn insn_and_split pattern.
6617         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6618         corresponding post-reload splitters.
6619         (*floathi<mode>2_i387): New macroized insn pattern.
6620         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6621         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6622         insn_and_split pattern.
6623         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6624         New macroized instruction patterns and corresponding post-reload
6625         splitters.
6626         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6627         and corresponding post-reload splitters.
6628         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6629         New macroized instruction patterns.
6630         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6631         macroized instruction patterns and corresponding post-reload splitters.
6632         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6633         corresponding post-reload splitters.
6634         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6635         New macroized instruction patterns.
6636         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6637         corresponding post-reload splitters.
6638         (*floatsi<mode>2_i387): New macroized instruction patterns.
6639
6640 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6641
6642         * config/i386/i386.md (smaxmin): New.
6643         (umaxmin): Likewise.
6644         (maxminiprefix): Likewise.
6645         (maxminfprefix): Likewise.
6646         (<code><mode>3): Likewise.
6647         (smin<mode>3): Removed.
6648         (smax<mode>3): Likewise.
6649
6650         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6651         (mmx_<code>v4hi3): Likewise.
6652         (mmx_<code>v8qi3): Likewise.
6653         (mmx_smaxv2sf3): Removed.
6654         (mmx_sminv2sf3): Likewise.
6655         (mmx_umaxv8qi3): Likewise.
6656         (mmx_smaxv4hi3): Likewise.
6657         (mmx_uminv8qi3): Likewise.
6658         (mmx_sminv4hi3): Likewise.
6659
6660         * config/i386/sse.md (<addsub><mode>3): New.
6661         (*<addsub><mode>3): Likewise.
6662         (<sse>_vm<addsub><mode>3): Likewise.
6663         (<maxmin><mode>3): Likewise.
6664         (*<maxmin><mode>3_finite): Likewise.
6665         (*<maxmin><mode>3): Likewise.
6666         (<sse>_vm<maxmin><mode>3): Likewise.
6667         (sse3_h<addsub>v4sf3): Likewise.
6668         (sse3_h<addsub>v2df3): Likewise.
6669         (<maxmin>v16qi3): Likewise.
6670         (*<maxmin>v16qi3): Likewise.
6671         (<maxmin>v8hi3): Likewise.
6672         (*<maxmin>v8hi3): Likewise.
6673         (*sse4_1_<maxmin><mode>3): Likewise.
6674         (*sse4_1_<maxmin><mode>3): Likewise.
6675         (add<mode>3): Removed.
6676         (*add<mode>3): Likewise.
6677         (<sse>_vmadd<mode>3): Likewise.
6678         (sub<mode>3): Likewise.
6679         (*sub<mode>3): Likewise.
6680         (<sse>_vmsub<mode>3): Likewise.
6681         (smin<mode>3): Likewise.
6682         (*smin<mode>3_finite): Likewise.
6683         (*smin<mode>3): Likewise.
6684         (<sse>_vmsmin<mode>3): Likewise.
6685         (smax<mode>3): Likewise.
6686         (*smax<mode>3_finite): Likewise.
6687         (*smax<mode>3): Likewise.
6688         (<sse>_vmsmax<mode>3): Likewise.
6689         (sse3_haddv4sf3): Likewise.
6690         (sse3_haddv2df3): Likewise.
6691         (sse3_hsubv4sf3): Likewise.
6692         (sse3_hsubv2df3): Likewise.
6693         (umaxv16qi3): Likewise.
6694         (*umaxv16qi3): Likewise.
6695         (smaxv8hi3): Likewise.
6696         (*smaxv8hi3): Likewise.
6697         (*sse4_1_smax<mode>3): Likewise.
6698         (*sse4_1_umax<mode>3): Likewise.
6699         (uminv16qi3): Likewise.
6700         (*uminv16qi3): Likewise.
6701         (sminv8hi3): Likewise.
6702         (*sminv8hi3): Likewise.
6703         (*sse4_1_smin<mode>3): Likewise.
6704         (*sse4_1_umin<mode>3): Likewise.
6705
6706 2008-04-01  Rafael Espindola  <espindola@google.com>
6707
6708         * tree-cfg.c (verify_expr): remove in_phi.
6709         (verify_stmt): Don't call walk_tree with verify_expr. Use
6710         is_gimple_min_invariant instead of is_gimple_val.
6711
6712 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6713
6714         * doc/include/gpl_v3.texi: Update for manpage generation.
6715         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6716         gpl.texi.
6717         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6718         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6719         gpl_v3.texi instead of gpl.texi.
6720         (gpl.pod): New.
6721
6722 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6723
6724         PR pch/13675
6725         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6726
6727 2008-04-01  Rafael Espindola  <espindola@google.com>
6728
6729         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6730         (extract_code_and_val_from_cond): Use
6731         extract_code_and_val_from_cond_with_ops.
6732
6733 2008-04-01  Jan Hubicka  <jh@suse.cz>
6734
6735         * function.c (free_after_compilation): Free epilogue_delay_list.
6736         (prepare_function_start): Assert that previous compilation was freed.
6737
6738 2008-04-01  Jan Hubicka  <jh@suse.cz>
6739             Jim Wilson  <wilson@tuliptree.org>
6740             Andreas Tobler <andreast@gcc.gnu.org>
6741
6742         PR middle-end/35781
6743         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6744         rtl.emit instead cfun->emit.
6745         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6746         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6747
6748 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6749
6750         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6751
6752 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6753
6754         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6755         New options
6756         (fprofile-use): Add var flag_profile_use
6757         * coverage.c (coverage_begin_output): Do not open a gcno file for
6758         output only if -ftest-coverage is set.
6759         Do not add getpwd() to gcda file path.
6760         (build_gcov_info): Check the new flag
6761         flag_profile_datafile_relative_path.
6762         (coverage_init): Use profile_data_prefix.
6763         Read profile counter only if flag_profile_use is set.
6764         * opts.c (common_handle_option): New option fprofile-use=,
6765         fprofile-dir=, fprofile-generate=.
6766         * toplev.c (profile_data_prefix): New variable definition.
6767         * toplev.h (profile_data_prefix): New declaration.
6768         * doc/invoke.tex (Option Summary, Optimization Options):
6769         Add new options.
6770
6771 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6772
6773         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6774         use tmp consistently.
6775
6776         PR target/35695
6777         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6778         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6779         UNSPEC_FR_RECIP_APPROX_RES.
6780         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6781
6782 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6783
6784         PR c/35750
6785         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6786
6787 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6788
6789         PR middle-end/30186
6790         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6791         element of the vector via a pointer.
6792
6793 2008-03-31  Ian Lance Taylor  <iant@google.com>
6794
6795         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6796
6797 2008-03-31  Jan Hubicka  <jh@suse.cz>
6798
6799         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6800         get_arg_pointer_save_area.
6801         * expr.c (init_expr): Just clear out rtl.expr.
6802         * function.c (free_after_compilation): Clear out whole RTL structure.
6803         (get_func_frame_size): Merge into ...
6804         (get_frame_size): ... this one.
6805         (assign_stack_local_1): Merge into ...
6806         (assign_stack_local): ... this one.
6807         (expand_function_end): Update call of get_arg_pointer_save_area.
6808         (get_art_pointer_save_area): Remove cfun argument.
6809         * function.h (emit_status): regno_pointer_align does not need length
6810         attribute. Move x_regno_reg_rtx to ...
6811         (regno_reg_rtx): ... new global array.
6812         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6813         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6814         apply_args_value, forced_labels, stack_pointer_delta):
6815         Update accestors.
6816         (struct varasm_status): Move here from varasm.c
6817         (struct rtl_data): New. Move here some fields from struct function.
6818         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6819         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6820         used_temp_slots avail_temp_slots, temp_slot_level,
6821         nonlocal_goto_handler_labels): Update accesstors.
6822         (rtl): New global variable.
6823         (struct function): Move some fileds to rtl_data.
6824         (get_arg_pointer_save_area): Update prototype.
6825         * emit-rtl.c (rtl): Declare.
6826         (regno_reg_rtx): Declare.
6827         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6828         Update.
6829         (gen_reg_rtx): Update.
6830         (init_virtual_regs): Do not tate emit_status argument.
6831         (init_emit): Do not allocate emit.
6832         * varasm.c (varasm_statuc): Move to function.h.
6833         (n_deferred_constatns): Update accestor.
6834         (init_varasm_status): Do not allocate varasm_status.
6835         (force_const_mem, get_pool_size, output_constant_pool): Update.
6836         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6837         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6838
6839 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6840
6841         PR rtl-optimization/35729
6842         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6843         references.
6844
6845 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6846
6847         PR target/32000
6848         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6849         load/store if memory is unaligned.
6850         (*movti_rex64): Likewise.
6851
6852         * config/i386/predicates.md (misaligned_operand): New.
6853
6854 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6855
6856         PR tree-opt/35431
6857         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6858         complex types.
6859
6860 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6861
6862         * config/ia64/constraints.md: Add 'j' constraint.
6863         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6864         (movdi_internal): Likewise.
6865
6866 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6867
6868         PR c/35748
6869         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6870
6871 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6872
6873         PR target/35757
6874         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6875         proper error message for the third argument on blendpd and
6876         blendps.
6877
6878         * config/i386/sse.md (blendbits): New.
6879         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6880
6881 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6882
6883         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6884
6885 2008-03-30  Richard Guenther  <rguenther@suse.de>
6886
6887         PR middle-end/31023
6888         * fold-const.c (fold_sign_changed_comparison): Do leave
6889         conversions to base-types alone.
6890
6891 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6892
6893         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6894         the link register if one altivec register is be saved.
6895
6896 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6897
6898         * final.c (final_scan_insn): Remove if (0) code.
6899
6900 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6901
6902         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6903
6904 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6905
6906         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6907         of V4SFmode to ix86_binary_operator_ok.
6908
6909 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6910
6911         * config/i386/i386.c (override_options): Initialize
6912         ix86_veclib_handler to ix86_veclibabi_svml when
6913         -mveclibabi=svml is used.
6914         (ix86_veclibabi_svml): New function for SVML ABI style
6915         vectorization support.
6916         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6917
6918 2008-03-28  Rafael Espindola  <espindola@google.com>
6919
6920         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6921         (tree_binary_nonnegative_warnv_p): Make it public.
6922         (tree_single_nonnegative_warnv_p): Make it public.
6923         (tree_invalid_nonnegative_warnv_p): Make it public.
6924         (tree_unary_nonzero_warnv_p): Make it public.
6925         (tree_binary_nonzero_warnv_p): Make it public
6926         (tree_single_nonzero_warnv_p): Make it public.
6927         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6928         (extract_range_from_binary_expr): Split the expr argument.
6929         (extract_range_from_unary_expr): Split the expr argument.
6930         (extract_range_from_comparison): Split the expr argument.
6931         (extract_range_from_expr): Use the new aux functions.
6932         (vrp_evaluate_conditional_warnv): Use
6933         vrp_evaluate_conditional_warnv_with_ops.
6934         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6935         (tree_binary_nonzero_warnv_p): Declare.
6936         (tree_single_nonzero_warnv_p): Declare.
6937         (tree_expr_nonzero_warnv_p): Declare.
6938         (tree_unary_nonnegative_warnv_p): Declare.
6939         (tree_binary_nonnegative_warnv_p): Declare.
6940         (tree_single_nonnegative_warnv_p): Declare.
6941         (tree_invalid_nonnegative_warnv_p): Declare.
6942
6943 2008-03-28  Richard Guenther  <rguenther@suse.de>
6944
6945         PR tree-optimization/30317
6946         PR tree-optimization/30911
6947         PR tree-optimization/34793
6948         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6949         (struct assert_locus_d): New member EXPR.
6950         (register_new_assert_for): Add EXPR parameter to support
6951         ASSERT_EXPR <name, expr OP limit>.
6952         (register_edge_assert_for_1): Adjust callers.
6953         (find_assert_locations): Likewise.
6954         (process_assert_insertions_for): Build condition from expression.
6955         (extract_range_from_assert): Handle ASSERT_EXPRs
6956         of the form ASSERT_EXPR <name, expr OP limit>.
6957         (register_edge_assert_for_2): New helper registering
6958         asserts for comparisons.  Recognize range tests of the form
6959         (unsigned)i - CST1 OP CST2.
6960         (register_edge_assert_for_1): Use it.
6961         (register_edge_assert_for): Likewise.
6962         (needs_overflow_infinity): Integer sub-types
6963         do not need overflow infinities.
6964         (vrp_val_is_max): The extreme values of integer sub-types
6965         are those of the base type.
6966         (vrp_val_is_min): Likewise.
6967         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6968         expressions.
6969
6970 2008-03-28  Nick Clifton  <nickc@redhat.com>
6971
6972         PR target/31110
6973         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6974         Return GENERAL_REGS for stack adjustment reloads.
6975
6976 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6977
6978         PR target/31334
6979         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6980         const_vector when all the vectors are constant.
6981
6982 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6983
6984         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6985         comparisons.
6986         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6987         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6988         (scc_sf): New.
6989         (s<code>_sf): Use new scc_sf attribute for opcode names.
6990
6991 2008-03-27  Tom Tromey  <tromey@redhat.com>
6992
6993         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6994         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6995         config/spu/t-spu-elf, config/i386/t-interix,
6996         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6997         config/i386/x-darwin, config/i386/x-mingw32,
6998         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6999         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
7000         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
7001         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
7002         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
7003         config/rs6000/x-darwin, config/rs6000/t-rs6000,
7004         config/score/t-score-elf, config/arm/t-strongarm-pe,
7005         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
7006         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
7007         Revert automatic dependency patch.
7008
7009 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7010
7011         PR target/35657
7012         * config/i386/i386.c (ix86_function_arg_boundary): Align
7013         decimal floating point to its natural boundary.
7014
7015 2008-03-27  Richard Guenther  <rguenther@suse.de>
7016
7017         PR middle-end/35716
7018         * fold-const.c (fold_comparison): Restrict distinct decl
7019         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
7020         solely rely on operand_equal_p.
7021
7022 2008-03-27  Richard Guenther  <rguenther@suse.de>
7023
7024         PR c/32511
7025         * c-common.c (handle_weak_attribute): Reject combination of
7026         weak and inline.
7027
7028 2008-03-27  Richard Guenther  <rguenther@suse.de>
7029
7030         PR tree-optimization/32810
7031         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
7032         conversions from DECL_INITIAL.
7033         (fold_const_aggregate_ref): Likewise from constructor elements.
7034
7035 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
7036
7037         * tree-affine.h (aff_combination_expand): Declare.
7038         (get_inner_reference_aff): Likewise.
7039         * tree-affine.c (aff_combination_expand): Split out from
7040         tree_to_aff_combination_expand.
7041         (get_inner_reference_aff): New function.
7042         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
7043         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
7044         (struct lim_aux_data): sm_done field removed.
7045         (mem_ref_loc_p, mem_ref_locs_p): New types.
7046         (struct mem_ref): Added id, stored, accesses_in_loop,
7047         indep_loop, dep_loop, indep_ref, dep_ref fields.
7048         Removed is_stored, locs and next fields.
7049         (memory_accesses): New variable.
7050         (movement_possibility): Do not allow moving statements
7051         that store to memory.
7052         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
7053         New functions.
7054         (determine_max_movement): For statements with memory references,
7055         find the outermost loop in that the reference is independent.
7056         (move_computations_stmt): Mark the virtual operands for renaming.
7057         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
7058         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
7059         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
7060         add_vop_ref_mapping, create_vop_ref_mapping_loop,
7061         create_vop_ref_mapping, analyze_memory_references,
7062         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
7063         get_all_locs_in_loop, ref_always_accessed_p,
7064         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
7065         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
7066         store_motion_loop, store_motion): New functions.
7067         (struct vop_to_refs_elt): New type.
7068         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
7069         memref_hash, memref_eq, hoist_memory_references): Rewritten.
7070         (schedule_sm): Replaced by...
7071         (execute_sm): ... this.
7072         (determine_lsm_ref, hoist_memory_references,
7073         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
7074         find_more_ref_vops, free_mem_ref, free_mem_refs,
7075         determine_lsm_loop, determine_lsm): Removed.
7076         (tree_ssa_lim_finalize): Free data structures used by store motion.
7077         (tree_ssa_lim): Call analyze_memory_references.  Use
7078         store_motion instead of determine_lsm.
7079
7080 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7081
7082         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
7083         rename tmake_file to m68hc11/t-m68hc11.
7084         (mcore): Set inhibit_libc to true.
7085         * config.host (alpha*-dec-*vms*): Set extra_programs.
7086         (interix3*): Don't use host_xmake_file.
7087         * configure.ac: Let config.gcc override inhibit_libc.
7088         * configure: Regenerate.
7089
7090         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
7091         * config/t-openbsd-thread: Remove commented out lines.
7092         
7093         * config/x-interix: Remove.
7094
7095         * config/m68hc11/t-m68hc11-gas: Rename to...
7096         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
7097
7098         * config/mcore/t-mcore: Remove T_CFLAGS.
7099         * config/mcore/t-mcore-pe: Likewise.
7100
7101 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7102
7103         * configure.ac: Replace custom __GNU_SOURCE test with
7104         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
7105         * aclocal.m4: Regenerate.
7106         * configure: Regenerate.
7107         * config.in: Regenerate.
7108
7109 2008-03-27  Richard Guenther  <rguenther@suse.de>
7110
7111         * fold-const.c (target.h): Include.
7112         (fold_comparison): Fold comparison of addresses of decls
7113         that bind locally or of constants.  Consolidate address folding code.
7114         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
7115         results from fold_binary_to_constant.
7116         (compare_values_warnv): Likewise.
7117
7118 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
7119
7120         PR middle-end/35429
7121         * fold-const.c (fold_truthop): Check for integeral types when folding
7122         a == 0 && b == 0 and a != 0 || b != 0 .
7123
7124 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7125
7126         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7127
7128 2008-03-26  Andreas Schwab  <schwab@suse.de>
7129
7130         * doc/invoke.texi: Fix use of @item vs. @itemx.
7131
7132 2008-03-26  Tom Tromey  <tromey@redhat.com>
7133
7134         * Makefile.in (build/gensupport.o, build/print-rtl.o,
7135         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7136         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7137         build/gencodes.o, build/genconditions.o, build/genconfig.o,
7138         build/genconstants.o, build/genemit.o, build/genextract.o,
7139         build/genflags.o, build/genmddeps.o, build/genopinit.o,
7140         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7141         options.h.
7142
7143 2008-03-26  Richard Guenther  <rguenther@suse.de>
7144
7145         Revert
7146         2008-03-26  Richard Guenther  <rguenther@suse.de>
7147
7148         * fold-const.c (target.h): Include.
7149         (fold_comparison): Fold comparison of addresses of two decls
7150         that bind locally.  Consolidate address folding code.
7151
7152 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7153
7154         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7155         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7156         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7157         dconstsqrt2, dconstthird, dconste and/or dconst10.
7158         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7159         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7160         dconstsqrt2, dconste): Delete.
7161         (init_emit_once): Likewise.  Simplify initializing dconstm1.
7162         Constify variable.
7163         * real.c (get_real_const): New.
7164         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7165         dconstsqrt2, dconste): Delete.
7166         (real_value_const, get_real_const): New.
7167
7168 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7169
7170         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7171
7172         * config/i386/i386.c (ix86_function_arg_boundary): Check
7173         BIGGEST_ALIGNMENT instead of 128.
7174         (setup_incoming_varargs_64): Likewise.
7175
7176 2008-03-26  Tom Tromey  <tromey@redhat.com>
7177
7178         * Makefile.in (DEPFILES): Add missing '/'.
7179
7180 2008-03-26  Richard Guenther  <rguenther@suse.de>
7181
7182         * fold-const.c (target.h): Include.
7183         (fold_comparison): Fold comparison of addresses of two decls
7184         that bind locally.  Consolidate address folding code.
7185
7186 2008-03-26  Nick Clifton  <nickc@redhat.com>
7187
7188         PR target/31232
7189         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7190         not allow INT+INT as a legitimate addressing mode.
7191
7192 2008-03-26  Richard Guenther  <rguenther@suse.de>
7193
7194         * tree-flow.h (widen_bitfield): Remove declaration.
7195         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7196         (widen_bitfield): Remove function.
7197         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7198         code.
7199
7200 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7201
7202         PR target/31558
7203         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7204         error_mark_node's.
7205
7206 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7207
7208         PR rtl-optimization/35232
7209         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7210         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7211         reg_reloaded_call_part_clobbered here.
7212         (reload_regs_reach_end_p): New function.
7213         (reload_reg_rtx_for_input): New variable.
7214         (reload_reg_rtx_for_output): Likewise.
7215         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7216         when reassigning a pseudo register.  Load reloadreg from 
7217         reload_reg_rtx_for_input, moving the mode and register
7218         calculation to...
7219         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7220         instead of the original when deciding whether an input reload
7221         would be a no-op or whether an output reload can be deleted.
7222         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7223         when setting up new_spill_reg_store.  Load it from
7224         reload_reg_rtx_for_output, moving the mode and register
7225         calculation to...
7226         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7227         instead of the original when deciding whether an output reload
7228         would be a no-op.  Do the same when modifying insn notes.
7229         Use rtx_equal_p instead of == to compare the registers.
7230         (inherit_piecemeal_p): Take a mode and two register numbers
7231         as argument.
7232         (emit_reload_insns): Clear new_spill_reg_store for every hard
7233         register in the reload register.  Remove spill registers
7234         from reg_reloaded_valid before considering whether to record
7235         inheritance information for them.  Use reload_reg_rtx_for_output
7236         instead of reg_rtx when recording output reloads.  Use
7237         reload_reg_rtx_for_input instead of reg_rtx when recording
7238         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7239         at the same time as setting reg_reloaded_valid.
7240         (delete_output_reload): Add a new_reload_reg parameter and use it
7241         instead of rld[j].reg_rtx.
7242         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7243         calls accordingly.
7244
7245 2008-03-25  Tom Tromey  <tromey@redhat.com>
7246
7247         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7248         (build/genattr.o): Likewise.
7249         (build/genattrtab.o): Likewise.
7250         (build/gencodes.o): Likewise.
7251         (build/genconfig.o): Likewise.
7252         (build/genconstants.o): Likewise.
7253         (build/genemit.o): Likewise.
7254         (build/genextract.o): Likewise.
7255         (build/genflags.o): Likewise.
7256
7257 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7258         
7259         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7260         instead of size_int for integer types.
7261         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7262         to match type of MINUS_EXPR.
7263         
7264 2008-03-25  Tom Tromey  <tromey@redhat.com>
7265
7266         * configure: Rebuilt.
7267         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7268         Makefile.
7269
7270 2008-03-25  Tom Tromey  <tromey@redhat.com>
7271
7272         * config/x-solaris (host-solaris.o): Update.
7273         * config/x-linux (host-linux.o): Update.
7274         * config/x-hpux (host-hpux.o): Update.
7275         * config/x-darwin (host-darwin.o): Update.
7276         * config/v850/t-v850e (v850-c.o): Update.
7277         * config/v850/t-v850 (v850-c.o): Update.
7278         * config/t-vxworks (vxworks.o): Update.
7279         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7280         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7281         * config/spu/t-spu-elf (spu-c.o): Update.
7282         (spu.o): Remove.
7283         * config/sh/t-symbian (sh-c.o): Update.
7284         (symbian.o): Update.
7285         * config/sh/t-sh (sh-c.o): Update.
7286         * config/score/t-score-elf (score7.o, score3.o): Update.
7287         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7288         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7289         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7290         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7291         (rs6000.o): Remove.
7292         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7293         * config/m32c/t-m32c (m32c-pragma.o): Update.
7294         * config/ia64/t-ia64 (ia64-c.o): Update.
7295         * config/i386/x-mingw32 (host-mingw32.o): Update.
7296         * config/i386/x-i386 (driver-i386.o): Update.
7297         * config/i386/x-darwin (host-i386-darwin.o): Update.
7298         * config/i386/x-cygwin (host-cygwin.o): Update.
7299         * config/i386/t-nwld (nwld.o): Update.
7300         * config/i386/t-netware (netware.o): Update.
7301         * config/i386/t-interix (winnt.o): Update.
7302         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7303         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7304         msformat-c.o): Update.
7305         * config/bfin/t-bfin-linux (generated_files): Add
7306         linux-sysroot-suffix.h.
7307         * config/arm/t-wince-pe (pe.o): Update.
7308         * config/arm/t-strongarm-pe (pe.o): Update.
7309         * config/arm/t-pe (pe.o): Update.
7310         * config/arm/t-arm (arm-c.o): Update.
7311         * doc/install.texi (Prerequisites): Require make 3.80.
7312         * Makefile.in: Remove .o targets.
7313         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7314         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7315         (simple_generated_h, simple_generated_c): Move earlier.
7316         (generated_files): New variable.
7317         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7318         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7319         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7320         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7321         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7322         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7323         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7324         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7325         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7326         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7327         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7328         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7329         (.c.o): Remove.
7330         (COMPILE.base, COMPILE): New variables.
7331         (%.o): New pattern rule.
7332         (ALL_HOST_OBJS): New variable.
7333         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7334         (dummy-checksum.o, cc1-checksum.o): Remove.
7335         (DRIVER_SHLIB): New variable.
7336         (DRIVER_DEFINES): Use it.
7337         (gencondmd.c): Move out of build/.
7338         (s-conditions): Update.
7339         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7340         (ALL_BUILD_OBJS): Likewise.
7341         (build/%.o): Use BUILDCOMPILE.
7342         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7343         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7344         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7345         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7346         build/genconfig.o, build/genconstants.o, build/genemit.o,
7347         build/genextract.o, build/genflags.o, build/genmddeps.o,
7348         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7349         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7350         build/gen-protos.o, build/scan.o, build/fix-header.o,
7351         build/scan-decls.o): Simplify.
7352         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7353         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7354         prefix.o, toplev.o): Reduce to variable setting.
7355         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7356         ($(out_object_file), gcc-options.o): New targets.
7357         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7358         * configure: Rebuilt.
7359         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7360         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7361
7362 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7363
7364         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7365         complain when we hit an error, return ERROR_MARK_NODE.
7366
7367 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7368
7369         * config/sh/constraints.md (Pso, Psz): New constraints.
7370         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7371         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7372
7373 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7374
7375         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7376         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7377
7378 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7379
7380         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7381         (prefetch_sh2a): New.   
7382
7383 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7384             Naveen.H.S  <naveen.hs@kpitcummins.com>
7385
7386         * config/sh/constraints.md (I28): New constraint.
7387         * config/sh/sh.c (broken_move): Add support for movi20s.
7388         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7389
7390 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7391             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7392             Naveen.H.S  <naveen.hs@kpitcummins.com>
7393
7394         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7395         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7396         (print_operand): Handle resbank in %@ operand code.
7397         (sh_encode_section_info): New.
7398         (push_regs): Add conditions for resbank.
7399         (sh_expand_epilogue): Likewise.
7400         (sh_insert_attributes): Likewise.
7401         (sh_attribute_table): Likewise.
7402         (sh_handle_resbank_handler_attribute): New.
7403         (sh2a_handle_function_vector_handler_attribute): New.
7404         (sh2a_is_function_vector_call): New.
7405         (sh2a_get_function_vector_number): New.
7406         (sh2a_function_vector_p): New.
7407         (sh_cfun_resbank_handler_p): New.
7408         * config/sh/sh.md (calli): Emit jsr/n if possible.
7409         (calli_tbr_rel): New.
7410         (calli_pcrel): Emit jsr/n if possible.
7411         (return_i): Emit rts/n if possible.
7412         (call_valuei_tbr_rel): New.
7413         (call_valuei_pcrel): Add condition for SH2A target.
7414         (call_value): Likewise.
7415         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7416         (sh2a_get_function_vector_number): Likewise.
7417         (sh2a_is_function_vector_call): Likewise.
7418         * doc/extend.texi: Document TBR relative addressing of SH2A.
7419         (resbank): Add description for SH2A.
7420
7421 2008-03-24  Richard Guenther  <rguenther@suse.de>
7422
7423         PR c/22371
7424         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7425         pointer assignments change conversions according to middle-end rules.
7426         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7427         * configure.ac: Include type checking in yes.
7428         * configure: Regenerate.
7429
7430 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7431
7432         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7433         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7434         
7435 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7436
7437         * gthr-vxworks.h (UNUSED): Define.
7438
7439 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7440
7441         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7442
7443 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7444
7445         * doc/extend.texi (Function Attributes): Add missing comma in the
7446         example of the "alloc_size" attribute.
7447         
7448 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7449
7450         Revert:
7451         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7452
7453         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7454         32bit host.
7455
7456         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7457
7458         PR target/35496
7459         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7460         of the underlying type of a MS bitfield layout to the natural
7461         alignment of the type.
7462
7463         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7464
7465         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7466         to their natural alignment to avoid store forwarding stalls.
7467
7468 2008-03-22  Richard Guenther  <rguenther@suse.de>
7469
7470         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7471         For PHI nodes verify the address is invariant.
7472         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7473         (get_symbol_constant_value): Use is_gimple_min_invariant.
7474         (maybe_fold_stmt_indirect): Likewise.
7475
7476 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7477
7478         PR rtl-optimization/33927
7479         * Makefile.in (dse.o): Depend on $(TM_P_H).
7480         * expr.h (extract_low_bits): Declare.
7481         * expmed.c (extract_low_bits): New function.
7482         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7483         * dse.c: Include tm_p.h.
7484         (find_shift_sequence): Remove the read_reg argument and return the
7485         read value.  Emit the instructions instead of returning them.
7486         Iterate on new_mode rather than calculating it each time.
7487         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7488         source to NEW_MODE and extract_low_bits to convert the shifted
7489         value to READ_MODE.
7490         (replace_read): Allow the load and store to have different mode
7491         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7492         or extraction instructions before trying the replacement.  Update
7493         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7494
7495 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7496
7497         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7498         to their natural alignment to avoid store forwarding stalls.
7499
7500 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7501
7502         PR target/27946
7503         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7504         encouraging but not allowing gprs for input;
7505         change the input constraint to !f#r.
7506         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7507         gprs for output;
7508         change the output constraint to !f#r.
7509
7510 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7511
7512         PR target/13958
7513         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7514         corresponding post-reload splitters.
7515         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7516         when x87 FP math is selected.
7517         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7518         New function prototype.
7519         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7520         unreachable function to ease macroization of insn patterns.
7521
7522 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7523
7524         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7525         reference dumps if ddr is NULL or dependence is unknown.
7526
7527 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7528
7529         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7530         unsigned extension into account.
7531         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7532         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7533         Do computations on a scratch register.
7534
7535 2008-03-21  Richard Guenther  <rguenther@suse.de>
7536
7537         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7538         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7539         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7540         * tree-ssa-dom.c (record_equality): Likewise.
7541         * tree-inline.c (copy_body_r): Likewise.
7542         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7543         TREE_INVARIANT.
7544
7545 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7546
7547         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7548         as 'delete_unused' argument.
7549
7550 2008-03-20  Richard Guenther  <rguenther@suse.de>
7551
7552         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7553         special casing of constant qualifiers.
7554         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7555         care about them in general.
7556         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7557         regardless of their type.
7558         (fold_stmt_r): Forcefully fold *& if we end up with that.
7559
7560 2008-03-20  Paul Brook  <paul@codesourcery.com>
7561
7562         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7563         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7564         linker flags.
7565         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7566         definition.
7567         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7568         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7569
7570 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7571
7572         * common.opt (Wmudflap): New option.
7573         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7574         (mx_register_decls): Likewise.
7575         (mudflap_finish_file): Likewise.
7576         * doc/invoke.texi: Document -Wno-mudflap.
7577
7578 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7579
7580         * c-format.c (replace_format_name_to_system_name): New.
7581         (cmp_attribs): New.
7582         (convert_format_name_to_system_name): New.
7583         (decode_format_attr): Add use of convert_format_name_to_system_name.
7584         (format_types_orig): Add gnu_ prefix to names.
7585         (check_format_info_main): Special treating of \0 escaped names for
7586         supporting multi-character format specifiers as I32, I64.
7587         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7588         (gnu_target_overrides_format_attributes): New.
7589         * c-format.h: Add structure target_ovr_attr to hold
7590         system specific formatter names.
7591         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7592         msformat-c.o file to c_target_objs and cxx_target_objs.
7593         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7594         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7595         (TARGET_N_FORMAT_TYPES): New.
7596         * config/i386/msformat-c.c: New.
7597         * config/i386/t-cygming: Add build rule for msformat-c.o.
7598         * doc/extend.texi: Add new format names gnu_* and ms_* and
7599         further details.
7600         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7601
7602 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7603
7604         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7605         optimizations turned on under -O3.
7606         (ftree-vectorize): Add that the flag is turned on with -O3.
7607
7608 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7609
7610         * regmove.c (try_auto_increment): Fix spelling error in comment.
7611         * final.c (final_scan_insn): Likewise.
7612
7613 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7614
7615         PR target/14552
7616         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7617         allocator preferences for "y" and "r" class registers.
7618         ("*mov<mode>_internal"): Ditto.
7619         ("*movv2sf_internal_rex64"): Ditto.
7620         ("*movv2sf_internal"): Ditto.
7621
7622 2008-03-19  Michael Matz  <matz@suse.de>
7623
7624         PR middle-end/35616
7625         * calls.c (expand_call): Check overlap of arguments with call
7626         address for sibcalls.
7627
7628 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7629
7630         PR target/35496
7631         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7632         of the underlying type of a MS bitfield layout to the natural
7633         alignment of the type.
7634
7635 2008-03-19  Jan Hubicka  <jh@suse.cz>
7636
7637         PR other/35094
7638         * toplev.c (decode_d_option): Handle all CPP flags.
7639         * tree-vrp.c: Update tree_pass descriptors.
7640         * regrename.c: Update tree_pass descriptors.
7641         * fwprop.c: Update tree_pass descriptors.
7642         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7643         * tree-into-ssa.c: Update tree_pass descriptors.
7644         * tree-dump.c: Update tree_pass descriptors.
7645         * tree-complex.c: Update tree_pass descriptors.
7646         * tree-dump.h: Update tree_pass descriptors.
7647         * see.c: Update tree_pass descriptors.
7648         * cgraphbuild.c: Update tree_pass descriptors.
7649         * tracer.c: Update tree_pass descriptors.
7650         * tree-loop-distribution.c: Update tree_pass descriptors.
7651         * cgraph.c: Update tree_pass descriptors.
7652         * postreload-gcse.c: Update tree_pass descriptors.
7653         * postreload.c: Update tree_pass descriptors.
7654         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7655         * tree-tailcall.c: Update tree_pass descriptors.
7656         * tree-pass.h (tree_opt_pass): Rename to ...
7657         (opt_pass) ... this one; add "type" field and remove letter field.
7658         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7659         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7660         all_lowering_passes): Update declaration.
7661         * ipa-cp.c: Update tree_pass descriptors.
7662         * final.c: Update tree_pass descriptors.
7663         * omp-low.c: Update tree_pass descriptors.
7664         * tree-ssa-dse.c: Update tree_pass descriptors.
7665         * ipa-reference.c: Update tree_pass descriptors.
7666         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7667         * auto-inc-dec.c: Update tree_pass descriptors.
7668         * reorg.c: Update tree_pass descriptors.
7669         * cgraphunit.c: Update tree_pass descriptors.
7670         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7671         * tree-ssa-ccp.c: Update tree_pass descriptors.
7672         * df-core.c: Update tree_pass descriptors.
7673         * mode-switching.c: Update tree_pass descriptors.
7674         * tree-nomudflap.c: Update tree_pass descriptors.
7675         * modulo-sched.c: Update tree_pass descriptors.
7676         * ipa-pure-const.c: Update tree_pass descriptors.
7677         * cse.c: Update tree_pass descriptors.
7678         * web.c: Update tree_pass descriptors.
7679         * tree-stdarg.c: Update tree_pass descriptors.
7680         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7681         * tree-ssa-dom.c: Update tree_pass descriptors.
7682         * tree-nrv.c: Update tree_pass descriptors.
7683         * tree-ssa-alias.c: Update tree_pass descriptors.
7684         * loop-init.c: Update tree_pass descriptors.
7685         * gimple-low.c: Update tree_pass descriptors.
7686         * ipa-inline.c: Update tree_pass descriptors.
7687         * tree-ssa-sink.c: Update tree_pass descriptors.
7688         * global.c: Update tree_pass descriptors.
7689         * ifcvt.c: Update tree_pass descriptors.
7690         * jump.c: Update tree_pass descriptors.
7691         * predict.c: Update tree_pass descriptors.
7692         * tree-ssa-loop.c: Update tree_pass descriptors.
7693         * recog.c: Update tree_pass descriptors.
7694         * dse.c: Update tree_pass descriptors.
7695         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7696         * tree-eh.c: Update tree_pass descriptors.
7697         * regmove.c: Update tree_pass descriptors.
7698         * local-alloc.c
7699         * function.c: Update tree_pass descriptors.
7700         * tree-vectorizer.c: Update tree_pass descriptors.
7701         * gcse.c: Update tree_pass descriptors.
7702         * ipa-type-escape.c: Update tree_pass descriptors.
7703         * tree-if-conv.c: Update tree_pass descriptors.
7704         * init-regs.c: Update tree_pass descriptors.
7705         * ipa.c: Update tree_pass descriptors.
7706         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7707         * rtl-factoring.c: Update tree_pass descriptors.
7708         * lower-subreg.c: Update tree_pass descriptors.
7709         * bt-load.c: Update tree_pass descriptors.
7710         * tree-dfa.c: Update tree_pass descriptors.
7711         * except.c: Update tree_pass descriptors.
7712         * emit-rtl.c: Update tree_pass descriptors.
7713         * cfgexpand.c: Update tree_pass descriptors.
7714         * tree-cfgcleanup.c: Update tree_pass descriptors.
7715         * cfgcleanup.c: Update tree_pass descriptors.
7716         * tree-ssa-pre.c: Update tree_pass descriptors.
7717         * tree-sra.c: Update tree_pass descriptors.
7718         * tree-mudflap.c: Update tree_pass descriptors.
7719         * tree-ssa-copy.c: Update tree_pass descriptors.
7720         * cfglayout.c: Update tree_pass descriptors.
7721         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7722         * tree-ssa-dce.c: Update tree_pass descriptors.
7723         * tree-ssa.c: Update tree_pass descriptors.
7724         * regclass.c: Update tree_pass descriptors.
7725         * integrate.c: Update tree_pass descriptors.
7726         * tree-optimize.c: Update tree_pass descriptors.
7727         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7728         * tree-object-size.c: Update tree_pass descriptors.
7729         * combine.c: Update tree_pass descriptors.
7730         * tree-outof-ssa.c: Update tree_pass descriptors.
7731         * bb-reorder.c: Update tree_pass descriptors.
7732         * stack-ptr-mod.c: Update tree_pass descriptors.
7733         * var-tracking.c: Update tree_pass descriptors.
7734         * tree-profile.c: Update tree_pass descriptors.
7735         * tree-vect-generic.c: Update tree_pass descriptors.
7736         * reg-stack.c: Update tree_pass descriptors.
7737         * sched-rgn.c: Update tree_pass descriptors.
7738         * tree-ssa-structalias.c: Update tree_pass descriptors.
7739         * tree-cfg.c: Update tree_pass descriptors.
7740         * passes.c (current_pass): Update declaration.
7741         (finish_optimization_passes): Update.
7742         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7743         (register_one_dump_file, register_dump_files_1, next_pass_1):
7744         Update arguments.
7745         (init_optimization_passes): Update handling of new types.
7746         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7747         * ipa-struct-reorg.c: Update tree_pass descriptors.
7748         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7749         * combine-stack-adj.c: Update tree_pass descriptors.
7750         * cfgrtl.c: Update tree_pass descriptors.
7751         * dce.c: Update tree_pass descriptors.
7752         * tree-ssanames.c: Update tree_pass descriptors.
7753
7754 2008-03-19  Richard Guenther  <rguenther@suse.de>
7755
7756         PR middle-end/35609
7757         * tree-ssa.c (walk_data): New structure.
7758         (warn_uninitialized_var): If not always_executed warn with "maybe"
7759         instead of "is".
7760         (execute_early_warn_uninitialized): Compute post-dominators.
7761         Initialize always_executed before processing each basic block.
7762
7763 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7764
7765         PR target/35504
7766         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7767         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7768
7769 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7770
7771         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7772
7773 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7774
7775         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7776         is true.
7777         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7778         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7779         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7780         target after ignore has been set, and move there also the commputation
7781         of subtarget and original_target.
7782         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7783         (LANG_HOOKS_INITIALIZER): Remove it.
7784         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7785
7786 2008-03-18  Richard Guenther  <rguenther@suse.de>
7787
7788         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7789         found an expression with constants, note that in the VN for the lhs.
7790         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7791         fold them to constants if possible.  Run cleanup_cfg if done so.
7792         (execute_pre): Return todo.
7793         (do_pre): Likewise.
7794         (execute_fre): Likewise.
7795         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7796         of constants.
7797         (get_prop_source_stmt): Look through pointer conversions.
7798
7799 2008-03-18  Jan Hubicka  <jh@suse.cz>
7800
7801         * tree-pretty-print.c: Include predict.h.
7802         (dump_generic_node): Dump predictor.
7803         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7804         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7805         * gimple-low.c (lower_stmt): Likewise.
7806         * expr.c (expand_expr_real): Likewise.
7807         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7808         them.
7809         (build_predict_expr, build_predict_expr): New.
7810         * predict.h (predictor_name, build_predict_expr): Update.
7811         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7812         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7813         * predict.def (PRED_CONTINUE): Update hitrate.
7814         * tree.def (PREDICT_EXPR): Define.
7815         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7816         do not handle BIND_EXPR.
7817         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7818         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7819         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7820         operands.
7821
7822 2008-03-18  Michael Matz  <matz@suse.de>
7823
7824         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7825
7826 2008-03-18  Richard Guenther  <rguenther@suse.de>
7827
7828         * tree-gimple.h (is_gimple_invariant_address): Declare.
7829         (is_gimple_constant): Likewise.
7830         * tree-gimple.c (is_gimple_constant): New function.
7831         (is_gimple_invariant_address): Likewise.
7832         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7833         and is_gimple_invariant_address.
7834         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7835         previous change.
7836         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7837         an addressable base.
7838
7839 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7840
7841         PR middle-end/35611
7842         * gimplify.c (gimplify_expr): Gimplify second operand of
7843         OMP_ATOMIC_LOAD.
7844
7845 2008-03-17  Richard Guenther  <rguenther@suse.de>
7846
7847         PR tree-optimization/19637
7848         * fold-const.c (fold_unary): Remove restrictions of removing
7849         intermediate pointer-conversions (P2)(P1)P0.
7850         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7851         conversion to void pointer.
7852         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7853
7854 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7855
7856         PR debug/31510
7857         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7858         emulated thread local variables.
7859
7860 2008-03-16  Richard Guenther  <rguenther@suse.de>
7861
7862         PR middle-end/35607
7863         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7864         expand TREE_INVARIANT operations that are not gimple invariant.
7865
7866 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7867
7868         * doc/extend.texi (Alignment): Say that the ABI controls
7869         the __alignof__ for non-strict-alignment targets rather
7870         than being a recommendation.
7871
7872 2008-03-15  Paul Brook  <paul@codesourcery.com>
7873
7874         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7875         annotations.
7876         (arm_output_fn_unwind): Mark functions that can not be unwound.
7877
7878 2008-03-15  Paul Brook  <paul@codesourcery.com>
7879
7880         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7881         extension instructions.
7882
7883 2008-03-15  Richard Guenther  <rguenther@suse.de>
7884
7885         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7886         and fold constant aggregate refs.
7887         (fold_const_aggregate_ref): Handle string constants
7888         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7889         (evaluate_stmt): Simplify now that ccp_fold folds constant
7890         aggregate refs.
7891
7892 2008-03-15  Paul Brook  <paul@codesourcery.com>
7893
7894         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7895         (extzv): Use gen_extzv_t2.
7896         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7897
7898 2008-03-15  Richard Guenther  <rguenther@suse.de>
7899
7900         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7901         (fold_const_aggregate_ref): Likewise.
7902         (get_value): Return NULL if we don't have any values.
7903         (ccp_finalize): Set const_val to NULL after freeing it.
7904         * tree-flow.h (get_symbol_constant_value): Declare.
7905         (fold_const_aggregate_ref): Likewise.
7906         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7907
7908 2008-03-15  Richard Guenther  <rguenther@suse.de>
7909
7910         PR middle-end/35593
7911         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7912         to not produce negative array indices if not allowed.  Add
7913         parameter to indicate that.
7914         (maybe_fold_offset_to_component_ref): Allow negative array
7915         indices only for the first member of a structure.
7916         (maybe_fold_offset_to_reference): Allow negative array indices.
7917         (maybe_fold_stmt_addition): Likewise.
7918
7919 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7920             Anatoly Sokolov <aesok@post.ru>
7921
7922         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7923         (avr_arch): Add ARCH_AVR6.
7924         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7925         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7926         instead of fixed value 2.
7927         (print_operand_address): Use gs() asm specifier instead of pm().
7928         (avr_assemble_integer): (Ditto.).
7929         (avr_output_addr_vec_elt): (Ditto.).
7930         (print_operand): Handle "!" code.
7931         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7932         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7933         (AVR_HAVE_EIJMP_EICALL): Define.
7934         (AVR_3_BYTE_PC): Redefine.
7935         (AVR_2_BYTE_PC): (Ditto.).
7936         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7937         (LINK_SPEC): Add atmega2560 and atmega2561.
7938         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7939         (crtm2561.o).
7940         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7941         for 3 byte PC devices.
7942         (call_value_insn): (Ditto.).
7943         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7944         (indirect_jump): Use only for for 2 byte PC devices.
7945         (*tablejump): (Ditto.).
7946         (*indirect_jump_avr6): Add insn.
7947         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7948         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7949         instead of ijmp for 3 byte PC devices.
7950         (__tablejump2__): (Ditto.).
7951         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7952         (MULITLIB_DIRNAMES): (Ditto.). 
7953         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7954
7955 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7956
7957         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7958         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7959         ("mmx_psadbw"): Use V1DI mode for operand 0.
7960         * config/i386/i386-modes.def (V1SI): New vector mode.
7961         * config/i386/i386.c (struct builtin_description)
7962         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7963         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7964         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7965         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7966         v1di_ftype_v8qi_v8qi type.
7967         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7968
7969         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7970         __builtin_ia32_pmuludq]: Fix the mode of return value.
7971
7972 2008-03-15  Richard Guenther  <rguenther@suse.de>
7973
7974         PR middle-end/35595
7975         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7976         being a PHI_NODE.
7977
7978 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7979         
7980         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7981         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7982         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7983         unless TARGET_SERIALIZE_VOLATILE is enabled.
7984         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7985         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7986         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7987
7988 2008-03-14  Richard Guenther  <rguenther@suse.de>
7989
7990         PR tree-optimization/34172
7991         * tree-flow.h (refs_may_alias_p): Declare.
7992         (get_single_def_stmt): Likewise.
7993         (get_single_def_stmt_from_phi): Likewise.
7994         (get_single_def_stmt_with_phi): Likewise.
7995         * tree-dfa.c (refs_may_alias_p): New function.
7996         (get_single_def_stmt): Likewise.
7997         (get_single_def_stmt_from_phi): Likewise.
7998         (get_single_def_stmt_with_phi): Likewise.
7999         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
8000         (vn_reference_lookup_1): New helper function.
8001         (vn_reference_lookup): Walk the virtual use-def chain to
8002         continue searching for a match if the def does not alias the
8003         reference we are looking for.
8004
8005 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
8006
8007         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
8008         archive and Perzl.  Update The Written Word listing.
8009
8010 2008-03-14  Richard Guenther  <rguenther@suse.de>
8011
8012         PR tree-optimization/34043
8013         PR tree-optimization/33989
8014         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
8015         when doing FRE.
8016         (bitmap_find_leader): Use extra argument to verify dominance
8017         relationship inside a basic-block.
8018         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
8019         (find_leader_in_sets): Adjust.
8020         (create_component_ref_by_pieces): Take extra argument for
8021         dominance check, handle lookup failures.
8022         (find_or_generate_expression): Likewise.
8023         (create_expression_by_pieces): Likewise.
8024         (insert_into_preds_of_block): Adjust.
8025         (create_value_expr_from): If asked for, verify all operands
8026         are in the blocks AVAIL_OUT set.
8027         (make_values_for_stmt): Check for SSA_NAMEs that are life
8028         over an abnormal edge.
8029         (compute_avail): Remove such check.
8030         (do_SCCVN_insertion): New function.
8031         (eliminate): If we do not find a leader suitable for replacement
8032         insert a replacement expression from SCCVN if available.
8033         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
8034         (struct vn_ssa_aux): Add needs_insertion flag.
8035         * tree-ssa-sccvn.c (may_insert): New global flag.
8036         (copy_reference_ops_from_ref): Value-number union member access
8037         based on its size, not type and member if insertion is allowed.
8038         (visit_reference_op_load): For a weak match from union type
8039         punning lookup a view-converted value and insert a SSA_NAME
8040         for that value if that is not found.
8041         (visit_use): Make dumps shorter.  Do not disallow value numbering
8042         SSA_NAMEs that are life over an abnormal edge to constants.
8043         (free_scc_vn): Release inserted SSA_NAMEs.
8044         (run_scc_vn): New flag to specify whether insertion is allowed.
8045         Process SSA_NAMEs in forward order.
8046         * tree-ssa-loop-im.c (for_each_index): Handle invariant
8047         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
8048         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
8049         pointer type to/from integral types that do not change the
8050         precision to regular conversions.
8051
8052 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8053
8054         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8055         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8056         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
8057         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
8058         input arguments and the mode of return value.  Built-in functions
8059         that operate on whole 64-bit MMX register now use V1DI mode.
8060
8061 2008-03-13  Alon Dayan  <alond@il.ibm.com>
8062             Olga Golovanevsky  <olga@il.ibm.com>
8063
8064         PR tree-optimization/35041
8065         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
8066         to locate the right position in a statement.
8067
8068 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8069
8070         PR target/34000
8071         PR target/35553
8072         * config/i386/xmmintrin.h:  Change all static inline functions to
8073         extern inline and add __gnu_inline__ attribute.
8074         * config/i386/bmintrin.h: Ditto.
8075         * config/i386/smmintrin.h: Ditto.
8076         * config/i386/tmmintrin.h: Ditto.
8077         * config/i386/mmintrin-common.h: Ditto.
8078         * config/i386/ammintrin.h: Ditto.
8079         * config/i386/emmintrin.h: Ditto.
8080         * config/i386/pmmintrin.h: Ditto.
8081         * config/i386/mmintrin.h: Ditto.
8082         * config/i386/mm3dnow.h: Ditto.
8083
8084 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
8085
8086         PR middle-end/35185
8087         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
8088         (lower_omp_2): New function.
8089         (lower_omp_1, lower_omp): Rewritten.
8090
8091 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
8092
8093         PR 35054
8094         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
8095         with the phrase "Microsoft Windows compilers".
8096         (Push/Pop Macro Pragmas): New subsection. Document
8097         #pragma push_macro and pragma pop_macro.
8098
8099 2008-03-12  Paul Brook  <paul@codesourcery.com>
8100
8101         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
8102
8103 2008-03-12  Paul Brook  <paul@codesourcery.com>
8104
8105         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
8106         (thumb2_alusi3_short): Exclude PLUS and MINUS.
8107         (thumb2_addsi_shortim): Rename ...
8108         (thumb2_addsi_short): ... to this.  Allow register operands.
8109         (thumb2_subsi_short): New pattern.
8110         (thumb2_one_cmplsi2_short,
8111         thumb2_negsi2_short): New patterns and peepholes.
8112
8113 2008-03-12  Paul Brook  <paul@codesourcery.com>
8114
8115         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
8116
8117 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
8118
8119         * config/i386/i386.md (int_cond): New code iterator.
8120         (fp_cond): Ditto.
8121         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8122         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8123         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8124         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8125         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8126         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8127         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8128         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8129
8130 2008-03-12  Paul Brook  <paul@codesourcery.com>
8131
8132         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8133         instead of {arm,thumb}_compute_save_reg_mask.
8134         (output_return_instruction): Ditto.
8135         (thumb_unexpanded_epilogue): Ditto.
8136         (thumb1_expand_prologue): Ditto.
8137         (thumb1_output_function_prologue): Ditto.
8138         (arm_set_return_address): Ditto.
8139         (thumb_set_return_address): Ditto.
8140         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
8141         regs to achieve stack alignment.
8142         (thumb1_compute_save_reg_mask): Fix compiler warning.
8143         (arm_output_epilogue): Use offsets->saved_regs_mask.
8144         Adjust stack pointer by poping call clobered registers.
8145         (arm_expand_prologue): Use offsets->saved_regs_mask.
8146         Adjust stack pointer by pushing extra registers.
8147         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
8148
8149 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
8150
8151         PR tree-opt/35422
8152         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8153         conversion to the operands of a multiplication.
8154
8155 2008-03-12  Richard Guenther  <rguenther@suse.de>
8156
8157         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8158         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8159         * timevar.def (TV_TREE_PHIPROP): Add.
8160         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8161         pass description.  Use TV_TREE_PHIPROP.
8162         * tree-ssa-forwprop.c: Remove phiprop code.
8163
8164 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8165
8166         PR middle-end/35549
8167         * omp-low.c (maybe_lookup_decl): Constify first argument.
8168         (use_pointer_for_field): Change last argument from bool to
8169         omp_context *.  Disallow shared copy-in/out in nested
8170         parallel if decl is shared in outer parallel too.
8171         (build_outer_var_ref, scan_sharing_clauses,
8172         lower_rec_input_clauses, lower_copyprivate_clauses,
8173         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8174
8175 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8176             Ira Rosen  <irar@il.ibm.com>
8177
8178         * tree-vectorizer.c (free_stmt_vec_info): New function.
8179         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8180         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8181         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8182         * tree-vect-transform.c (vectorizable_conversion): Free
8183         vec_oprnds0 if it was allocated.
8184         (vect_permute_store_chain): Remove unused VECs.
8185         (vectorizable_store): Free VECs that are allocated in the..
8186         function.
8187         (vect_transform_strided_load, vectorizable_load): Likewise.
8188         (vect_remove_stores): Simplify the code.
8189         (vect_transform_loop): Move code to vect_remove_stores().
8190         Call vect_remove_stores() and free_stmt_vec_info().
8191
8192 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8193
8194         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8195         TARGET_HPUX.  Revise comment.
8196         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8197         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8198         Use sr4 variant of `be' instruction when not generating PIC code.
8199         (attr_length_call): Adjust for above change.
8200
8201 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8202
8203         * ipa-reference.c (static_execute): Remove module_statics_const and
8204         associated setting code.
8205
8206 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8207
8208         PR target/35540
8209         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8210         predicate for operand 1.
8211         (paritysi2_cmp): Use register_operand predicate for operand 2.
8212         Use earlyclobber modifier for operand 1.  Remove support for
8213         memory operands.
8214         (paritydi2_cmp): Use register_operand predicate for operand 3.
8215         Use earlyclobber modifier for operand 1.  Remove support for
8216         memory operands.
8217
8218 2008-03-11  Paul Brook  <paul@codesourcery.com>
8219             Vladimir Prus  <vladimir@codesourcery.com>
8220
8221         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8222         (arm_compute_save_reg0_reg12_mask): Always
8223         check if register 11 must be saved.  Always safe hard frame pointer
8224         when frame_pointer_needeed.
8225         (arm_compute_save_reg_mask): Save IP and PC
8226         only with apcs frames.
8227         (arm_output_epilogue): Adjust Thumb2 codepath to
8228         be also invoked and work for ARM non-apcs frames.
8229         (arm_expand_prologue): Don't bother saving IP
8230         for non-apcs frame, since it's not clobbered by
8231         prologue code.  Implement non-apcs frame
8232         layout.
8233
8234 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8235
8236         PR rtl-optimization/35281
8237         * expr.c (convert_move): Use a new pseudo for the intermediate
8238         from_mode->word_mode result.
8239
8240 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8241
8242         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8243         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8244         * toplev.c (compile_file): Don't call it.
8245
8246 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8247
8248         PR middle-end/35526
8249         * expr.c (store_expr): Call emit_block_move if the mode
8250         of "temp" RTX is BLKmode.
8251
8252 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8253             Richard Guenther  <rguenther@suse.de>
8254
8255         PR tree-optimization/31358
8256         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8257         the step with a NULL_TREE.
8258         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8259         to sizetype if type is a pointer type.
8260         (add_candidate_1): Don't convert the base and step to
8261         the generic type if the orginal type is a pointer type.
8262         (add_iv_value_candidates): Use sizetype for the step
8263         if type is a pointer type.
8264         (cand_value_at): Likewise.
8265         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8266         for pointer types.
8267         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8268         Don't convert the tem affine to the type.
8269         (add_elt_to_tree): Use sizetype for the step if a pointer.
8270         Use POINTER_PLUS_EXPR for pointers.
8271         (aff_combination_to_tree): Use sizetype for the step if a
8272         pointer.
8273
8274 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8275
8276         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8277         Remove commutativity hint.
8278
8279 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8280
8281         PR c/35438
8282         PR c/35439
8283         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8284         errorneous type.  Check that v is a VAR_DECL.
8285
8286         PR middle-end/35099
8287         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8288
8289 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8290
8291         PR tree-optimization/35494
8292         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8293         may be overriden at link and run time.
8294
8295 2008-03-10  Richard Guenther  <rguenther@suse.de>
8296
8297         PR tree-optimization/34677
8298         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8299         (poolify_tree): Likewise.
8300         (modify_expr_template): Likewise.
8301         (poolify_modify_stmt): Likewise.
8302         (insert_fake_stores): Handle all component-ref style stores
8303         in addition to INDIRECT_REF.  Also handle complex types.
8304         Do not poolify the inserted load.
8305         (realify_fake_stores): Do not rebuild the tree but only
8306         make it a SSA_NAME copy.
8307         (init_pre): Remove initialzation of modify_expr_template.
8308         Do not allocate modify_expr_node_pool.
8309         (fini_pre): Do not free modify_expr_node_pool.
8310
8311 2008-03-10  Paul Brook  <paul@codesourcery.com>
8312
8313         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8314         to avoid conflicts.
8315
8316 2008-03-10  Paul Brook  <paul@codesourcery.com>
8317             Mark Shinwell  <shinwell@codesourcery.com>
8318
8319         * config/arm/cortex-r4.md: New.
8320         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8321         insn attributes.
8322         * config/arm/arm.md: Include cortex-r4.md.
8323         (insn): Add smmls, sdiv and udiv values.
8324         (generic_sched): Don't use generic scheduling for Cortex-R4.
8325         (arm_issue_rate): New function.
8326         (TARGET_SCHED_ISSUE_RATE): Define.
8327
8328 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8329
8330         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8331
8332 2008-03-10  Richard Guenther  <rguenther@suse.de>
8333
8334         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8335         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8336
8337 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8338
8339         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8340         Set default to true.
8341
8342 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8343
8344         * c.opt (Wsynth): Deprecate.
8345         * doc/invoke.texi (Option Summary, Warning Options): Document
8346         -Wno-format-contains-nul.
8347
8348 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8349
8350         PR target/35496
8351         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8352         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8353
8354 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8355
8356         * config/rs6000/rs6000.c (builtin_description): Rename vector
8357         left shift operations.
8358         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8359         (altivec_vsl<VI_char>): Rename to ...
8360         (ashl<mode>3): ... new name.
8361         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8362         gen_ashlv4si3.
8363         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8364
8365 2008-03-08  Richard Guenther  <rguenther@suse.de>
8366
8367         * coverage.h (tree_coverage_counter_addr): Declare.
8368         * coverage.c (tree_coverage_counter_addr): New function.
8369         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8370         before using again.
8371         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8372         (tree_gen_one_value_profiler): Likewise.
8373         (tree_gen_ic_profiler): Likewise.
8374         (tree_gen_average_profiler): Likewise.
8375         (tree_gen_ior_profiler): Likewise.
8376
8377 2008-03-08  Richard Guenther  <rguenther@suse.de>
8378
8379         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8380         (vn_binary_op_insert): Likewise.
8381         (vn_unary_op_lookup): Likewise.
8382         (vn_unary_op_insert): Likewise.
8383         (vn_nary_op_lookup): Declare.
8384         (vn_nary_op_insert): Likewise.
8385         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8386         and binary hashes, use a single obstack for unary_op_pool
8387         and binary_op_pool.
8388         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8389         a single struct vn_nary_op_s.  Store tree code length and
8390         a variable number of operands.
8391         (struct vn_reference_op_struct): Remove unused op2.
8392         (vn_reference_op_eq): Do not compare op2.
8393         (vn_reference_op_compute_hash): Do not compute hash of op2.
8394         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8395         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8396         with vn_nary_op_compute_hash.
8397         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8398         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8399         vn_nary_op_lookup.
8400         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8401         vn_nary_op_insert.
8402         (visit_unary_op): Call nary functions.
8403         (visit_binary_op): Likewise.
8404         (process_scc): Adjust for struct vn_tables_s changes.
8405         (allocate_vn_table): Likewise.
8406         (free_vn_table): Likewise.
8407         * tree-vn.c (vn_add): Call nary functions.
8408         (vn_lookup): Likewise.
8409
8410 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8411
8412         PR target/35498
8413         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8414         wdst back after sync_compare_and_swapqhi_internal.
8415
8416 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8417
8418         PR target/22152
8419         * config/i386/i386-modes.def (V1DI): New vector mode.
8420         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8421         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8422         (MMXMODE248): Ditto.
8423         (MMXMODE): Add V1DI mode.
8424         (mmxvecsize): Change DI mode to V1DI mode.
8425         ("mov<mode>): Use MMXMODEI8 mode iterator.
8426         ("*mov<mode>_internal_rex64"): Ditto.
8427         ("*mov<mode>_internal"): Ditto.
8428         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8429         ("mmx_sub<mode>3"): Ditto.
8430         ("mmx_adddi3"): Remove insn pattern.
8431         ("mmx_subdi3"): Ditto.
8432         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8433         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8434         ("mmx_ashl<mode>3"): Ditto.
8435         ("mmx_lshrdi3"): Remove insn pattern.
8436         ("mmx_ashldi3"): Ditto.
8437         * config/i386/i386.c (classify_argument): Handle V1DImode.
8438         (function_arg_advance_32): Ditto.
8439         (function_arg_32): Ditto.
8440         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8441         mmx_addv1di3 insn pattern.
8442         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8443         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8444         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8445         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8446         Remove definitions of built-in functions.
8447         (V1DI_type_node): New node.
8448         (v1di_ftype_v1di_int): Ditto.
8449         (v1di_ftype_v1di_v1di): Ditto.
8450         (v2si_ftype_v2si_si): Ditto.
8451         (v4hi_ftype_v4hi_di): Remove node.
8452         (v2si_ftype_v2si_di): Ditto.
8453         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8454         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8455         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8456         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8457         Add new builtins using def_builtin_const.
8458         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8459         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8460         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8461         * config/i386/mmintrin.h (__v1di): New typedef.
8462         (_mm_add_si64): Cast arguments to __v1di type.
8463         (_mm_sub_si64): Ditto.
8464         (_mm_sll_pi16): Cast __count to __v4hi type.
8465         (_mm_sll_pi32): Cast __count to __v2si type.
8466         (_mm_sll_si64): Cast arguments to __v1di type.
8467         (_mm_srl_pi16): Cast __count to __v4hi type.
8468         (_mm_srl_pi32): Cast __count to __v2si type.
8469         (_mm_srl_si64): Cast arguments to __v1di type.
8470         (_mm_sra_pi16): Cast __count to __v4hi type.
8471         (_mm_sra_pi32): Cast __count to __v2si type.
8472         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8473         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8474         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8475         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8476         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8477         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8478         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8479         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8480         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8481         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8482         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8483         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8484
8485 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8486
8487         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8488
8489 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8490
8491         PR target/35373
8492         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8493         reg+const addressing for Altivec modes.  Don't generate reg+reg
8494         addressing for TFmode or TDmode quantities.
8495
8496 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8497
8498         * c-common.c (vector_types_convertible_p): Call langhook
8499         instead of comptypes.
8500
8501 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8502
8503         PR tree-opt/35402
8504         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8505         integral and scalar float variables which have a
8506         NULL DECL_INITIAL.
8507
8508 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8509
8510         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8511         dwarf_register_span hook when emitting unwind information for
8512         register-to-memory saves.
8513         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8514         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8515
8516 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8517
8518         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8519         for the same VAR_DECL.
8520
8521 2008-03-06  Tom Tromey  <tromey@redhat.com>
8522
8523         * treelang: Delete.
8524         * doc/standards.texi (Standards): Don't mention treelang.
8525         * doc/invoke.texi (Overall Options): Don't mention treelang.
8526         * doc/install.texi (Prerequisites): Don't mention bison or
8527         treelang.
8528         (Configuration): Don't mention treelang.
8529         (Building): Likewise.
8530         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8531
8532 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8533
8534         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8535         word-extractions out of a multi-word object.
8536
8537 2008-03-06  Richard Guenther  <rguenther@suse.de>
8538
8539         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8540         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8541         result type and precision.
8542         * expr.c (get_inner_reference): Set unsignedp based on the result
8543         type of BIT_FIELD_REF.
8544         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8545         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8546         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8547         for BIT_FIELD_REF.
8548         (sra_build_assignment): Likewise.
8549         (sra_build_elt_assignment): Likewise.
8550         (sra_explode_bitfield_assignment): Likewise.
8551         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8552         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8553         set BIT_FIELD_REF_UNSIGNED.
8554         (vectorizable_load): Likewise.
8555
8556 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8557
8558         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8559         at bb start.
8560
8561 2008-03-06  Richard Guenther  <rguenther@suse.de>
8562
8563         * alias.c (struct alias_set_entry): Move has_zero_child field
8564         to pack with alias_set.
8565
8566 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8567
8568         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8569         32bit host.
8570
8571 2008-03-05  Ian Lance Taylor  <iant@google.com>
8572
8573         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8574
8575 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8576
8577         * fwprop.c (update_df): Support width and offset parameters of
8578         df_ref_create.
8579         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8580         global_conflicts): Change DF_REF_EXTRACT to either
8581         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8582         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8583         * df-scan.c (df_ref_record, df_defs_record,
8584         df_ref_create_structure, df_def_record_1, df_uses_record,
8585         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8586         df_bb_refs_collect, df_entry_block_defs_collect,
8587         df_exit_block_uses_collect): Support new width and offset fields.
8588         (ref_extract_pool): New storage pool.
8589         (df_free_ref): New function.
8590         (df_reg_chain_unlink, df_free_collection_rec,
8591         df_sort_and_compress_refs): Call df_free_ref.
8592         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8593         of df_ref_extract.
8594         (df_ref_create_structure): Allocate df_ref_extract if offset and
8595         width fields are used.
8596         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8597         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8598         and SIGN_EXTRACT.
8599         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8600         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8601         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8602         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8603         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8604         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8605         (df_ref_extract): New structure.
8606         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8607         (df_ref_create): Add width and offset parameters.
8608         
8609 2008-03-05  Richard Guenther  <rguenther@suse.de>
8610
8611         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8612         Use ranges_overlap_p.
8613         (offset_overlaps_with_access): Rename
8614         to ranges_overlap_p and move ...
8615         * tree-flow-inline.h (ranges_overlap_p): ... here.
8616
8617         * tree.h (get_inner_reference, handled_component_p): Update
8618         comments.
8619
8620         * tree.h (record_component_aliases, get_alias_set,
8621         alias_sets_conflict_p, alias_sets_must_conflict_p,
8622         objects_must_conflict_p): Move declarations ...
8623         * alias.h (record_component_aliases, get_alias_set,
8624         alias_sets_conflict_p, alias_sets_must_conflict_p,
8625         objects_must_conflict_p): ... here.
8626         Include coretypes.h.
8627         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8628
8629 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8630
8631         * cfg.c: Include tree-flow.h.
8632         (remove_edge_raw): Call redirect_edge_var_map_clear.
8633         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8634         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8635         (redirect_edge_var_map_result): New.
8636         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8637         PENDING_STMT use with redirect_edge_var_map_*.
8638         * tree-ssa.c (edge_var_maps): New definition.
8639         (redirect_edge_var_map_add): New.
8640         (redirect_edge_var_map_clear): New.
8641         (redirect_edge_var_map_dup): New.
8642         (redirect_edge_var_map_vector): New.
8643         (redirect_edge_var_map_destroy): New.
8644         (ssa_redirect_edge): Replace PENDING_STMT use with
8645         redirect_edge_var_map_*.
8646         (flush_pending_stmts): Same.
8647         (delete_tree_ssa): Destroy edge var map.
8648         * tree-flow.h (struct _edge_var_map): New.
8649         Define edge_var_map vector type.
8650         Declare redirect_edge_var_map_* prototypes.
8651         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8652         * tree-cfg.c (reinstall_phi_args): Replace
8653         PENDING_STMT use with redirect_edge_var_map_*.
8654
8655 2008-03-05  Richard Guenther  <rguenther@suse.de>
8656
8657         PR tree-optimization/35472
8658         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8659         whose single use_stmt has a overlapping set of loaded and
8660         stored symbols as that use_stmt might be a noop assignment then.
8661
8662 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8663
8664         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8665
8666 2008-03-05  Richard Guenther  <rguenther@suse.de>
8667
8668         PR c++/35336
8669         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8670         should be constants.
8671         * tree-cfg.c (verify_expr): Verify it.
8672         * fold-const.c (fold_truthop): Remove code generating
8673         BIT_FIELD_REFs of structure bases.
8674         (fold_binary): Likewise.
8675         (fold_ternary): Position and size of BIT_FIELD_REFs are
8676         always host integers.
8677         (make_bit_field_ref): Remove.
8678         (optimize_bit_field_compare): Remove.
8679         (all_ones_mask_p): Remove.
8680
8681 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8682
8683         PR gcc/33009
8684         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8685         (split_block_and_df_analyze): New. Split basic block and rebuild
8686         dataflow.
8687         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8688         SPLIT_BLOCK.
8689         (split_pattern_seq): Likewise.
8690         (erase_matching_seqs): Likewise.
8691         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8692
8693 2008-03-04  Geoff Keating  <geoffk@apple.com>
8694
8695         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8696         declaration and code.
8697         (tree_invalid_nonnegative_warnv_p): Likewise.
8698
8699 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8700
8701         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8702         examples.  Truncate option-names then causing overfull hbox.
8703
8704 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8705
8706         PR target/35222
8707         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8708         on hpux10.
8709         * configure: Rebuilt.
8710
8711 2008-03-04  Rafael Espindola  <espindola@google.com>
8712
8713         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8714         (tree_unary_nonnegative_warnv_p): New.
8715         (tree_binary_nonnegative_warnv_p): New.
8716         (tree_single_nonnegative_warnv_p): New.
8717         (tree_invalid_nonnegative_warnv_p): New.
8718         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8719
8720 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8721
8722         PR 28322
8723         * opts.c (handle_option): Postpone 'unknown option' errors only for
8724         warning options.
8725
8726 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8727
8728         PR target/35453
8729         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8730         (_SIDD_XXX): This.
8731
8732 2008-03-04  Rafael Espindola  <espindola@google.com>
8733
8734         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8735         (tree_binary_nonzero_warnv_p): New.
8736         (tree_single_nonzero_warnv_p): New.
8737         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8738
8739 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8740
8741         PR middle-end/35456
8742         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8743         transformations for modes that have signed zeros.
8744         * ifcvt.c (noce_try_abs): Ditto.
8745
8746 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8747
8748         * config/i386/i386.c (override_options): Force
8749         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8750
8751 2008-03-04  Jan Hubicka  <jh@suse.cz>
8752
8753         PR c++/35262
8754         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8755         in last commit.
8756
8757 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8758
8759         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8760         label to probe the stack.
8761
8762 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8763
8764         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8765         (__gthr_win32_mutex_destroy): Declare.
8766         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8767         __gthr_win32_mutex_destroy.
8768         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8769
8770 2008-03-03  Jan Hubicka  <jh@suse.cz>
8771
8772         PR c++/35262
8773         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8774         aggressive on inlining cold calls.
8775
8776 2008-03-03  Richard Guenther  <rguenther@suse.de>
8777
8778         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8779         struct copies into the expression table.
8780         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8781         (try_to_simplify): Likewise.
8782         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8783         integral and pointer arguments which do not change the
8784         precision to NOP_EXPRs.
8785         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8786         VIEW_CONVERT_EXPR case.
8787
8788 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8789
8790         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8791         defined in a loop at depth 0 is invariant.
8792         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8793         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8794         be called at loop depth 0.
8795
8796 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8797
8798         PR driver/35420
8799         * gcc.c (process_command): Update copyright notice dates.
8800         * gcov.c (print_version): Likewise.
8801         * gcov-dump.c (print_version): Likewise.
8802         * mips-tfile.c (main): Likewise.
8803         * mips-tdump.c (main): Likewise.
8804
8805 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8806
8807         PR 24924
8808         * c-common.c (flag_permissive): Delete.
8809         (constant_expression_warnings): Check flags first.
8810         (constant_expression_error): New.
8811         * c-common.h (flag_permissive): Delete.
8812         (constant_expression_error): Declare.
8813         * flags.h (flag_permissive): Declare. Update description.
8814         * diagnostic.c (pedwarn): Update.
8815         (permerror): New.
8816         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8817         (permissive_error_kind): New.
8818         * toplev.c (flag_permissive): Define. Update description.
8819         * toplev.h (permissive_error_kind): Declare.
8820         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8821         (pedwarn_c90): Use pedantic_warning_kind.
8822         * c-opts.c (c_common_post_options): flag_permissive does not affect
8823         flag_pedantic_errors.
8824
8825 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8826
8827         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8828         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8829         __absvsi2, __absvDI2): Use unsigned arithmetic.
8830
8831 2008-03-02  Andi Kleen  <ak@suse.de>
8832             Richard Guenther  <rguenther@suse.de>
8833
8834         * struct-equiv.c: Remove file.
8835         * cfg_cleanup.c (condjump_equiv_p): Remove.
8836         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8837         (struct-equiv.o): Remove rule.
8838         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8839         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8840         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8841
8842 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8843
8844         * ifcvt.c (noce_process_if_block): Try to handle only the then
8845         block if the else block exists but isn't suitable.
8846
8847 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8848
8849         PR gcc/35063
8850         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8851         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8852         regression from previous patch.
8853
8854 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8855
8856         PR gcc/35063
8857         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8858         implemented.
8859         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8860         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8861         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8862         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8863         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8864         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8865         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8866         (__gthread_mutex_destroy_function): Rename to
8867         __gthread_mutex_destroy.
8868         * gthr-dce.h (__gthread_mutex_destroy): Call
8869         pthread_mutex_destroy.
8870         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8871         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8872         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8873
8874 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8875
8876         * df-scan.c (df_ref_chain_change_bb): Simplify.
8877         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8878         set_block_for_insn if there's any change.
8879         * df.h ((df_insn_change_bb): Fix prototype.
8880         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8881         df_insn_change_bb, don't call set_block_for_insn.
8882         * emit-rtl.c (reorder_insns): Likewise.
8883         * haifa-sched.c (move_insn): Likewise.
8884
8885 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8886
8887         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8888
8889 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8890
8891         * tree-flow-inline.h (next_readonly_imm_use): Return
8892         NULL_USE_OPERAND_P after the end.
8893
8894 2008-03-01  Richard Guenther  <rguenther@suse.de>
8895
8896         PR tree-optimization/35411
8897         * tree-sra.c (sra_build_assignment): Split conversion to
8898         final type to a separate statement if we are not assigning
8899         to a register.
8900
8901 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8902
8903         * fold-const.c (fold_convertible_p): Correct the logic to follow
8904         that in fold_convert().
8905
8906 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8907
8908         PR c++/35315
8909         * tree-inline.c (build_duplicate_type): When we make a
8910         duplicate type, make it unique in the canonical types system.
8911
8912 2008-02-29  Tom Tromey  <tromey@redhat.com>
8913
8914         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8915         input_file_stack_history, input_file_stack_restored): Remove.
8916         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8917         * input.h (struct file_stack): Remove.
8918         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8919         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8920         Likewise.
8921         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8922         type.
8923         (diagnostic_last_module_changed): Add 'map' argument.
8924         (diagnostic_set_last_function): Likewise.
8925         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8926         line map, not input_file_stack.
8927         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8928
8929 2008-02-29  Paul Brook  <paul@codesourcery.com>
8930
8931         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8932
8933 2008-02-29  Paul Brook  <paul@codesourcery.com>
8934
8935         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8936
8937 2008-02-29  Richard Guenther  <rguenther@suse.de>
8938
8939         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8940         vn_lookup_or_add.
8941         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8942         value for comparing for a store match.
8943         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8944         (try_to_simplify): Do not do a full-blown reference lookup.
8945
8946 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8947
8948         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8949         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8950
8951         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8952
8953 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8954
8955         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8956         strides against cache sizes.
8957
8958 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8959
8960         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8961         constant to fpul.
8962
8963 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8964
8965         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8966         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8967         is smaller than the original promoted value.
8968         (simplify_subreg): If OP is a SUBREG, try to preserve its
8969         SUBREG_PROMOTED_VAR_P information.
8970
8971 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8972
8973         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8974         (VN_INFO_GET): Allocate new objects on the obstack.
8975         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8976         for rpo_numbers_temp, for consistency.
8977         (free_scc_vn): Free the obstack.
8978
8979 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8980
8981         * doc/invoke.texi: Document -ftree-loop-distribution.
8982         * tree-loop-distribution.c: New.
8983         * tree-pass.h (pass_loop_distribution): New.
8984         * graphds.h (struct graph): Add htab_t indices.
8985         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8986         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8987         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8988         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8989         * tree-data-ref.c (debug_data_dependence_relations): New.
8990         (dump_data_dependence_relation): Also print data references.
8991         (free_data_ref): Extern.
8992         (same_access_functions): Moved...
8993         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8994         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8995         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8996         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8997         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8998         (stmts_from_loop): Skip LABEL_EXPR.
8999         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
9000         New.
9001         (build_rdg): Initialize rdg->indices htab.
9002         (free_rdg, stores_from_loop, ref_base_address,
9003         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
9004         have_similar_memory_accesses_1, ref_base_address_1,
9005         remove_similar_memory_refs): New.
9006         * tree-data-ref.h: Depend on tree-chrec.h.
9007         (debug_data_dependence_relations, free_data_ref): Declared.
9008         (same_access_functions): ... here.
9009         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
9010         New.
9011         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
9012         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
9013         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
9014         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9015         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
9016         rdg_vertex_for_stmt): Declared.
9017         (struct rdg_edge): Add level.
9018         (RDGE_LEVEL): New.
9019         (free_rdg, stores_from_loop, remove_similar_memory_refs,
9020         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
9021         Declared.
9022         (rdg_has_similar_memory_accesses): New.
9023         * tree-vect-analyze.c: Remove unused static decls.
9024         * lambda.h (dependence_level): New.
9025         * common.opt (ftree-loop-distribution): New.
9026         * tree-flow.h (mark_virtual_ops_in_bb, 
9027         slpeel_tree_duplicate_loop_to_edge_cfg,
9028         rename_variables_in_loop): Declared.
9029         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
9030         (OBJS-common): Add tree-loop-distribution.o.
9031         (tree-loop-distribution.o): New rule.
9032         * tree-cfg.c (mark_virtual_ops_in_bb): New.
9033         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
9034         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
9035
9036 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
9037
9038         PR target/33963
9039         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
9040         other than structures and unions.
9041
9042 2008-02-28  Richard Guenther  <rguenther@suse.de>
9043
9044         Revert:
9045         2008-02-26  Richard Guenther  <rguenther@suse.de>
9046
9047         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9048         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9049         (lookup_decl_from_uid): Declare.
9050         (remove_decl_from_map): Likewise.
9051         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9052         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9053         (decl_for_uid_map): New global hashtable mapping DECL_UID
9054         to the decl tree.
9055         (init_ttree): Allocate it.
9056         (insert_decl_to_uid_decl_map): New helper function.
9057         (make_node_stat): Insert new decls into the map.
9058         (copy_node_stat): Likewise.
9059         (lookup_decl_from_uid): New function.
9060         (remove_decl_from_map): Likewise.
9061         (print_decl_for_uid_map_statistics): New helper.
9062         (dump_tree_statistics): Call it.
9063
9064         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9065         (referenced_var_iterator): Adjust.
9066         (FOR_EACH_REFERENCED_VAR): Adjust.
9067         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9068         (num_referenced_vars): Adjust.
9069         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9070         (first_referenced_var): Remove.
9071         (end_referenced_vars_p): Likewise.
9072         (next_referenced_var): Likewise.
9073         (referenced_var_iterator_set): New helper function.
9074         * tree-dfa.c (referenced_var_lookup): Adjust.
9075         (referenced_var_check_and_insert): Likewise.
9076         (remove_referenced_var): Likewise.
9077         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9078         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9079         (verify_call_clobbering): Likewise.
9080         (verify_memory_partitions): Likewise.
9081         (init_tree_ssa): Allocate bitmap instead of hashtable for
9082         referenced_vars.
9083         (delete_tree_ssa): Adjust.
9084         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9085         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9086         (compute_tag_properties): Likewise.
9087         (set_initial_properties): Likewise.
9088         (find_partition_for): Likewise.
9089         (update_reference_counts): Likewise.
9090         (dump_may_aliases_for): Likewise.
9091         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9092         (add_call_clobber_ops): Likewise.
9093         (add_call_read_ops): Likewise.
9094         (get_asm_expr_operands): Likewise.
9095         * tree-into-ssa.c (dump_decl_set): Likewise.
9096         (update_ssa): Likewise.
9097         * tree-sra.c (scan_function): Likewise.
9098         (decide_instantiations): Likewise.
9099         (scalarize_parms): Likewise.
9100         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9101         (dsa_named_for): Likewise.
9102         * tree-ssa-structalias.c (update_alias_info): Likewise.
9103         (merge_smts_into): Likewise.
9104
9105 2008-02-27  David Daney  <ddaney@avtrex.com>
9106
9107         PR target/34409
9108         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
9109         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
9110         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
9111         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
9112         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
9113
9114 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
9115
9116         PR target/25477
9117         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9118         (BUILT_IN_NEXTTOWARD): Remove.
9119         (BUILT_IN_NEXTTOWARDF): Ditto.
9120         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9121         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
9122
9123 2008-02-27  Tom Tromey  <tromey@redhat.com>
9124
9125         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9126         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9127
9128 2008-02-27  Jan Beulich  <jbeulich@novell.com>
9129
9130         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9131         update the respective field on newdecl.
9132
9133 2008-02-27  Revital Eres  <eres@il.ibm.com>
9134
9135         PR rtl-optimization/34999
9136         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9137         crossing edges that ends with a call insn.
9138         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9139         call insn and clear the EDGE_CROSSING flag of the crossing edge
9140         when fixing fallthru edges.
9141
9142 2008-02-27  Richard Guenther  <rguenther@suse.de>
9143
9144         PR middle-end/35390
9145         * fold-const.c (fold_unary): Return the correct argument,
9146         converted to the result type.
9147
9148 2008-02-27  Richard Guenther  <rguenther@suse.de>
9149
9150         PR middle-end/34971
9151         * expr.c (expand_expr_real_1): Assert on rotates that operate
9152         on partial modes.
9153         * fold-const.c (fold_binary): Use the types precision, not the
9154         bitsize of the mode if folding rotate expressions.  Build rotates
9155         only for full modes.
9156
9157 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
9158
9159         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9160         and CPP_PRAGMA_EOL.
9161         * c-pragma.c (pragma_ns_name): New typedef.
9162         (registered_pp_pragmas): New variable.
9163         (c_pp_lookup_pragma): New function.
9164         (c_register_pragma_1): If flag_preprocess_only, do nothing
9165         for non-expanded pragmas, for expanded ones push pragma's
9166         namespace and name into registered_pp_pragmas vector.
9167         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9168         flag_preprocess_only, don't register GCC pch_preprocess
9169         pragma if flag_preprocess_only.
9170         * c-opts.c (c_common_init): Call init_pragma even if
9171         flag_preprocess_only.
9172         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9173         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9174         cpp_register_pragma if flag_preprocess_only.
9175
9176 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9177
9178         PR c/28800
9179         * c-parser.c (c_parser_translation_unit): Warn for empty
9180         translation unit, not empty source file.
9181
9182 2008-02-26  Paul Brook  <paul@codesourcery.com>
9183
9184         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9185         operand for Thumb-2.
9186         * config/arm/arm.h (reg_class): Add CORE_REGS.
9187         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9188         (BASE_REG_CLASS): Use CORE_REGS.
9189         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9190         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9191         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9192         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9193         ARM_REGNO_OK_FOR_INDEX_P.
9194         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9195         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9196         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9197         (ldm/stm peepholes): Ditto.
9198         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9199         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9200         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9201         * config/arm/constraints.md: Enable "k" constraint on ARM.
9202
9203 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9204
9205         * config/rs6000/rs6000.c: Annotate cache line size field in all
9206         instances of struct processor_costs.
9207
9208 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9209
9210         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9211         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9212         jump_bypass): New counters.
9213         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9214         * dce.c (gate_ud_dce): Same.
9215         (gate_fast_dce): Same.
9216         * dse.c (gate_dse1): New function.
9217         (gate_dse2): New function.
9218         (gate_dse): Merge results of new gate functions.
9219         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9220         (gate_handle_jump_bypass): Add dbg_cnt.
9221         (gate_handle_gcse): Add dbg_cnt.
9222         * ifcvt.c (gate_handle_if_conversion): Same.
9223         (gate_handle_if_after_combine): Same.
9224         (gate_handle_if_after_reload): Same.
9225         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9226
9227 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9228
9229         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9230         line sizes.
9231         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9232
9233 2008-02-26  Jason Merrill  <jason@redhat.com>
9234
9235         PR c++/35315
9236         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9237         alone if it's the naming decl for the type's main variant.
9238
9239 2008-02-26  Tom Tromey  <tromey@redhat.com>
9240
9241         * system.h (USE_MAPPED_LOCATION): Poison.
9242         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9243         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9244         (make_goto_expr_edges): Likewise.
9245         (remove_bb): Likewise.
9246         (execute_warn_function_return): Likewise.
9247         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9248         location_t.
9249         * c-common.c (fname_decl): Remove old location code.
9250         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9251         location code.
9252         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9253         variant.
9254         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9255         (gen_rtx_ASM_INPUT): Likewise.
9256         (gen_rtx_ASM_INPUT_loc): Likewise.
9257         (get_rtx_asm_OPERANDS): Remove.
9258         * cfglayout.c (insn_locators_alloc): Remove old location code.
9259         (set_curr_insn_source_location): Likewise.
9260         (curr_insn_locator): Likewise.
9261         * print-tree.c (print_node): Remove old location code.
9262         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9263         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9264         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9265         location_from_locus.
9266         (construct_exit_block): Remove old location code.
9267         * emit-rtl.c (force_next_line_note): Remove old location code.
9268         * profile.c (branch_prob): Remove old location code.
9269         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9270         LOC_LINE): Remove old-location variants.
9271         * langhooks.c (lhd_print_error_function): Remove old location
9272         code.
9273         * configure, config.in: Rebuilt.
9274         * configure.ac (--enable-mapped-location): Remove.
9275         * c-decl.c (c_init_decl_processing): Remove old location code.
9276         (finish_function): Likewise.
9277         * recog.c (decode_asm_operands): Remove old location code.
9278         * c-pch.c (c_common_read_pch): Remove old location code.
9279         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9280         variants.
9281         * gimple-low.c (lower_function_body): Remove old location code.
9282         * toplev.c (unknown_location): Remove.
9283         (push_srcloc): Remove old-location variant.
9284         (process_options): Remove old location code.
9285         (lang_dependent_init): Likewise.
9286         * input.h (UNKNOWN_LOCATION): Move definition.
9287         (location_t): Undeprecate.
9288         (source_locus): Remove.
9289         (location_from_locus): Remove.
9290         (struct location_s): Remove.
9291         Remove all old-location code.
9292         (input_line, input_filename): Remove.
9293         * final.c (final_scan_insn): Remove old location code.
9294         * diagnostic.c (diagnostic_build_prefix): Remove
9295         USE_MAPPED_LOCATION test.
9296         * tree.h (gimple_stmt) <locus>: Now a location_t.
9297         (tree_exp) <locus>: Likewise.
9298         (DECL_IS_BUILTIN): Remove old-location variant.
9299         (annotate_with_file_line, annotate_with_locus): Likewise.
9300         (expr_locus, set_expr_locus): Update.
9301         * tree.c (build1_stat): Remove old location code.
9302         (last_annotated_node): Remove.
9303         (annotate_with_file_line): Remove old-location variant.
9304         (annotate_with_locus): Likewise.
9305         (expr_location): Remove old location code.
9306         (set_expr_location): Likewise.
9307         (expr_has_location): Likewise.
9308         (expr_locus): Likewise.
9309         (set_expr_locus): Likewise.
9310         (expr_filename): Don't use location_from_locus.
9311         (expr_lineno): Likewise.
9312         * rtl-error.c (location_for_asm): Remove old location code.
9313         * c-lex.c (cb_line_change): Remove old location code.
9314         (fe_file_change): Likewise.
9315         (cb_def_pragma): Likewise.
9316         (c_lex_with_flags): Likewise.
9317         * gengtype.c (do_typedef): Don't special-case location types.
9318         (define_location_structures): Remove.
9319         (main): Don't call define_location_structures.
9320         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9321         code.
9322
9323 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9324
9325         PR 26264
9326         * builtins.def (BUILT_IN_STDARG_START): Remove.
9327         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9328         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9329         * tree-inline.c (inline_forbidden_p_1): Likewise.
9330         
9331 2008-02-26  Richard Guenther  <rguenther@suse.de>
9332
9333         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9334         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9335         (lookup_decl_from_uid): Declare.
9336         (remove_decl_from_map): Likewise.
9337         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9338         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9339         (decl_for_uid_map): New global hashtable mapping DECL_UID
9340         to the decl tree.
9341         (init_ttree): Allocate it.
9342         (insert_decl_to_uid_decl_map): New helper function.
9343         (make_node_stat): Insert new decls into the map.
9344         (copy_node_stat): Likewise.
9345         (lookup_decl_from_uid): New function.
9346         (remove_decl_from_map): Likewise.
9347         (print_decl_for_uid_map_statistics): New helper.
9348         (dump_tree_statistics): Call it.
9349
9350         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9351         (referenced_var_iterator): Adjust.
9352         (FOR_EACH_REFERENCED_VAR): Adjust.
9353         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9354         (num_referenced_vars): Adjust.
9355         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9356         (first_referenced_var): Remove.
9357         (end_referenced_vars_p): Likewise.
9358         (next_referenced_var): Likewise.
9359         (referenced_var_iterator_set): New helper function.
9360         * tree-dfa.c (referenced_var_lookup): Adjust.
9361         (referenced_var_check_and_insert): Likewise.
9362         (remove_referenced_var): Likewise.
9363         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9364         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9365         (verify_call_clobbering): Likewise.
9366         (verify_memory_partitions): Likewise.
9367         (init_tree_ssa): Allocate bitmap instead of hashtable for
9368         referenced_vars.
9369         (delete_tree_ssa): Adjust.
9370         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9371         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9372         (compute_tag_properties): Likewise.
9373         (set_initial_properties): Likewise.
9374         (find_partition_for): Likewise.
9375         (update_reference_counts): Likewise.
9376         (dump_may_aliases_for): Likewise.
9377         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9378         (add_call_clobber_ops): Likewise.
9379         (add_call_read_ops): Likewise.
9380         (get_asm_expr_operands): Likewise.
9381         * tree-into-ssa.c (dump_decl_set): Likewise.
9382         (update_ssa): Likewise.
9383         * tree-sra.c (scan_function): Likewise.
9384         (decide_instantiations): Likewise.
9385         (scalarize_parms): Likewise.
9386         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9387         (dsa_named_for): Likewise.
9388         * tree-ssa-structalias.c (update_alias_info): Likewise.
9389         (merge_smts_into): Likewise.
9390
9391 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9392
9393         PR 34351
9394         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9395         * c-opts.c (c_common_handle_option): Wall enables
9396         Wvolatile-register-var.
9397         * common.opt: Move Wvolatile-register-var to...
9398         * c.opt: ...here.
9399         
9400 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9401
9402         * common.opt (Wlarger-than=): New.
9403         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9404         -Wlarger-than=.
9405         * opts.c (common_handle_option): Handle -Wlarger-than=.
9406         * optc-gen.awk: Likewise.
9407         * opth-gen.awk: Likewise.
9408         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9409         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9410         
9411 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9412
9413         * c-common.c (match_case_to_enum_1): Add appropriate
9414         OPT_W* parameter to warning.
9415         (c_do_switch_warnings): Likewise.
9416         * c-typeck.c (warning_init): Add one more parameter following
9417         'warning' function.
9418         (push_init_level): Update call to warning_init.
9419         (pop_init_level): Likewise.
9420         (add_pending_init): Likewise.
9421         (output_init_element: Likewise.
9422
9423 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9424
9425         PR 28322
9426         * toplev.c (toplev_main): If there are warnings or error, print
9427         errors for ignored options.
9428         * opts.c (ignored_options): New static variable.
9429         (postpone_unknown_option_error): New.
9430         (print_ignored_options): New.
9431         (handle_option): Postpone errors for unknown -Wno-* options.
9432         * opts.h (print_ignored_options): Declare.
9433         
9434 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9435
9436         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9437         to "ghost".
9438
9439 2008-02-25  Richard Guenther  <rguenther@suse.de>
9440
9441         Revert:
9442         2008-02-25  Richard Guenther  <rguenther@suse.de>
9443
9444         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9445         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9446         (lookup_decl_from_uid): Declare.
9447         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9448         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9449         (decl_for_uid_map): New global hashtable mapping DECL_UID
9450         to the decl tree.
9451         (init_ttree): Allocate it.
9452         (insert_decl_to_uid_decl_map): New helper function.
9453         (make_node_stat): Insert new decls into the map.
9454         (copy_node_stat): Likewise.
9455         (lookup_decl_from_uid): New function.
9456         (print_decl_for_uid_map_statistics): New helper.
9457         (dump_tree_statistics): Call it.
9458
9459         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9460         (referenced_var_iterator): Adjust.
9461         (FOR_EACH_REFERENCED_VAR): Adjust.
9462         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9463         (num_referenced_vars): Adjust.
9464         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9465         (first_referenced_var): Remove.
9466         (end_referenced_vars_p): Likewise.
9467         (next_referenced_var): Likewise.
9468         (referenced_var_iterator_set): New helper function.
9469         * tree-dfa.c (referenced_var_lookup): Adjust.
9470         (referenced_var_check_and_insert): Likewise.
9471         (remove_referenced_var): Likewise.
9472         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9473         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9474         (verify_call_clobbering): Likewise.
9475         (verify_memory_partitions): Likewise.
9476         (init_tree_ssa): Allocate bitmap instead of hashtable for
9477         referenced_vars.
9478         (delete_tree_ssa): Adjust.
9479         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9480         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9481         (compute_tag_properties): Likewise.
9482         (set_initial_properties): Likewise.
9483         (find_partition_for): Likewise.
9484         (update_reference_counts): Likewise.
9485         (dump_may_aliases_for): Likewise.
9486         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9487         (add_call_clobber_ops): Likewise.
9488         (add_call_read_ops): Likewise.
9489         (get_asm_expr_operands): Likewise.
9490         * tree-into-ssa.c (dump_decl_set): Likewise.
9491         (update_ssa): Likewise.
9492         * tree-sra.c (scan_function): Likewise.
9493         (decide_instantiations): Likewise.
9494         (scalarize_parms): Likewise.
9495         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9496         (dsa_named_for): Likewise.
9497         * tree-ssa-structalias.c (update_alias_info): Likewise.
9498         (merge_smts_into): Likewise.
9499
9500 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9501
9502         PR fortran/29549
9503         * doc/invoke.texi (-fcx-limited-range): Document new option.
9504         * toplev.c (process_options): Handle -fcx-fortran-rules.
9505         * common.opt: Add documentation for -fcx-fortran-rules.
9506
9507 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9508
9509         PR c/35162
9510         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9511         actual behaviour and C99.
9512         
9513 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9514
9515         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9516         (ASM_CPU_POWER6_SPEC): Likewise.
9517         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9518         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9519         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9520
9521 2008-02-25  Richard Guenther  <rguenther@suse.de>
9522
9523         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9524         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9525         (lookup_decl_from_uid): Declare.
9526         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9527         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9528         (decl_for_uid_map): New global hashtable mapping DECL_UID
9529         to the decl tree.
9530         (init_ttree): Allocate it.
9531         (insert_decl_to_uid_decl_map): New helper function.
9532         (make_node_stat): Insert new decls into the map.
9533         (copy_node_stat): Likewise.
9534         (lookup_decl_from_uid): New function.
9535         (print_decl_for_uid_map_statistics): New helper.
9536         (dump_tree_statistics): Call it.
9537
9538         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9539         (referenced_var_iterator): Adjust.
9540         (FOR_EACH_REFERENCED_VAR): Adjust.
9541         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9542         (num_referenced_vars): Adjust.
9543         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9544         (first_referenced_var): Remove.
9545         (end_referenced_vars_p): Likewise.
9546         (next_referenced_var): Likewise.
9547         (referenced_var_iterator_set): New helper function.
9548         * tree-dfa.c (referenced_var_lookup): Adjust.
9549         (referenced_var_check_and_insert): Likewise.
9550         (remove_referenced_var): Likewise.
9551         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9552         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9553         (verify_call_clobbering): Likewise.
9554         (verify_memory_partitions): Likewise.
9555         (init_tree_ssa): Allocate bitmap instead of hashtable for
9556         referenced_vars.
9557         (delete_tree_ssa): Adjust.
9558         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9559         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9560         (compute_tag_properties): Likewise.
9561         (set_initial_properties): Likewise.
9562         (find_partition_for): Likewise.
9563         (update_reference_counts): Likewise.
9564         (dump_may_aliases_for): Likewise.
9565         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9566         (add_call_clobber_ops): Likewise.
9567         (add_call_read_ops): Likewise.
9568         (get_asm_expr_operands): Likewise.
9569         * tree-into-ssa.c (dump_decl_set): Likewise.
9570         (update_ssa): Likewise.
9571         * tree-sra.c (scan_function): Likewise.
9572         (decide_instantiations): Likewise.
9573         (scalarize_parms): Likewise.
9574         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9575         (dsa_named_for): Likewise.
9576         * tree-ssa-structalias.c (update_alias_info): Likewise.
9577         (merge_smts_into): Likewise.
9578
9579 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9580
9581         PR target/35258
9582         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9583         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9584         * alias.h (nonoverlapping_memrefs_p): Likewise.
9585
9586 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9587
9588         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9589         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9590         __emultls_get_address, __emultls_register_common,
9591         __floatundi?f, and _Unwind_GetIPInfo.
9592         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9593         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9594         (gen_regparm_prefix): Likewise.
9595         (i386_nlm_encode_section_info): Sync with
9596         config/i386/winnt.c:i386_pe_encode_section_info().
9597         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9598         i386_nlm_mangle_decl_assembler_name): New.
9599         (netware_override_options): New.
9600         * config/i386/netware.h (netware_override_options): Declare.
9601         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9602         (i386_nlm_mangle_decl_assembler_name): Declare.
9603         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9604
9605 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9606
9607         PR other/32948
9608         * c-decl.c (grokdeclarator): Remove unused local variables
9609         `typedef_type' and `type_as_written'.
9610         * bb-reorder.c
9611         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9612         unused local variable `has_hot_blocks'.
9613         (fix_crossing_conditional_branches): Remove unused local variable
9614         `prev_bb'.
9615         
9616 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9617
9618         PR middle-end/19984
9619         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9620         using DEF_C99_BUILTIN.
9621         (BUILT_IN_NANF): Ditto.
9622         (BUILT_IN_NANL): Ditto.
9623
9624 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9625             Revital Eres  <eres@il.ibm.com>
9626
9627         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9628         regarding the order of two dependent insns in the same row.
9629
9630 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9631
9632         * stor-layout.c (layout_decl): Do not bump the alignment of a
9633         bit-field to more than byte alignment if it is packed.
9634
9635 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9636
9637         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9638         e300c2 and e300c3.
9639
9640 2008-02-24  Diego Novillo  <dnovillo@google.com>
9641
9642         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9643
9644         PR 33738
9645         * tree-vrp.c (vrp_evaluate_conditional): With
9646         -Wtype-limits, emit a warning when comparing against a
9647         constant outside the natural range of OP0's type.
9648         * c.opt (Wtype-limits): Move ...
9649         * common.opt (Wtype-limits): ... here.
9650
9651 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9652
9653         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9654         * config/rs6000/e300c2c3.md: New file.
9655         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9656         e300c2 and e300c3.
9657         (rs6000_override_options): Add e300c2 and e300c3 cases to
9658         processor_target_table. Do not allow usage of Altivec or Spe
9659         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9660         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9661         * config/rs6000/rs6000.h (processor_type): Add
9662         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9663         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9664         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9665         and ppce300c3. Include e300c2c3.md.
9666
9667 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9668
9669         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9670         instead of TARGET_STRICT_ALIGN.
9671
9672 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9673
9674         * explow.c (memory_address): Assert that the generated address is
9675         valid.
9676
9677 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9678
9679         PR target/25477
9680         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9681         * config/darwin-ppc-ldouble-patch.def: New file.
9682         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9683         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9684         SUBTARGET_INIT_BUILTINS if defined.
9685         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9686         New functions.
9687
9688 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9689
9690         PR rtl-opt/33512
9691         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9692         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9693
9694 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9695
9696         PR pch/35027
9697         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9698         file" warning condtional on -Winvalid-PCH.
9699
9700 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9701
9702         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9703
9704 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9705
9706         PR target/22076
9707         PR target/34256 
9708         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9709         prevent reload from using MMX registers.
9710         (*mov<mode>_internal): Ditto.
9711         (*movv2sf_internal_rex64): Ditto.
9712         (*movv2sf_internal): Ditto.
9713
9714 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9715
9716         PR documentation/31569
9717         * doc/install.texi2html: Use makeinfo --no-number-sections.
9718
9719 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9720
9721         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9722         ensure that we can address an entire entity > 8 bytes.  Don't
9723         generate reg+reg addressing for such data.
9724
9725 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9726
9727         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9728         strings when optimizing for size, unless the target cares about
9729         alignment.
9730
9731 2008-02-22  Tom Tromey  <tromey@redhat.com>
9732
9733         * regclass.c (current_pass): Remove declaration.
9734
9735 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9736
9737         * config/avr/libgcc.S (__RAMPZ__): Define.
9738         (__do_copy_data): Add for devices with 128KB code memory.
9739
9740 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9741
9742         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9743         Use spe_abi.
9744         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9745
9746 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9747
9748         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9749         GENNONACR_REGS.
9750
9751 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9752
9753         PR c/19999
9754         * c-typeck.c (build_binary_op): Warn about floating point
9755         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9756
9757 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9758
9759         PR target/34526
9760         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9761         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9762         add vrsave.
9763         (rs6000_override_options): Set altivec_abi as default, not override,
9764         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9765         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9766         is used; use new member spe_abi.
9767         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9768         spe_abi and altivec_abi.
9769
9770 2008-02-22  Tomas Bily  <tbily@suse.cz>
9771
9772         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9773
9774 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9775
9776         PR bootstrap/35273
9777         * config.build (build_file_translate): Set to `CMD //c' only if
9778         it works.
9779         * Makefile.in (build_file_translate): Improve comment.
9780
9781 2008-02-21  Jan Hubicka  <jh@suse.cz>
9782
9783         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9784         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9785         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9786
9787 2008-02-21  Michael Matz  <matz@suse.de>
9788
9789         PR target/35264
9790         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9791
9792 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9793
9794         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9795         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9796         as insn constraint.
9797         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9798         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9799         SSE_VEC_FLOAT_MODE_P as insn constraint.
9800         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9801         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9802         sse4a_movntdf using MODEF mode iterator.
9803         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9804         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9805         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9806         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9807         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9808         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9809         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9810
9811 2008-02-21  Richard Guenther  <rguenther@suse.de>
9812
9813         * tree.def (PAREN_EXPR): New tree code.
9814         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9815         and PAREN_EXPR.
9816         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9817         * expr.c (expand_expr_real_1): Likewise.
9818         * tree-inline.c (estimate_num_insns_1): Likewise.
9819         * tree-complex.c (expand_complex_move): Likewise.
9820         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9821         as plain x.
9822
9823 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9824
9825         PR target/35225
9826         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9827
9828 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9829
9830         PR target/35190
9831         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9832
9833         * config/sh/sh.c (find_barrier): Don't go past
9834         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9835
9836 2008-02-20  DJ Delorie  <dj@redhat.com>
9837
9838         * config/h8300/h8300.md (insv): Force source operand to be a register.
9839
9840         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9841         as a jump, not as a plain insn.
9842         
9843 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9844
9845         * doc/invoke.texi (Warning Options): Add new option
9846         -Wframe-larger-than=.
9847         (-Wframe-larger-than): Document.
9848
9849         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9850         Add declarations for new option variables.
9851
9852         * final.c (final_start_function): Check the frame size
9853         before emission and issue a Wframe-larger-than warning.
9854
9855         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9856         Add definitions for new option variables.
9857         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9858
9859         * common.opt (Wframe-larger-than=): New option.
9860
9861 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9862
9863         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9864         (<sse>_div<mode>3): Ditto.
9865         (<sse>_vmdiv<mode>3): Ditto.
9866         (<sse>_vmsqrt<mode>2): Ditto.
9867         (*smax<mode>3): Ditto.
9868         (sse5_frcz<mode>2): Ditto.
9869         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9870         as insn constraint.
9871
9872 2008-02-20  Richard Guenther  <rguenther@suse.de>
9873
9874         PR middle-end/35265
9875         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9876         be happy with INTEGRAL_TYPE_P.
9877
9878 2008-02-20  Richard Guenther  <rguenther@suse.de>
9879
9880         * fold-const.c (split_tree): Associate floatig-point expressions
9881         if flag_associative_math is set.
9882
9883 2008-02-20  Richard Guenther  <rguenther@suse.de>
9884
9885         * tree.h (fold_real_zero_addition_p): Declare.
9886         * fold-const.c (fold_real_zero_addition_p): Export.
9887         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9888         floating-point operations with zero and one.
9889
9890 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9891
9892         * doc/install.texi: Correct references to CFLAGS, replacing them
9893         with BOOT_CFLAGS.  Document flags used during bootstrap for
9894         target libraries.
9895                                 
9896 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9897
9898         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9899         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9900         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9901         insn constraint.
9902         (smin<mode>3): Ditto from similar patterns.
9903         (smax<mode>3): Ditto.
9904         (*ieee_smin<mode>3): Ditto.
9905         (*ieee_smax<mode>3): Ditto.
9906         * config/i386/sse.md (sse): New mode attribute.
9907         (mov<mode>): Macroize expander from movv4sf and movv2df using
9908         SSEMODEF2P mode iterator.
9909         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9910         SSE_VEC_FLOAT_MODE_P as insn constraint.
9911         (storent<mode>): Ditto.
9912         (storent<mode>): Macroize expander from storentsf and storentdf using
9913         MODEF mode iterator.
9914         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9915         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9916         (abs<mode>2): Ditto from similar patterns.
9917         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9918         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9919         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9920         (<sse>_vmsqrt<mode>2): Ditto.
9921         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9922         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9923         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9924         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9925         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9926         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9927         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9928         insn constraint.
9929         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9930         iterator and SSE_FLOAT_MODE_P as insn constraint.
9931         (<sse>_ucomi): Ditto from similar patterns.
9932         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9933         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9934         SSE_VEC_FLOAT_MODE_P as insn constraint.
9935         (vcond<mode>): Ditto from similar patterns.
9936         (and<mode>3, *and<mode>3): Ditto.
9937         (<sse>_nand<mode>3): Ditto.
9938         (ior<mode>3, *ior<mode>3): Ditto.
9939         (xor<mode>3, *xor<mode>3): Ditto.
9940         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9941         iterator and SSE_FLOAT_MODE_P as insn constraint.
9942         (*nand<mode>3): Ditto from similar patterns.
9943         (*ior<mode>3): Ditto.
9944         (*xor<mode>3): Ditto.
9945
9946 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9947
9948         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9949         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9950         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9951
9952 2008-02-19  Jan Hubicka  <jh@suse.cz>
9953
9954         * predict.c (tree_bb_level_predictions): Remove variable next
9955         mistakely introduced by previous commit.
9956
9957 2008-02-19  Jan Hubicka  <jh@suse.cz>
9958
9959         * predict.c (predict_paths_leading_to): Rewrite.
9960         (predict_paths_for_bb): New.
9961         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9962
9963 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9964
9965         PR bootstrap/35218
9966         * Makefile.in (build_file_translate): New.
9967         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9968         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9969         * configure.ac (build_file_translate): Substitute it.
9970         * configure: Regenerate.
9971
9972 2008-02-19  Jan Hubicka  <jh@suse.cz>
9973
9974         PR rtl-optimization/34408
9975         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9976         invalid sharing.
9977
9978 2008-02-19  Jan Hubicka  <jh@suse.cz>
9979
9980         PR middle-end/28779
9981         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9982         call_expr.
9983
9984 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9985
9986         PR Ada/35186
9987         * config/i386/i386-modes.def: Revert the last DI alignment
9988         change until Ada people can look into it.
9989
9990 2008-02-19  Nick Clifton  <nickc@redhat.com>
9991
9992         * opts.c (print_specific_help): Fix typo in --help text.
9993
9994 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9995
9996         PR target/35239
9997         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9998         32-bit inline asm without asm alternatives for host GCC < 3.0.
9999
10000 2008-02-19  Richard Guenther  <rguenther@suse.de>
10001
10002         PR tree-optimization/34989
10003         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
10004         Allow propagation to INDIRECT_REF if we can simplify only.
10005
10006 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10007
10008         * c-common.c (warn_for_collisions_1): Use appropriate option when
10009         warning.
10010
10011 2008-02-19  Nick Clifton  <nickc@redhat.com>
10012
10013         PR other/31349
10014         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
10015         (handle_options): Fix indentation.
10016         (print_filtered_help): If no language-specific options were
10017         displayed tell the user how to list all the options supported by
10018         the language's front-end.
10019         (print_specific_help): Fix indentation and remove duplicate line.
10020         (common_handle_option): Handle the -v option.
10021         For --help enable the display of undocumented options if the -v
10022         switch has been included on the command line.
10023         For --help= check for overlaps in the arguments between the option
10024         classes and the language names and issue a warning when they
10025         cannot be disambiguated.
10026         * c.opt (v): Pass on to the common option handler.
10027
10028 2008-02-19  Revital Eres  <eres@il.ibm.com> 
10029
10030         * modulo-sched.c (sms_schedule): Change dump message when
10031         create_ddg function fails.
10032         (try_scheduling_node_in_cycle): Rename row to cycle.
10033         (print_partial_schedule): Rename CYCLE to ROW.
10034
10035 2008-02-19  Christian Bruel  <christian.bruel@st.com>
10036             Zdenek Dvorak  <ook@ucw.cz>
10037
10038         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
10039
10040 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10041
10042         PR target/33555
10043         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
10044         (*x86_movdicc_0_m1_se): Ditto.
10045
10046 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10047
10048         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
10049         (CMPtype): Define as __gcc_CMPtype.
10050         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
10051         (CMPtype): Define as __gcc_CMPtype.
10052
10053 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
10054
10055         Support valgrind 3.3 for --enable-checking=valgrind.
10056         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
10057         here.
10058         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
10059         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
10060         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
10061         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
10062         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
10063         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
10064         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
10065         respectively.
10066         * ggc-zone.c: Similar.
10067         * ggc-page.c: Similar.
10068
10069 2008-02-19  Paul Brook  <paul@codesourcery.com>
10070
10071         PR target/35071
10072         * config/arm/ieee754-df.S: Fix do_it typo.
10073         * config/arm/ieee754-sf.S: Fix do_it typo.
10074
10075 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10076
10077         PR target/35189
10078         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
10079         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
10080         (OPTION_MASK_ISA_SSE_SET): Likewise.
10081         (OPTION_MASK_ISA_SSE2_SET): Likewise.
10082         (OPTION_MASK_ISA_SSE3_SET): Likewise.
10083         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
10084         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
10085         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
10086         (OPTION_MASK_ISA_SSE4_SET): Likewise.
10087         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
10088         (OPTION_MASK_ISA_SSE5_SET): Likewise.
10089         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
10090         (OPTION_MASK_ISA_MMX_UNSET): Updated.
10091         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
10092         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
10093         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
10094         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
10095         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
10096         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
10097         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
10098         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
10099         (OPTION_MASK_ISA_SSE4): Removed.
10100         (ix86_handle_option): Turn on bits in ix86_isa_flags and
10101         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
10102         (override_options): Don't turn on implied SSE/MMX bits in
10103         ix86_isa_flags.
10104
10105 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10106
10107         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10108         32bit host.
10109
10110 2008-02-18  Joey Ye  <joey.ye@intel.com>
10111
10112         PR middle-end/34921
10113         * tree-nested.c (insert_field_into_struct): Set type alignment
10114         to field alignment if the former is less than the latter.
10115
10116 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
10117
10118         * BASE-VER: Set to 4.4.0.
10119
10120 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10121
10122         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10123         * doc/cfg.texi: Likewise.
10124         * doc/extend.texi: Likewise.
10125         * doc/gty.texi: Likewise.
10126         * doc/invoke.texi: Likewise.
10127         * doc/loop.texi: Likewise.
10128         * doc/md.texi: Likewise.
10129         * doc/passes.texi: Likewise.
10130         * doc/rtl.texi: Likewise.
10131         * doc/sourcebuild.texi: Likewise.
10132         * doc/tm.texi: Likewise.
10133         * doc/tree-ssa.texi: Likewise.
10134
10135 2008-02-17  Richard Guenther  <rguenther@suse.de>
10136
10137         PR middle-end/35227
10138         * tree-complex.c (init_parameter_lattice_values): Handle parameters
10139         without default definition.
10140
10141 2008-02-17  Richard Guenther  <rguenther@suse.de>
10142
10143         PR tree-optimization/35231
10144         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10145         if A | B != 1.
10146
10147 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
10148
10149         Revert:
10150         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
10151         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10152         libgcc_cmp_return mode.
10153
10154 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10155
10156         PR c/28368
10157         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10158
10159 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
10160
10161         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10162         multilibs.
10163
10164 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10165
10166         * doc/c-tree.texi: Use `@.' where appropriate.
10167         * doc/extend.texi: Likewise.
10168         * doc/install.texi: Likewise.
10169         * doc/invoke.texi: Likewise.
10170         * doc/loop.texi: Likewise.
10171         * doc/makefile.texi: Likewise.
10172         * doc/md.texi: Likewise.
10173         * doc/passes.texi: Likewise.
10174         * doc/standards.texi: Likewise.
10175         * doc/tm.texi: Likewise.
10176
10177 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10178
10179         PR middle-end/35196
10180         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10181         in entry_bb.
10182         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10183         rather than in entry_bb.
10184
10185 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10186
10187         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10188         libgcc_cmp_return mode.
10189
10190 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10191
10192         PR middle-end/35130
10193         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10194         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10195
10196 2008-02-15  Richard Guenther  <rguenther@suse.de>
10197             Zdenek Dvorak  <ook@ucw.cz>
10198
10199         PR tree-optimization/35164
10200         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10201         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10202         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10203         Only propagate addresses which do not have abnormal SSA_NAMEs
10204         in their operands.
10205
10206 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10207
10208         PR target/35088
10209         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10210
10211 2008-02-15  Jan Hubicka  <jh@suse.cz>
10212
10213         PR middle-end/35149
10214         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10215
10216 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10217
10218         PR middle-end/34621
10219         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10220         when calculating alignment_pad.
10221
10222 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10223
10224         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10225         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10226         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10227         and STACK_BOUNDARY define.
10228
10229 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10230
10231         PR preprocessor/35061
10232         * c-pragma.c (handle_pragma_pop_macro): Check that
10233         pushed_macro_table has been allocated.
10234
10235 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10236
10237         PR middle-end/35136
10238         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10239         (force_gimple_operand): Likewise.
10240         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10241         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10242         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10243         (find_interesting_uses_address): Check addressability and alignment
10244         of the base expression only after substituting bases of IVs into it.
10245
10246 2008-02-14  Michael Matz  <matz@suse.de>
10247
10248         PR target/34930
10249         * function.c (instantiate_virtual_regs_in_insn): Reload address
10250         before falling back to reloading the whole operand.
10251
10252 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10253
10254         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10255         before the first section switch note.
10256
10257 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10258
10259         * doc/bugreport.texi: Update copyright years.
10260         * doc/c-tree.texi: Likewise.
10261         * doc/cfg.texi: Likewise.
10262         * doc/cpp.texi: Likewise.
10263         * doc/cppinternals.texi: Likewise.
10264         * doc/fragments.texi: Likewise.
10265         * doc/frontends.texi: Likewise.
10266         * doc/gcc.texi: Likewise.
10267         * doc/gty.texi: Likewise.
10268         * doc/hostconfig.texi: Likewise.
10269         * doc/implement-c.texi: Likewise.
10270         * doc/libgcc.texi: Likewise.
10271         * doc/loop.texi: Likewise.
10272         * doc/makefile.texi: Likewise.
10273         * doc/options.texi: Likewise.
10274         * doc/passes.texi: Likewise.
10275         * doc/rtl.texi: Likewise.
10276         * doc/sourcebuild.texi: Likewise.
10277         * doc/standards.texi: Likewise.
10278         * doc/tree-ssa.texi: Likewise.
10279         * doc/trouble.texi: Likewise.
10280
10281         * doc/extend.texi: Use @: or add comma where appropriate.
10282         * doc/invoke.texi: Likewise.
10283         * doc/tm.texi: Likewise.
10284
10285 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10286
10287         PR target/34393
10288         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10289         to a reg.
10290
10291 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10292
10293         * doc/md.texi (clz, ctz): Add reference.
10294         * doc/rtl.texi (clz, ctz): Likewise.
10295
10296 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10297
10298         PR other/35148
10299         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10300         srcdir.
10301
10302 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10303
10304         * config/s390/s390.c (struct constant_pool): New field
10305         emit_pool_after added.
10306         (s390_mainpool_start): Set the emit_pool_after flag according
10307         to the section switch notes.
10308         (s390_mainpool_finish): Consider emit_pool_after when emitting
10309         the literal pool at the end of the function.
10310         (s390_chunkify_start): Force literal pool splits at section
10311         switch notes.
10312
10313 2008-02-13  Michael Matz  <matz@suse.de>
10314
10315         PR debug/35065
10316         * var-tracking.c (clobber_variable_part): Correctly traverse the
10317         list.
10318
10319 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10320
10321         PR 29673
10322         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10323         Add -fdump-ipa-inline.
10324         * tree-dump.c (dump_files): Remove tree-inlined dump.
10325         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10326         
10327 2008-02-12  Richard Guenther  <rguenther@suse.de>
10328
10329         PR tree-optimization/35171
10330         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10331         default defs.
10332
10333 2008-02-12  Richard Guenther  <rguenther@suse.de>
10334
10335         PR middle-end/35163
10336         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10337         value-preserving mode.  Disallow final truncation.
10338
10339 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10340
10341         PR middle-end/35136
10342         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10343         code from here to...
10344         (force_gimple_operand): ...here.
10345
10346 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10347
10348         PR c++/35144
10349         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10350         non-compatible pointers.
10351         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10352         different FIELD_DECLs, try harder by comparing field offsets, sizes
10353         and types.
10354
10355         PR inline-asm/35160
10356         * function.c (match_asm_constraints_1): Don't replace the same input
10357         multiple times.
10358
10359 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10360
10361         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10362         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10363         (expand_epilogue): Restore RAMPZ register.
10364         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10365
10366 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10367
10368         * config/i386/cygwin.asm: (__alloca): Correct calling
10369         convention and alignment.
10370         (__chkstk): Force 8 byte stack alignment.
10371
10372 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10373             Richard Guenther  <rguenther@suse.de>
10374
10375         PR tree-optimization/33992
10376         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10377         the zero we compare against.
10378
10379 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10380
10381         PR libfortran/35063
10382         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10383         to CloseHandle after unlocking to prevent accumulation of handle
10384         count.
10385
10386 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10387
10388         PR middle_end/34150
10389         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10390         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10391         and update LABEL_NUSES during and after reload.
10392
10393 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10394
10395         PR middle-end/34627
10396         * combine.c (simplify_if_then_else): Make sure the comparison is
10397         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10398
10399 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10400
10401         PR bootstrap/35051
10402         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10403         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10404         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10405         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10406         * tree.h (get_type_static_bounds): Likewise.
10407
10408 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10409
10410         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10411         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10412         Make -Wfoo language annotations match what the compiler outputs.
10413
10414 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10415
10416         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10417         intrinsics spu_convts, spu_convtu, spu_convtf.
10418
10419 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10420
10421         * doc/extend.texi (Function Attributes) <noinline>: Mention
10422         asm ("") as method to keep calls.
10423
10424 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10425
10426         PR other/32754
10427         * doc/options.texi (Options): Replace references to opts.sh with
10428         optc-gen.awk.
10429         * opts-common.c: Likewise.
10430         * optc-gen.awk: Likewise.
10431         
10432 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10433
10434         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10435
10436 2008-02-07  Richard Henderson  <rth@redhat.com>
10437
10438         PR rtl-opt/33410
10439         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10440         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10441         funny mode.
10442
10443 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10444
10445         PR tree-optimization/35085
10446         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10447         for operand entry oe2 in addition to operand entry oe3 in order to
10448         expose more opportunities for vectorizer sum reduction.
10449
10450 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10451
10452         PR other/35107
10453         * Makefile.in (LIBS): Remove $(GMPLIBS).
10454         (cc1-dummy, cc1): Add $(GMPLIBS).
10455
10456 2008-02-06  Jan Hubicka  <jh@suse.cz>
10457
10458         PR target/23322
10459         * i386.md (moddf_integer): Do not produce partial memory stalls for
10460         targets where it hurts.
10461
10462 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10463
10464         PR target/35083
10465         * optabs.c (expand_float): Do not check for decimal modes when
10466         expanding unsigned integer through signed conversion.
10467
10468 2008-02-06  Nick Clifton  <nickc@redhat.com>
10469
10470         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10471         inside the clobber with a match_operand and duplicated operand
10472         number in the constraint.
10473         (ineqbranchsi): Delete redundant comment.
10474
10475 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10476
10477         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10478         builtin_define ("__USE_INIT_FINI__").
10479         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10480         -msx multilibs.
10481         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10482
10483 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10484
10485         PR documentation/30330
10486         * doc/invoke.texi (C++ Dialect Options)
10487         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10488         For each warning option -Wfoo that allows -Wno-foo, ensure both
10489         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10490         entry of -Wswitch-default, index -Wnormalized= including the
10491         `=', and -Wlarger-than-@var{len} including @var{len}.
10492
10493 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10494
10495         * config/i386/i386.md (floatunssisf2): Use
10496         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10497         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10498         Macroize expander using MODEF mode iterator.
10499
10500 2008-02-05  Diego Novillo  <dnovillo@google.com>
10501
10502         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10503
10504         PR 33738
10505         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10506
10507 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10508
10509         PR other/35070
10510         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10511
10512 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10513
10514         PR target/35084
10515         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10516         to indicate if a message should be generated.
10517         (init_cumulative_args): Updated.
10518         (function_value_32): Likewise.
10519
10520 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10521
10522         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10523
10524 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10525
10526         PR target/35083
10527         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10528         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10529
10530 2008-02-04  Diego Novillo  <dnovillo@google.com>
10531
10532         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10533
10534         PR 33738
10535         * tree-vrp.c (vrp_evaluate_conditional): With
10536         -Wtype-limits, emit a warning when comparing against a
10537         constant outside the natural range of OP0's type.
10538
10539 2008-02-04  Richard Guenther  <rguenther@suse.de>
10540
10541         PR middle-end/33631
10542         * expr.c (count_type_elements): Give for unions instead of
10543         guessing.
10544
10545 2008-02-04  Richard Guenther  <rguenther@suse.de>
10546
10547         PR middle-end/35043
10548         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10549         to TYPE_DOMAINs base type instead of using bitsizetype here.
10550
10551 2008-02-03  Jason Merrill  <jason@redhat.com>
10552
10553         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10554
10555 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10556
10557         PR other/29972
10558         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10559         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10560         (RS/6000 and PowerPC Options): Fix typos and markup.
10561         * doc/passes.texi (Tree-SSA passes): Likewise.
10562
10563 2008-02-02  Michael Matz  <matz@suse.de>
10564
10565         PR target/35045
10566         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10567         from record_last_reg_set_info.
10568         (record_last_reg_set_info): Take an RTX argument, iterate over all
10569         constituent hardregs.
10570         (record_last_set_info, record_opr_changes): Change calls to
10571         new signature or to record_last_reg_set_info_regno.
10572
10573 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10574
10575         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10576
10577 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10578
10579         PR rtl-optimization/34773
10580         * reg-notes.def (EQUAL): Mention significance of combination of
10581         REG_EQUAL and REG_RETVAL.
10582         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10583         insn that has a REG_RETVAL.
10584
10585 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10586
10587         PR bootstrap/33781
10588         * configure.ac (--enable-fixed-point): Disable unless explicitly
10589         requested on IRIX.
10590         * configure: Regenerate.
10591
10592 2008-02-01  Richard Guenther  <rguenther@suse.de>
10593
10594         PR other/35042
10595         * invoke.texi (-finline-limit): Remove no longer true parts
10596         of the documentation.  Note that there is no default value.
10597
10598 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10599             Mark Mitchell  <mark@codesourcery.com>
10600             Ben Elliston  <bje@au.ibm.com>
10601
10602         PR c/29326
10603         * doc/extend.texi (Other Builtins): Document.
10604
10605 2008-01-31  Tom Browder <tom.browder@gmail.com>
10606
10607         * doc/c-tree.texi (Types): Fix grammar.
10608         (Expression trees): Ditto.
10609         * doc/passes.texi (Tree-SSA passes): Ditto.
10610         
10611         * doc/configterms.texi (Configure Terms): Fix typo.
10612         * doc/cpp.texi (Common Predefined Macros): Ditto.
10613         * doc/md.texi (Machine Constraints): Ditto.
10614         
10615         * doc/makefile.texi (Makefile): Add comma.
10616
10617 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10618             Gerald Pfeifer  <gerald@pfeifer.com>
10619         
10620         * doc/sourcebuild.texi (Front End): Remove references to CVS
10621         and CVSROOT/modules.
10622         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10623         (Back End): Remove reference to CVS.
10624
10625 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10626
10627         PR target/34900
10628         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10629         comment from...
10630         (mips16_gp_pseudo_reg): ...here.
10631         * config/mips/mips.md (load_const_gp): Replace with...
10632         (load_const_gp_<mode>): ...this :P-based insn.
10633
10634 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10635
10636         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10637         options. Minor fixes.
10638         (-std): Move reference to standards closer to where language
10639         standards are first mentioned.
10640         
10641 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10642
10643         PR rtl-optimization/34995
10644         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10645         parameter and return a bool.  If the rtx parameter is nonnull,
10646         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10647         (find_reloads): Update call accordingly.  Pass the new operand
10648         if it needed no address reloads, otherwise pass null.
10649
10650 2008-01-30  Richard Henderson  <rth@redhat.com>
10651
10652         PR c/34993
10653         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10654         for unbounded arrays.
10655
10656 2008-01-30  Silvius Rus  <rus@google.com>
10657
10658         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10659
10660 2008-01-30  Jan Hubicka  <jh@suse.cz>
10661
10662         PR target/34982
10663         * i386.c (init_cumulative_args): Use real function declaration when
10664         calling locally.
10665
10666 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10667
10668         PR rtl-optimization/34998
10669         * global.c (build_insn_chain): Treat non-subreg_lowpart
10670         SUBREGs of pseudos as clobbering all the words covered by the
10671         SUBREG, not just all the bytes.
10672         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10673         original df_ref rather than an extract parameter.
10674         (global_conflicts): Update call accordingly.
10675
10676 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10677
10678         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10679         the overflow check to make it easier to read.
10680         (__fixtfdi): Change the type of the ll member in union
10681         long_double to UDItype_x.
10682
10683 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10684
10685         PR middle-end/34969
10686         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10687         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10688         * tree-inline.c (fold_marked_statements): Call
10689         cgraph_update_edges_for_call_stmt if folding a call statement.
10690         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10691         debug_generic_stmt calls, reset it back afterwards.
10692
10693         PR c/35017
10694         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10695         static decls.
10696         * c-typeck.c (build_external_ref): Don't pedwarn about
10697         static vars in current function's scope.
10698
10699 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10700
10701         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10702
10703 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10704
10705         PR c/35002
10706         * ipa-struct-reorg.c: Fix spelling.
10707         * params.def: Ditto.
10708
10709 2008-01-29  Richard Guenther  <rguenther@suse.de>
10710
10711         PR middle-end/35006
10712         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10713         field.
10714         * tree-inline.c (remap_type): Increment remapping_type_depth
10715         around remapping types.
10716         (copy_body_r): Only add referenced variables if they are referenced
10717         from code, not types.
10718
10719 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10720
10721         PR c++/34055
10722         PR c++/34103
10723         PR c++/34219
10724         PR c++/34606
10725         PR c++/34753
10726         PR c++/34754
10727         PR c++/34755
10728         PR c++/34919
10729         PR c++/34961
10730         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10731         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10732
10733 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10734
10735         PR target/34412
10736         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10737         pointer for tiny stack.
10738
10739 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10740
10741         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10742
10743 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10744
10745         * config/vx-common.h: Fix typo in comment.
10746
10747 2008-01-28  Ian Lance Taylor  <iant@google.com>
10748
10749         PR c++/34862
10750         PR c++/33407
10751         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10752         coalesce pointers if they have different DECL_NO_TBAA_P values.
10753         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10754         between variables with different DECL_NO_TBAA_P values.
10755
10756 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10757
10758         PR 31535
10759         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10760         are not legitimate small data references on SPE targets.
10761
10762 2008-01-28  David Daney  <ddaney@avtrex.com>
10763
10764         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10765
10766 2008-01-28  David Daney  <ddaney@avtrex.com>
10767
10768         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10769
10770 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10771
10772         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10773         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10774         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10775         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10776         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10777         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10778         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10779         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10780
10781 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10782
10783         * basic-block.h (condjump_equiv_p): Fix comment.
10784
10785 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10786
10787         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10788         print_generic_stmt_indented): Fix comment.
10789
10790 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10791
10792         * configure.ac (__stack_chk_fail): Add detecion for availability
10793         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10794         * configure: Regenerate.
10795
10796 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10797
10798         PR middle-end/34688
10799         * final.c (output_addr_const): Handle TRUNCATE.
10800
10801 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10802
10803         PR target/34711
10804         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10805         (zero_cost, infinite_cost): New constants.
10806         (struct cost_pair): Change type of cost to comp_cost.
10807         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10808         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10809         New functions.
10810         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10811         split_address_cost, ptr_difference_cost, difference_cost,
10812         get_computation_cost_at, get_computation_cost,
10813         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10814         determine_use_iv_cost_condition, determine_use_iv_costs,
10815         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10816         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10817         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10818         Change type of cost to comp_cost.
10819         (determine_iv_cost): Increase cost of non-original ivs, instead
10820         of decreasing the cost of original ones.
10821         (get_address_cost): Indicate the complexity of the addressing mode 
10822         in comp_cost.
10823         (try_add_cand_for): Prefer using ivs not specific to some object.
10824         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10825
10826 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10827             Janis Johnson  <janis187@us.ibm.com>
10828
10829         PR target/34814
10830         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10831         (TARGET_INSTANTIATE_DECLS): Likewise.
10832         * target.h (expand_to_rtl_hook): New target hook.
10833         (instantiate_decls): Likewise.
10834         * function.c (instantiate_decl): Make non-static.  Rename to...
10835         (instantiate_decl_rtl): ... this.
10836         (instantiate_expr): Use instantiate_decl_rtl.
10837         (instantiate_decls_1): Likewise.
10838         (instantiate_decls): Likewise.
10839         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10840         * function.h (instantiate_decl_rtl): Add prototype.
10841         * cfgexpand.c (target.h): New include.
10842         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10843         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10844         (TARGET_INSTANTIATE_DECLS): Likewise.
10845         (TARGET_INITIALIZER): New target hooks added.
10846         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10847         New prototype.
10848         * config/rs6000/rs6000.c (tree-flow.h): New include.
10849         (machine_function): Add sdmode_stack_slot field.
10850         (rs6000_alloc_sdmode_stack_slot): New function.
10851         (rs6000_instantiate_decls): Likewise.
10852         (rs6000_secondary_memory_needed_rtx): Likewise.
10853         (rs6000_check_sdmode): Likewise.
10854         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10855         (TARGET_INSTANTIATE_DECLS): Likewise.
10856         (rs6000_hard_regno_mode_ok): Allow SDmode.
10857         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10858         (rs6000_emit_move): Handle SDmode.
10859         (function_arg_advance): Likewise.
10860         (function_arg): Likewise.
10861         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10862         SDmode var args for 32-bit compiles.
10863         (rs6000_secondary_reload_class): Handle SDmode.
10864         (rs6000_output_function_epilogue): Likewise.
10865         (rs6000_function_value): Simplify if statement.
10866         (rs6000_libcall_value): Likewise.
10867         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10868         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10869         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10870         (movsd_hardfloat): New define_insn.
10871         (movsd_softfloat): Likewise.
10872         (movsd_store): Likewise.
10873         (movsd_load): Likewise.
10874         (extendsddd2): Likewise.
10875         (extendsdtd2): Likewise.
10876         (truncddsd2): Likewise.
10877         (movdd_hardfloat64): Fixup comment.
10878         (UNSPEC_MOVSD_LOAD): New constant.
10879         (UNSPEC_MOVSD_STORE): Likewise.
10880
10881 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10882
10883         PR c++/34965
10884         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10885         TRUTH_XOR_EXPR.
10886         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10887         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10888         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10889         and TRUTH_XOR_EXPR.
10890
10891 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10892
10893         PR target/34794
10894         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10895         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10896         __LONGDOUBLE128 too.
10897         * config/rs6000/aix61.h: New file.
10898
10899 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10900
10901         PR rtl-optimization/34959
10902         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10903         popcount and parity rtxes the same mode as their operand.
10904         Truncate or extend the result to the return value's mode
10905         if necessary.
10906
10907 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10908
10909         PR target/34981
10910         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10911         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10912         to GOT_VERSION_REGNUM.
10913         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10914         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10915         * config/mips/mips.c (mips_emit_call_insn): New function.
10916         (mips_call_tls_get_addr): Call mips_expand_call directly.
10917         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10918         emit_call_insn.
10919         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10920         (mips_expand_call): Update the call to mips16_build_call_stub
10921         accordingly and a remove redundant condition.  Assert that MIPS16
10922         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10923         the call insn.
10924         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10925         TARGET_USE_GOT.
10926         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10927         (mips_avoid_hazard): Remove hazard_set handling.
10928         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10929         (UNSPEC_RESTORE_GP): ...this.
10930         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10931         (FAKE_CALL_REGNO): Rename to...
10932         (GOT_VERSION_REGNUM): ...this.
10933         (type): Add "ghost" value.  Add an associated insn reservation.
10934         (hazard_set): Remove.
10935         (exception_receiver): Rename to...
10936         (restore_gp): ...this and update the unspec identifier accordingly.
10937         (exception_receiver, nonlocal_got_receiver): New expanders.
10938         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10939         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10940         (set_got_version, update_got_version): New patterns.
10941
10942 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10943
10944         PR target/34970
10945         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10946
10947 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10948
10949         PR other/31955
10950         * doc/install.texi2html: Generate gcc-vers.texi.
10951
10952 2008-01-25  DJ Delorie  <dj@redhat.com>
10953
10954         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10955
10956 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10957
10958         * config/c4x: Remove directory.
10959         * config.gcc (crx-*, mt-*): Mark obsolete.
10960         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10961         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10962         sh-*-rtemscoff*): Remove cases.
10963         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10964         * real.c (encode_c4x_single, decode_c4x_single,
10965         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10966         c4x_extended_format): Remove.
10967         * real.h (c4x_single_format, c4x_extended_format): Remove.
10968         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10969         on C4x.
10970         (Pragmas): Remove comment about c4x pragmas.
10971         * doc/install.texi (c4x): Remove target-specific instructions.
10972         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10973         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10974         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10975         refer to C4x source files as examples.
10976         (C4X_FLOAT_FORMAT): Remove documentation.
10977
10978 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10979
10980         * config/bfin/bfin.c (override_options): Reorder tests so that
10981         flag_pic gets enabled for -msep-data.
10982
10983 2008-01-25  Richard Guenther  <rguenther@suse.de>
10984
10985         PR middle-end/32244
10986         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10987         to its bitfield precision if required.
10988
10989 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10990
10991         PR middle-end/33880
10992         * tree-nested.c (walk_omp_for): New function.
10993         (convert_nonlocal_reference, convert_local_reference): Call
10994         walk_omp_for on OMP_FOR.
10995         (convert_call_expr): Call walk_body on OMP_FOR's
10996         OMP_FOR_PRE_INIT_BODY.
10997
10998 2008-01-25  Richard Guenther  <rguenther@suse.de>
10999
11000         PR tree-optimization/34966
11001         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
11002         default defs and PHI_NODEs we have to insert after the
11003         defining statement.
11004
11005 2008-01-24  Nick Clifton  <nickc@redhat.com>
11006
11007         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
11008         Provide a default definition.
11009         (LIBGCC2_UNITS_PER_WORD): Likewise.
11010
11011         * config/stormy16/stormy16.c: Include df.h for the prototype
11012         for df_regs_ever_live_p.
11013         (xstormy16_expand_builtin_va_start): Convert the stack offset
11014         into a component_ref and then use POINTER_PLUS_EXPR to add it
11015         to the incoming_virtual_args_rtx.
11016         (xstormy16_gimplify_va_arg_expr): Rename to
11017         xstormy16_gimplify_va_arg_expr.
11018         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
11019         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
11020         xstormy16_gimplify_va_arg_expr.
11021         Fix up some formatting issues.
11022
11023         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
11024         Move to predicates.md.
11025         (xs_hi_general_operand): Likewise.
11026         (xs_hi_nonmemory_operand): Likewise.
11027         * config/stormy16/predicates.md:
11028         (xstormy16_carry_plus_operand): New predicate.
11029         (xs_hi_general_operand): New predicate.
11030         (xs_hi_nonmemory_operand): New predicate.
11031         * config/stormy16/stormy16-protos.h:
11032         (xstormy16_carry_plus_operand): Delete prototype.
11033         (xs_hi_general_operand): Likewise.
11034         (xs_hi_nonmemory_operand): Likewise.
11035
11036         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
11037         modifiers as they are no longer needed and they can trigger
11038         reload spill failures.
11039
11040         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
11041         with a match_operand in order to help reload.
11042
11043         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
11044         constraint with 'e' for the 8th alternative as this version of
11045         the mov.w instruction only accepts the lower 8 registers.
11046
11047 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
11048
11049         PR target/34856
11050         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
11051         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
11052         vector elements.
11053
11054 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11055
11056         PR middle-end/33333
11057         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
11058
11059 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11060
11061         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
11062         New functions.
11063         (remove_structure): Update allocations list before removing structure.
11064         
11065 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11066
11067         * ipa-struct-reorg.c (is_safe_cond_expr, 
11068         create_new_stmts_for_cond_expr): Use integer_zerop function,
11069         that recognize not only zero-pointer, but zero-integer too.
11070
11071 2008-01-25  Ben Elliston  <bje@au.ibm.com>
11072
11073         PR other/22232
11074         * fixproto: Escape "." in sed expression that strips leading "./".
11075
11076 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11077
11078         PR driver/34904
11079         * gcc.c (SWITCH_OK): Removed.
11080         (SWITCH_LIVE): Changed to bit.
11081         (SWITCH_FALSE): Likewise.
11082         (SWITCH_IGNORE): Likewise.
11083         (switchstr): Change live_cond to unsigned int.
11084         (process_command): Replace SWITCH_OK with 0.
11085         (do_self_spec): Likewise.
11086         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
11087         (give_switch): Likewise.
11088         (used_arg): Likewise.
11089         (do_spec_1): Set the SWITCH_IGNORE bit.
11090         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
11091         bits.  Set the SWITCH_LIVE bit.
11092
11093 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
11094
11095         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
11096
11097 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
11098
11099         PR tree-optimization/34472
11100         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
11101         parameter to a "bool *" and set *DATA to false if there is
11102         an unsafe access.  Do not delete the structure here.
11103         (check_cond_exprs): Delete it here instead.
11104         (check_cond_exprs, exclude_cold_structs): Do not increase
11105         I when removing a structure.
11106
11107 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
11108
11109         PR target/34856
11110         * config/i386/i386.c (ix86_expand_vector_init): Consider only
11111         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
11112
11113 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
11114
11115         PR middle-end/34934
11116         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
11117         a fixed vector for stack.
11118
11119 2008-01-24  Ben Elliston  <bje@au.ibm.com>
11120
11121         PR c++/25701
11122         * doc/gcc.texi (Software development): Add a direntry for g++.
11123         
11124 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
11125
11126         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11127         stale and straggling -fforce-addr comments above.
11128
11129         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11130         define.
11131         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11132         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11133
11134 2008-01-23  Michael Matz  <matz@suse.de>
11135
11136         PR debug/34895
11137         * dwarf2out.c (force_type_die): Use modified_type_die instead of
11138         gen_type_die.
11139
11140 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
11141
11142         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11143         malloc result type.
11144
11145 2008-01-23 Anatoly Sokolov <aesok@post.ru>
11146
11147         * config/avr/avr.c (avr_current_arch): New variable.
11148         (avr_arch_types): Add 'avr31' and 'avr51' entries.
11149         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11150         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11151         (avr_override_options): Init 'avr_current_arch'. 
11152         (base_arch_s): Move from here...
11153         * config/avr/avr.h (base_arch_s): ... here. Add new members 
11154         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
11155         'mega' to 'have_jmp_call'.
11156         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
11157         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
11158         macros.
11159         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
11160         architectures.
11161         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
11162         MULTILIB_MATCHES): (Ditto.).
11163
11164 2008-01-23  Richard Guenther  <rguenther@suse.de>
11165
11166         PR middle-end/31529
11167         * cgraphunit.c (cgraph_reset_node): Always mark the node
11168         not reachable if it is not queued already.
11169
11170 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11171
11172         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11173         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11174         (cputype_selected): New static variable.
11175         (bfin_handle_option): Set it if -mcpu is used.
11176         (override_option): Select default set of workarounds if no cpu type
11177         selected on the command line.
11178         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11179
11180         From  Michael Frysinger  <michael.frysinger@analog.com>
11181         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11182         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11183
11184         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11185         for bf547, bf523, bf524, and bf526.
11186         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11187         bf526.
11188         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11189         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11190         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11191         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11192         * doc/invoke.texi (Blackfin Options): Document that
11193         -mcpu now accept bf547, bf523, bf524, and bf526.
11194
11195 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11196
11197         PR rtl-optimization/34628
11198         * combine.c (try_combine): Stop and undo after the first combination
11199         if an autoincrement side-effect on the first insn has effectively
11200         been lost.
11201
11202 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11203
11204         PR target/34529
11205         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11206         Offset addresses are not valid for Altivec or paired float modes.
11207
11208 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11209
11210         PR c++/34607
11211         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11212         if DECL_INITIAL (decl) is error_mark_node.
11213
11214         PR c++/34914
11215         * c-common.c (handle_vector_size_attribute): Only allow
11216         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11217         the same way as pointer, array etc. types.
11218         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11219
11220         PR c++/34917
11221         * tree.c (build_type_attribute_qual_variant): Call
11222         build_qualified_type if attributes are equal, but quals are not.
11223
11224 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11225
11226         PR 32102
11227         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11228         * flags.h (warn_strict_aliasing): Remove.
11229         (warn_strict_overflow): Remove.
11230         * opts.c (warn_strict_aliasing): Remove.
11231         (warn_strict_overflow): Remove.
11232         * c-opts.c (c_common_handle_option): -Wall only sets
11233         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11234         (c_common_post_options): Give default values to -Wstrict-aliasing
11235         and -Wstrict-overflow if they are uninitialized.
11236         * common.opt (Wstrict-aliasing): Specify Var and Init.
11237         (Wstrict-overflow): Likewise.
11238
11239 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11240
11241         PR rtl-optimization/26854
11242         PR rtl-optimization/34400
11243         PR rtl-optimization/34884
11244         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11245         DF_RD->gen.
11246         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11247         (df_rd_bb_info.expanded_lr_out): Deleted
11248         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11249         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11250         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11251         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11252         Removed code to allocate, initialize or free expanded_lr_out.
11253         (df_rd_bb_local_compute_process_def): Restructured to make more
11254         understandable.
11255         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11256         sets if the sets are being trimmed.
11257
11258 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11259
11260         PR bootstrap/32287
11261         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11262         (as_vers): Likewise.
11263         * configure: Regenerated.
11264
11265 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11266
11267         PR middle-end/33092
11268         * tree-pass.h (pass_build_alias): New pass.
11269         * tree-ssa-alias.c (gate_build_alias): New.
11270         (pass_build_alias): New.
11271         * passes.c (init_optimization_passes): Add pass_build_alias after
11272         pass_create_structure_vars.
11273
11274 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11275
11276         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11277         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11278         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11279         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11280         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11281         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11282         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11283         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11284         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11285         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11286         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11287         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11288         * config/s390/s390.md (FP_ALL): New mode iterator.
11289         (_d): New mode attribute.
11290         ("*signbit<mode>2>"): Changed mode of first operand.
11291         ("isinf<mode>2"): Changed mode of first operand.
11292         ("*TDC_insn"): Adaptation for DFP modes.
11293
11294 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11295
11296         * tree.c (check_qualified_type): Improve function description.
11297
11298 2008-01-21  Jason Merrill  <jason@redhat.com>
11299
11300         PR c++/34196
11301         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11302         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11303         if it is set.
11304
11305 2008-01-21  DJ Delorie  <dj@redhat.com>
11306
11307         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11308         return zero.
11309
11310 2008-01-21  Richard Guenther  <rguenther@suse.de>
11311
11312         PR middle-end/34856
11313         * tree-cfg.c (verify_expr): Allow all invariant expressions
11314         instead of just constant class ones as reference argument.
11315         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11316         like any other constant.
11317         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11318
11319 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11320
11321         * regmove.c (fixup_match_1): Update call crossed frequencies.
11322
11323 2008-01-21  Richard Guenther  <rguenther@suse.de>
11324
11325         PR c/34885
11326         * tree-inline.c (setup_one_parameter): Deal with mismatched
11327         types using a VIEW_CONVERT_EXPR.
11328
11329 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11330             Olga Golovanevsky  <olga@il.ibm.com>
11331         
11332         PR tree-optimization/34701
11333         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11334         when the structure size is not a power of 2.
11335
11336 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11337
11338         * doc/install.texi: Add doc for --enable-checking=df.
11339         
11340 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11341
11342         PR rtl-optimization/34808
11343         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11344
11345 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11346
11347         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11348         input.
11349
11350 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11351
11352         PR rtl-optimization/26854
11353         PR rtl-optimization/34400
11354         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11355         DF_RD->gen.
11356         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11357         (df_rd_bb_info.expanded_lr_out): New.
11358         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11359         * loop_iv.c (iv_analysis_loop_init): Ditto.
11360         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11361         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11362         Added code to allocate, initialize or free expanded_lr_out.
11363         (df_rd_bb_local_compute_process_def): Restructured to make
11364         more understandable.
11365         (df_rd_confluence_n): Add code to do nothing with fake edges and
11366         code to no apply invalidate_by_call sets if the sets are being trimmed.
11367         (df_lr_local_finalize): Renamed to df_lr_finalize.
11368         (df_live_local_finalize): Renamed to df_live_finalize.
11369
11370 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11371
11372         PR target/34831
11373         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11374         deciding whether to use reciprocal instructions.
11375
11376 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11377
11378         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11379         dwarf2out_note_section_used if cold_text_section is NULL.
11380
11381 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11382
11383         PR gcov-profile/34610
11384         * tree-cfg.c (make_edges): Mark both outgoing edges from
11385         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11386         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11387         from OMP_FOR and OMP_CONTINUE outgoing edges.
11388
11389         * tree-profile.c (tree_profiling): Return early if
11390         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11391         at the end.
11392         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11393         from cfun to child_cfun.
11394         * function.h (struct function): Add after_tree_profile bit.
11395
11396 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11397
11398         * config/avr/avr.S (_exit): Disable interrupt.
11399
11400 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11401             Steven Bosscher  <stevenb.gcc@gmail.com>
11402
11403         PR rtl-optimization/26854
11404         PR rtl-optimization/34400
11405         * df-problems.c (df_live_scratch): New scratch bitmap.
11406         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11407         (df_live_reset): Clear the proper bitmaps.
11408         (df_live_bb_local_compute): Only process the artificial defs once
11409         since the order is not important.
11410         (df_live_init): Init the df_live sets only with the variables
11411         found live by df_lr.
11412         (df_live_transfer_function): Use the df_lr sets to prune the
11413         df_live sets as they are being computed.  
11414         (df_live_free): Free df_live_scratch.
11415
11416 2008-01-18  Ian Lance Taylor  <iant@google.com>
11417
11418         * common.opt: Add fmerge-debug-strings.
11419         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11420         flag_merge_debug_strings rather than flag_merge_constants.
11421         * doc/invoke.texi (Option Summary): Mention
11422         -fmerge-debug-strings.
11423         (Debugging Options): Document -fmerge-debug-strings.
11424
11425 2008-01-18  Ian Lance Taylor  <iant@google.com>
11426
11427         PR c++/33407
11428         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11429         (struct tree_function_decl): Add new field operator_new_flag.
11430         * tree-inline.c (expand_call_inline): When inlining a call to
11431         operator new, force the return value to go into a variable, and
11432         set DECL_NO_TBAA_P on that variable.
11433         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11434
11435 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11436
11437         PR debug/34484
11438         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11439         DWARF2_DEBUGGING_INFO.
11440         (dwarf2out_note_section_used): Ditto.  Add prototype.
11441         (have_multiple_function_sections, text_section_used,
11442         cold_text_section_used, *cold_text_sections): Move declarations
11443         before their uses.
11444
11445 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11446
11447         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11448         field and add signal_ra.
11449         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11450         assignments to frame state pc.  Move end of stack check after
11451         MD_FALLBACK_FRAME_STATE_FOR.
11452         (uw_update_context_1): Use frame state signal_regs if set, instead
11453         of checking signal_frame flag.
11454         (uw_update_context): Use frame state signal_ra if set.
11455         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11456         * config/xtensa/linux-unwind.h: New file.
11457
11458 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11459
11460         * modulo-sched.c (get_sched_window): Fix comment typo.
11461
11462 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11463
11464         PR tree-optimization/34648
11465         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11466
11467 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11468
11469         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11470         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11471
11472 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11473
11474         PR rtl-optimization/34400
11475         * df-core.c (df_worklist_dataflow_overeager,
11476         df_worklist_dataflow_doublequeue): New functions.
11477         (df_worklist_dataflow): Two different worklist solvers.
11478         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11479         New param.
11480
11481 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11482
11483         PR testsuite/34821
11484         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11485         and ftree-parallelize-loops.
11486
11487 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11488
11489         PR rtl-optimization/34826
11490         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11491
11492 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11493
11494         * global.c (find_reg): Mark the eh regs as used if necessary.
11495         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11496         * ra.h (struct allocno): no_eh_reg field added.  Changed
11497         no_stack_reg type to bitfield.
11498
11499 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11500
11501         * tree.c (substitute_in_expr): Add missing 'break'.
11502
11503 2008-01-17  Richard Guenther  <rguenther@suse.de>
11504
11505         PR tree-optimization/34825
11506         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11507         x / x as division to handle.
11508
11509 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11510
11511         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11512         "-pthread" is specified.
11513         * pa-hpux11.h (LIB_SPEC): Likewise.
11514
11515 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11516             Peter Bergner  <bergner@vnet.ibm.com>
11517
11518         PR rtl-optimization/33796
11519         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11520
11521 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11522
11523         PR libgfortran/34699
11524         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11525         static links.
11526         * pa-hpux10.h (LINK_SPEC): Likewise.
11527         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11528
11529 2008-01-16  Richard Guenther  <rguenther@suse.de>
11530
11531         PR middle-end/32628
11532         * fold-const.c (fold_convert_const_int_from_int): Do not
11533         set overflow if that occured only because of a sign extension
11534         change when converting from/to a sizetype with the same
11535         precision and signedness.
11536
11537 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11538
11539         PR debug/34249
11540         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11541         location address to the correct place.  Update copyright year.
11542
11543 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11544
11545         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11546         no dependences in the dependence_relations vector.
11547
11548 2008-01-16  Jan Hubicka  <jh@suse.cz>
11549
11550         PR rtl-optimization/31396
11551         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11552         * cfg.c (dump_reg_info): Print it.
11553         * regs.h (struct reg_info_t): add freq_calls_crossed.
11554         (REG_FREQ_CALLS_CROSSED): New macro.
11555         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11556         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11557         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11558         regmove_optimize): Update call crossed frequencies.
11559         * local-alloc.c (struct qty): Add freq_calls_crossed.
11560         (alloc_qty): Copute freq_calls_crossed.
11561         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11562         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11563         * ra.h (struct allocno): Add freq_calls_crossed.
11564
11565 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11566
11567         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11568         libgomp when compiling with ftree-parallelize-loops.
11569         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11570
11571 2008-01-16  Richard Guenther  <rguenther@suse.de>
11572
11573         PR tree-optimization/34769
11574         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11575         * tree.c (int_cst_value): Instead make this function more
11576         permissive in what it accepts as valid input.  Document this
11577         function always sign-extends the value.
11578
11579 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11580             Richard Guenther  <rguenther@suse.de>
11581
11582         PR c/34668
11583         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11584         (gimple_fold_indirect_ref_rhs): ... this.
11585         (gimple_fold_indirect_ref): New function with foldings
11586         that preserve lvalueness.
11587         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11588         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11589         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11590         to fold an INDIRECT_REF, fall back to the old use of
11591         fold_indirect_ref_1.
11592
11593 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11594
11595         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11596         free_conflict_function.
11597         (compute_self_dependence): Same.
11598
11599 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11600
11601         PR debug/34249
11602         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11603         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11604         function global.
11605         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11606         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11607         for DWARF2_UNWIND_INFO targets.
11608
11609 2008-01-16  Richard Guenther  <rguenther@suse.de>
11610
11611         PR c/34768
11612         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11613         type qualifiers for function types.
11614
11615 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11616
11617         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11618         loop_iterator li from previous commit.
11619
11620 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11621
11622         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11623
11624 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11625
11626         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11627         (parallelize_loops): Don't parallelize irreducible components.
11628
11629 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11630
11631         PR c++/24924
11632         * c-opts (c_common_post_options): Do not enable CPP
11633         flag_pedantic_errors by default.
11634         
11635 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11636
11637         PR rtl-optimization/31944
11638         * cse.c (remove_pseudo_from_table): New function.
11639         (merge_equiv_classes): Use above function to remove pseudo-registers.
11640         (invalidate): Likewise.
11641
11642 2008-01-13  Richard Guenther  <rguenther@suse.de>
11643
11644         PR middle-end/34601
11645         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11646         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11647
11648 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11649
11650         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11651         validate_change to unshare the source of the PC set.
11652
11653 2008-01-12  Jan Hubicka  <jh@suse.cz>
11654
11655         PR middle-end/32135
11656         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11657         references above array bounds.  This might trigger bounds checks for
11658         pointers to arrays.
11659
11660 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11661
11662         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11663         new_replaceable_dependencies.
11664
11665 2008-01-12  Doug Kwan  <dougkwan@google.com>
11666
11667         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11668         instead of OPT_Wreturn_type in warning due to ignored return type
11669         qualifiers.
11670         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11671         options included in -Wextra.
11672         * c.opt: New option -Wignored_qualifiers.
11673         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11674         -Wignore_qualifiers.
11675         (-Wignored-qualifiers): Document.
11676         (-Wreturn-type): Remove description of functionality now handled
11677         by -Wignored-qualifiers.
11678
11679 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11680
11681         PR ada/33788
11682         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11683         NOP_EXPR if it is between integral types with the same precision.
11684
11685 2008-01-12  Jan Hubicka  <jh@suse.cz>
11686
11687         PR other/28023
11688         * invoke.texi (max-inline-recursive-depth): Fix default value.
11689
11690 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11691
11692         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11693         correct type.
11694
11695 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11696         
11697         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11698         
11699 2008-01-11  James E. Wilson  <wilson@specifix.com>
11700
11701         PR target/26015
11702         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11703
11704 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11705
11706         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11707         save/restore frame pointer register and don't use 'call-prologues' 
11708         optimization in function with "OS_task" attribute.
11709
11710 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11711
11712         PR middle-end/31309
11713         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11714         when copying to memory.
11715
11716 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11717
11718         PR rtl-optimization/30905
11719         * cfgcleanup.c: Include dce.h
11720         (crossjumps_occured): New global variable.
11721         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11722         If something changed, set crossjumps_occured to true.
11723         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11724         Don't add/remove fake edges to exit here...
11725         (cleanup_cfg): ...but do it here, when crossjumping.
11726         Run a fast DCE when successful crossjumps occured in the latest
11727         iteration of try_optimize_cfg.
11728
11729 2008-01-11  Richard Guenther  <rguenther@suse.de>
11730
11731         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11732         (struct vn_unary_op_s): Likewise.
11733         (vn_reference_insert): Free old reference on hash collision.
11734
11735 2008-01-10  Raksit Ashok  <raksit@google.com>
11736
11737         PR rtl-optimization/27971
11738         * combine.c (find_split_point): Split PLUS expressions which are
11739         inside a MEM rtx, and whose first operand is complex.
11740
11741 2008-01-10  DJ Delorie  <dj@redhat.com>
11742
11743         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11744         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11745         (m32c_hard_regno_ok): Call the underlying function.
11746
11747 2008-01-10  Richard Guenther  <rguenther@suse.de>
11748
11749         PR middle-end/34683
11750         * tree-cfg.c (tree_merge_blocks): Do not go through the
11751         full-blown folding and stmt updating path if we just deal
11752         with virtual operands.
11753         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11754         test for abnormal SSA_NAMEs.
11755
11756 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11757
11758         PR middle-end/34641
11759         * reload.c (push_reload): Add assertions.  All constants from
11760         reg_equiv_constant should have been used for replacing the respective
11761         pseudo earlier.
11762         (find_reloads_address): Invoke find_reloads_address_part for
11763         constant taken from the reg_equiv_constant array.
11764
11765 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11766
11767         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11768         field (valnum) the first in the struct.  Replace bools with
11769         unit bit fields.
11770
11771 2008-01-10  Richard Guenther  <rguenther@suse.de>
11772
11773         PR tree-optimization/34651
11774         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11775         types and ordering for masking and converting.
11776
11777 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11778
11779         PR tree-optimization/34017
11780         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11781         also for PHI_NODE expressions.
11782
11783 2008-01-09  Jan Hubicka  <jh@suse.cz>
11784
11785         PR tree-optimization/34708
11786         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11787         based on number of case labels.
11788         (init_inline_once): Remove switch_cost.
11789         * tree-inline.h (eni_weights_d): Remove switch_cost.
11790
11791 2008-01-09  Richard Guenther  <rguenther@suse.de>
11792         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11793
11794         PR middle-end/30132
11795         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11796         temporary if an rvalue is ok or an lvalue is not required.
11797
11798 2008-01-09  Richard Guenther  <rguenther@suse.de>
11799
11800         PR middle-end/34458
11801         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11802         adjust return type.
11803
11804 2008-01-09  Richard Guenther  <rguenther@suse.de>
11805
11806         PR middle-end/34679
11807         * tree.c (host_integerp): Check for sizetype only if the
11808         type is an integer type.
11809
11810 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11811
11812         PR debug/26364
11813         * opts.c (decode_options): Disable inlining of functions called
11814         once if not in unit-at-a-time mode.
11815
11816 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11817
11818         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11819
11820 2008-01-08  Richard Guenther  <rguenther@suse.de>
11821
11822         PR middle-end/31863
11823         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11824         out early if the result will be unused.
11825
11826 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11827
11828         PR target/34709
11829         Revert:
11830
11831         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11832         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11833         for TARGET_RECIP.       
11834         
11835 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11836         
11837         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11838         for vectorization tuned.
11839         
11840 2008-01-08  Richard Guenther  <rguenther@suse.de>
11841
11842         PR tree-optimization/34683
11843         * tree-ssa-operands.c (operand_build_cmp): Export.
11844         * tree-ssa-operands.h (operand_build_cmp): Declare.
11845         * tree-vn.c (vuses_compare): Remove.
11846         (sort_vuses): Use operand_build_cmp.
11847         (sort_vuses_heap): Likewise.
11848         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11849         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11850         (vdefs_to_vec): Do not sort already sorted VDEFs.
11851
11852 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11853
11854         PR middle-end/34694
11855         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11856
11857 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11858
11859         PR target/34702
11860         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11861         limitations of reciprocal sequences on x86 targets.
11862
11863 2008-01-08  Richard Guenther  <rguenther@suse.de>
11864
11865         PR tree-optimization/34683
11866         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11867
11868 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11869
11870         PR target/34622
11871         * config/darwin.c (darwin_mergeable_string_section): Don't use
11872         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11873
11874 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11875
11876         PR target/34682
11877         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11878         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11879         predicates of op0 and op1 to register_operand.
11880         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11881         expander using X87MODEF mode iterator.  Change predicates of
11882         op0 and op1 to register_operand.
11883         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11884         corresponding patterns and macroize using MODEF macro.  Change
11885         predicates of op0 and op1 to register_operand and remove
11886         "m" constraint. Disparage "r" alternative with "!".
11887         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11888         macroize using X87MODEF macro.  Change predicates of op0 and op1
11889         to register_operand and remove "m" constraint.  Disparage "r"
11890         alternative with "!".
11891         (absneg splitter with memory operands): Remove.
11892         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11893         patterns and macroize using X87MODEF mode iterator.
11894         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11895         Change predicate of op1 to register_operand.
11896         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11897         for memory operands.
11898
11899 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11900
11901         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11902
11903 2008-01-07  Richard Guenther  <rguenther@suse.de>
11904
11905         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11906         fields.
11907
11908 2008-01-07  Richard Guenther  <rguenther@suse.de>
11909
11910         PR tree-optimization/34683
11911         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11912         VOPs of the needed size to save memory.  Use VEC_quick_push
11913         to save compile-time.
11914         (vdefs_to_vec): Likewise.
11915
11916 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11917
11918         * config/spu/spu.md (divdf3): Genetate inline code for double
11919         division.  The implementation doesn't handle INF or NAN, therefore it
11920         only applies when -ffinite-math-only is given.
11921
11922 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11923
11924         PR libstdc++/34680
11925         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11926         * doc/cpp.texi ([Common Predefined Macros]): Document.
11927
11928 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11929
11930         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11931         order to use commutative addition instead of subtraction.
11932
11933 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11934             Mircea Namolaru  <namolaru@il.ibm.com>
11935             Vladimir Yanovsky  <yanov@il.ibm.com>
11936             Revital Eres  <eres@il.ibm.com>
11937
11938         PR tree-optimization/34263
11939         * tree-outof-ssa.c (process_single_block_loop_latch,
11940         contains_tree_r): New functions.
11941         (analyze_edges_for_bb): Call process_single_block_loop_latch
11942         function to empty single-basic-block latch block if possible.
11943
11944 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11945
11946         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11947         for TARGET_RECIP.
11948         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11949
11950 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11951
11952         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11953
11954 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11955
11956         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11957
11958 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11959
11960         PR tree-optimization/34618
11961         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11962         flag from T.
11963
11964 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11965
11966         PR target/34673
11967         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11968         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11969         Update copyright year.
11970
11971         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11972         Update copyright year.
11973         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11974         using NR fixup.
11975
11976 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11977
11978         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11979         edge does not point to current bb before changing need_assert.
11980
11981 2008-01-04  Richard Guenther  <rguenther@suse.de>
11982
11983         PR middle-end/34029
11984         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11985         for verifying purposes if they are is_gimple_min_invariant.
11986
11987 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11988
11989         PR tree-optimization/34448
11990         PR tree-optimization/34465
11991         * gimplify.c (gimplify_init_constructor): Add new parameter
11992         notify_temp_creation.  Use it.
11993         (gimplify_modify_expr_rhs): Take volatiles into account when
11994         optimizing constructors.
11995         Do not optimize constructors if gimplify_init_constructor will dump to
11996         memory.
11997         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11998         * gcc.c-torture/compile/pr34448.c: New.
11999
12000 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
12001
12002         PR gcov-profile/34609
12003         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
12004         return_slot if result is TREE_ADDRESSABLE.
12005
12006 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
12007
12008         * config/mips/mips.md (sqrt_condition): Tweak comment.
12009         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
12010
12011 2008-01-03  Tom Tromey  <tromey@redhat.com>
12012
12013         PR c/34457
12014         * c-common.c (c_type_hash): Handle VLAs.
12015
12016 2008-01-03  Jan Hubicka  <jh@suse.cz>
12017
12018         PR tree-optimization/31081
12019         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
12020         0 when inlining and not inlining to first basic block.
12021         (remap_decl): When var is initialized to 0, don't set default_def.
12022         (expand_call_inline): Set entry_bb.
12023         * tree-inline.h (copy_body_data): Add entry_bb.
12024
12025 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12026
12027         PR c++/34619
12028         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
12029         before returning.
12030
12031         PR tree-optimization/29484
12032         * tree-inline.c (inline_forbidden_p_2): New function.
12033         (inline_forbidden_p): Disallow inlining if some static var
12034         has an address of a local LABEL_DECL in its initializer.
12035         * doc/extend.texi (Labels as Values): Document &&foo behaviour
12036         vs. inlining.
12037
12038 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
12039
12040         PR tree-optimization/34635
12041         * tree-data-ref.c (add_other_self_distances): Make sure that the
12042         evolution step is constant.
12043
12044 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12045
12046         PR middle-end/34608
12047         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
12048
12049 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
12050
12051         * tree-sra.c (scalarize_init): Insert the generate_element_init
12052         statements after the generate_element_zero statements.
12053
12054 2008-01-02  Richard Guenther  <rguenther@suse.de>
12055
12056         PR middle-end/34093
12057         PR middle-end/31976
12058         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
12059         for very large number of operands instead of ICEing.
12060
12061 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
12062
12063         PR target/34013
12064         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
12065         while stack probing.
12066
12067 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
12068
12069         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12070         in C++0x mode.
12071
12072 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
12073
12074         PR libmudflap/26442
12075         * tree-mudflap.c (mx_register_decls): Guard warning by
12076         !DECL_ARTIFICIAL check.
12077
12078 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
12079
12080         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
12081         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
12082         sse5_perm<mode>): Fix constraints.