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