OSDN Git Service

* config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
2
3         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
4
5 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
6
7         * config.gcc (Obsolete configurations): Remove list of
8         configurations.
9         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
10         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
11         targets matched by those patterns.
12         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
13         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
14         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
15         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
16         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
17         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
18         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
19         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
20         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
21         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
22         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
23         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
24         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
25         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
26         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
27         Make code for Solaris 7 and greater unconditional for Solaris.
28         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
29         Remove --with-* handling.
30         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
31         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
32         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
33         LINK_OS_WINDISS_SPEC): Remove.
34         * config/rs6000/sysv4.opt (mwindiss): Remove.
35         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
36         * configure: Regenerate.
37         * doc/cpp.texi: Don't mention BeOS.
38         * doc/extend.texi (interrupt): Don't mention MS1.
39         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
40         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
41         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
42         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
43         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
44         Remove.
45         * doc/invoke.texi (MT Options): Remove.
46         (-mwindiss): Remove.
47         (CRIS Options): Remove cris-axis-aout references.
48         (HPPA Options): Don't mention hppa1.1-*-pro.
49         * doc/md.texi: (MorphoTech family): Remove.
50         * libgcc2.c: Don't handle UWIN.
51         * config/alpha/t-unicosmk: Remove.
52         * config/alpha/unicosmk.h: Remove.
53         * config/arm/kaos-arm.h: Remove.
54         * config/arm/kaos-strongarm.h: Remove.
55         * config/arm/strongarm-coff.h: Remove.
56         * config/arm/strongarm-elf.h: Remove.
57         * config/arm/strongarm-pe.h: Remove.
58         * config/arm/t-strongarm-pe: Remove.
59         * config/arm/t-xscale-coff: Remove.
60         * config/arm/t-xscale-elf: Remove.
61         * config/arm/xscale-coff.h: Remove.
62         * config/arm/xscale-elf.h: Remove.
63         * config/chorus.h: Remove.
64         * config/cris/aout.h: Remove.
65         * config/cris/aout.opt: Remove.
66         * config/cris/t-aout: Remove.
67         * config/i386/beos-elf.h: Remove.
68         * config/i386/kaos-i386.h: Remove.
69         * config/i386/ptx4-i.h: Remove.
70         * config/i386/sco5.h: Remove.
71         * config/i386/sco5.opt: Remove.
72         * config/i386/sysv4-cpp.h: Remove.
73         * config/i386/sysv5.h: Remove.
74         * config/i386/t-beos: Remove.
75         * config/i386/t-sco5: Remove.
76         * config/i386/t-uwin: Remove.
77         * config/i386/uwin.asm: Remove.
78         * config/i386/uwin.h: Remove.
79         * config/kaos.h: Remove.
80         * config/mips/windiss.h: Remove.
81         * config/mt: Remove directory.
82         * config/pa/pa-osf.h: Remove.
83         * config/pa/pa-pro-end.h: Remove.
84         * config/pa/t-pro: Remove.
85         * config/ptx4.h: Remove.
86         * config/rs6000/beos.h: Remove.
87         * config/rs6000/kaos-ppc.h: Remove.
88         * config/rs6000/t-beos: Remove.
89         * config/rs6000/windiss.h: Remove.
90         * config/sh/kaos-sh.h: Remove.
91         * config/sol2-6.h: Remove.
92         * config/sparc/sol26-sld.h: Remove.
93         * config/sparc/sysv4-only.h: Remove.
94         * config/vax/bsd.h: Remove.
95         * config/vax/t-memfuncs: Remove.
96         * config/vax/ultrix.h: Remove.
97         * config/vax/vaxv.h: Remove.
98         * config/windiss.h: Remove.
99
100 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
101
102         PR rtl-optimization/36438
103         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
104         for vector shifts with constant scalar shift operands.
105
106 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
107
108         * doc/invoke.texi: Document -march=xlr.
109         * config/mips/xlr.md: New file.
110         * config/mips/mips.md: Include it.
111         (cpu): Add "xlr".
112         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
113         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
114         (mips_rtx_cost_data): Likewise.
115
116 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
117
118         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
119         PRE_INC and PRE_DEC cases.
120
121 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
122
123         PR rtl-optimization/36419
124         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
125         the emitting jump insn.
126
127         PR target/36362
128         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
129         is not bool, boolify the whole *expr_p and convert to the desired type.
130
131 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
132
133         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
134         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
135         Add omp_private_outer_ref hook, add another argument to
136         omp_clause_default_ctor hook.
137         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
138         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
139         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
140         hook_tree_tree_tree_tree_null.
141         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
142         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
143         * hooks.c (hook_tree_tree_tree_tree_null): New function.
144         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
145         * tree.def (OMP_TASK): New tree code.
146         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
147         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
148         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
149         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
150         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
151         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
152         OMP_CLAUSE_COLLAPSE_EXPR): Define.
153         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
154         (OMP_DIRECTIVE_P): Add OMP_TASK.
155         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
156         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
157         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
158         and OMP_CLAUSE_UNTIED entries.
159         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
160         num_ops to 2.
161         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
162         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
163         * tree-pretty-print.c (dump_omp_clause): Handle
164         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
165         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
166         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
167         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
168         warning about unsigned iterators.  Change decl/init/cond/incr
169         arguments to TREE_VECs, check arguments for all collapsed loops.
170         (c_finish_omp_taskwait): New function.
171         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
172         ws_clauses.
173         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
174         default_function_array_conversion on init.  Add par_clauses argument.
175         If decl is present in parallel's lastprivate clause, change it to
176         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
177         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
178         collapse count in clauses.
179         (c_parser_omp_for, c_parser_omp_parallel): Adjust
180         c_parser_omp_for_loop callers.
181         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
182         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
183         (c_parser_omp_clause_name): Handle collapse and untied clauses.
184         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
185         functions.
186         (c_parser_omp_clause_schedule): Handle schedule(auto).
187         Include correct location in the error message.
188         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
189         and PRAGMA_OMP_CLAUSE_UNTIED.
190         (OMP_TASK_CLAUSE_MASK): Define.
191         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
192         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
193         * tree-nested.c (convert_nonlocal_omp_clauses,
194         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
195         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
196         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
197         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
198         OMP_CLAUSE_DECL.
199         (conver_nonlocal_reference, convert_local_reference,
200         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
201         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
202         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
203         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
204         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
205         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
206         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
207         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
208         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
209         OMP_CLAUSE_UNTIED.
210         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
211         * c-common.h (c_finish_omp_taskwait): New prototype.
212         * gimple-low.c (lower_stmt): Handle OMP_TASK.
213         * tree-parloops.c (create_parallel_loop): Create 1 entry
214         vectors for OMP_FOR_{INIT,COND,INCR}.
215         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
216         (make_edges): Handle OMP_TASK.
217         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
218         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
219         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
220         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
221         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
222         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
223         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
224         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
225         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
226         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
227         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
228         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
229         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
230         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
231         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
232         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
233         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
234         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
235         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
236         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
237         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
238         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
239         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
240         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
241         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
242         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
243         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
244         original iterator is present in lastprivate clause or if
245         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
246         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
247         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
248         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
249         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
250         if it is set, lookup var in outer contexts too.  Handle
251         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
252         to be implicitly determined firstprivate for task regions.
253         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
254         if it is set, lookup var in outer contexts too.  Set
255         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
256         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
257         OMP_CLAUSE_UNTIED.  Take region_type as last argument
258         instead of in_parallel and in_combined_parallel.
259         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
260         Adjust callers.
261         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
262         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
263         (new_omp_context): Set default_kind to
264         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
265         (omp_region_type): New enum.
266         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
267         fields, add region_type.
268         (new_omp_context): Take region_type as argument instead of is_parallel
269         and is_combined_parallel.
270         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
271         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
272         ctx->is_combined_parallel checks.
273         (gimplify_omp_task): New function.
274         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
275         OMP_CLAUSE_UNTIED.
276         * omp-low.c (extract_omp_for_data): Use schedule(static)
277         for schedule(auto).  Handle pointer and unsigned iterators.
278         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
279         Add loops argument.  Extract data for collapsed OMP_FOR loops.
280         (expand_parallel_call): Assert sched_kind isn't auto,
281         map runtime schedule to index 3.
282         (struct omp_for_data_loop): New type.
283         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
284         Add loop, loops, collapse and iter_type fields.
285         (workshare_safe_to_combine_p): Disallow combined for if
286         iter_type is unsigned long long.  Don't combine collapse > 1 loops
287         unless all bounds and steps are constant.  Adjust extract_omp_for_data
288         caller.
289         (expand_omp_for_generic): Handle pointer, unsigned and long long
290         iterators.  Handle collapsed OMP_FOR loops.  Adjust
291         for struct omp_for_data changes.  If libgomp function doesn't return
292         boolean_type_node, add comparison of the return value with 0.
293         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
294         pointer, unsigned and long long iterators.  Adjust for struct
295         omp_for_data changes.
296         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
297         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
298         unsigned long long.  Allocate loops array, pass it to
299         extract_omp_for_data.  For collapse > 1 loops use always
300         expand_omp_for_generic.
301         (omp_context): Add sfield_map and srecord_type fields.
302         (is_task_ctx, lookup_sfield): New functions.
303         (use_pointer_for_field): Use is_task_ctx helper.  Change first
304         argument's type from const_tree to tree.  Clarify comment.
305         In OMP_TASK disallow copy-in/out sharing.
306         (build_sender_ref): Call lookup_sfield instead of lookup_field.
307         (install_var_field): Add mask argument.  Populate both record_type
308         and srecord_type if needed.
309         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
310         in srecord_type.
311         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
312         and DECL_FIELD_OFFSET.
313         (scan_sharing_clauses): Adjust install_var_field callers.  For
314         firstprivate clauses on explicit tasks allocate the var by value in
315         record_type unconditionally, rather than by reference.
316         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
317         Use is_taskreg_ctx instead of is_parallel_ctx.
318         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
319         (create_omp_child_function_name): Add task_copy argument, use
320         *_omp_cpyfn* names if it is true.
321         (create_omp_child_function): Add task_copy argument, if true create
322         *_omp_cpyfn* helper function.
323         (scan_omp_parallel): Adjust create_omp_child_function callers.
324         Rename parallel_nesting_level to taskreg_nesting_level.
325         (scan_omp_task): New function.
326         (lower_rec_input_clauses): Don't run constructors for firstprivate
327         explicit task vars which are initialized by *_omp_cpyfn*.  
328         Pass outer var ref to omp_clause_default_ctor hook if
329         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
330         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
331         OMP_CLAUSE_REDUCTION_INIT.
332         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
333         avoid duplicate setting of fields.  Handle
334         OMP_CLAUSE_PRIVATE_OUTER_REF.
335         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
336         copy-out if TREE_READONLY, only copy-in.
337         (expand_task_copyfn): New function.
338         (expand_task_call): New function.
339         (struct omp_taskcopy_context): New type.
340         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
341         New functions.
342         (lower_omp_parallel): Rename to...
343         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
344         Call create_task_copyfn if srecord_type is needed.  Adjust
345         sender_decl type.
346         (task_shared_vars): New variable.
347         (check_omp_nesting_restrictions): Warn if work-sharing,
348         barrier, master or ordered region is closely nested inside OMP_TASK.
349         Add warnings for barrier if closely nested inside of work-sharing,
350         ordered, or master region.
351         (scan_omp_1): Call check_omp_nesting_restrictions even for
352         GOMP_barrier calls.  Rename parallel_nesting_level to
353         taskreg_nesting_level.  Handle OMP_TASK.
354         (lower_lastprivate_clauses): Even if some lastprivate is found on a
355         work-sharing construct, continue looking for them on parent parallel
356         construct.
357         (lower_omp_for_lastprivate): Add lastprivate clauses
358         to the beginning of dlist rather than end.  Adjust for struct
359         omp_for_data changes.
360         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
361         not after it.  Handle collapsed OMP_FOR loops, adjust for
362         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
363         (get_ws_args_for): Adjust extract_omp_for_data caller.
364         (scan_omp_for): Handle collapsed OMP_FOR
365         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
366         (lower_omp_single_simple): If libgomp function doesn't return
367         boolean_type_node, add comparison of the return value with 0.
368         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
369         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
370         (parallel_nesting_level): Rename to...
371         (taskreg_nesting_level): ... this.
372         (is_taskreg_ctx): New function.
373         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
374         of is_parallel_ctx.
375         (execute_lower_omp): Rename parallel_nesting_level to
376         taskreg_nesting_level.
377         (expand_omp_parallel): Rename to...
378         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
379         Call omp_task_call for OMP_TASK regions.
380         (expand_omp): Adjust caller, handle OMP_TASK.
381         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
382
383         * bitmap.c (bitmap_default_obstack_depth): New variable.
384         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
385         if argument is NULL and bitmap_default_obstack is already initialized.
386         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
387         at the end.
388         * matrix-reorg.c (matrix_reorg): Likewise.
389
390 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
391
392         * config/i386/i386.md (*indirect_jump): Macroize using P
393         mode iterator.  Remove !TARGET_64BIT from insn constraints.
394         (*tablejump_1): Ditto.
395         (*indirect_jump_rex64): Remove insn pattern.
396         (*tablejump_1_rex64): Ditto.
397         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
398         and eh_return_si insn patterns.
399
400 2008-06-06  Richard Guenther  <rguenther@suse.de>
401
402         * tree-ssa-structalias.c (merge_smts_into): Remove.
403         (find_what_p_points_to): Do not bother to compute the
404         points-to set for pt_anything pointers.
405         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
406         for pt_anything pointers is ok.
407
408 2008-06-06  Jan Hubicka  <jh@suse.cz>
409
410         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
411
412 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
413
414         * cgraph.c: Fix typos in comments.
415         (cgraph_availability_names): Fix string typo.
416         * fold-const.c: Fix typos in comments.
417         (fold_binary): Fix typo in warning.
418         * genautomata.c: Fix typos in comments.
419         (check_presence_pattern_sets): Fix typo in local variable.
420         (output_description): Fix typo in output.
421         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
422         * hwint.h: Likewise.
423         * matrix-reorg.c (check_allocation_function): Likewise.
424         * omega.c (smooth_weird_equations): Likewise.
425         * auto-inc-dec.c: Fix typos in comments.
426         * bb-reorder.c: Likewise.
427         * builtins.c: Likewise.
428         * c-common.c: Likewise.
429         * c-cppbuiltin.c: Likewise.
430         * c-parser.c: Likewise.
431         * c-pretty-print.c: Likewise.
432         * cfgcleanup.c: Likewise.
433         * cfgexpand.c: Likewise.
434         * cfghooks.c: Likewise.
435         * cfglayout.c: Likewise.
436         * cfgloopmanip.c: Likewise.
437         * cgraphunit.c: Likewise.
438         * coverage.c: Likewise.
439         * dbxout.c: Likewise.
440         * df-byte-scan.c: Likewise.
441         * df-core.c: Likewise.
442         * df-problems.c: Likewise.
443         * df-scan.c: Likewise.
444         * dfp.c: Likewise.
445         * dominance.c: Likewise.
446         * domwalk.c: Likewise.
447         * dse.c: Likewise.
448         * dwarf2out.c: Likewise.
449         * emit-rtl.c: Likewise.
450         * et-forest.c: Likewise.
451         * function.c: Likewise.
452         * function.h: Likewise.
453         * gcc.c: Likewise.
454         * gcov-io.c: Likewise.
455         * gcov.c: Likewise.
456         * gcse.c: Likewise.
457         * genattrtab.c: Likewise.
458         * ggc-page.c: Likewise.
459         * gimplify.c: Likewise.
460         * gthr-lynx.h: Likewise.
461         * haifa-sched.c: Likewise.
462         * ipa-cp.c: Likewise.
463         * ipa-inline.c: Likewise.
464         * ipa-prop.h: Likewise.
465         * ipa-pure-const.c: Likewise.
466         * ipa-struct-reorg.c: Likewise.
467         * ipa-struct-reorg.h: Likewise.
468         * ipa-type-escape.c: Likewise.
469         * ipa.c: Likewise.
470         * loop-doloop.c: Likewise.
471         * mips-tfile.c: Likewise.
472         * mkmap-flat.awk: Likewise.
473         * mkmap-symver.awk: Likewise.
474         * modulo-sched.c: Likewise.
475         * omp-low.c: Likewise.
476         * optabs.c: Likewise.
477         * optabs.h: Likewise.
478         * opts.c: Likewise.
479         * passes.c: Likewise.
480         * postreload-gcse.c: Likewise.
481         * postreload.c: Likewise.
482         * predict.c: Likewise.
483         * pretty-print.h: Likewise.
484         * profile.c: Likewise.
485         * protoize.c: Likewise.
486         * ra-conflict.c: Likewise.
487         * real.c: Likewise.
488         * recog.c: Likewise.
489         * regclass.c: Likewise.
490         * regs.h: Likewise.
491         * reload.c: Likewise.
492         * rtl-error.c: Likewise.
493         * rtlanal.c: Likewise.
494         * scan.h: Likewise.
495         * sched-rgn.c: Likewise.
496         * see.c: Likewise.
497         * stmt.c: Likewise.
498         * target.h: Likewise.
499         * tree-dfa.c: Likewise.
500         * tree-eh.c: Likewise.
501         * tree-flow-inline.h: Likewise.
502         * tree-inline.c: Likewise.
503         * tree-into-ssa.c: Likewise.
504         * tree-loop-distribution.c: Likewise.
505         * tree-nested.c: Likewise.
506         * tree-parloops.c: Likewise.
507         * tree-pass.h: Likewise.
508         * tree-pretty-print.c: Likewise.
509         * tree-profile.c: Likewise.
510         * tree-scalar-evolution.c: Likewise.
511         * tree-sra.c: Likewise.
512         * tree-ssa-alias-warnings.c: Likewise.
513         * tree-ssa-ccp.c: Likewise.
514         * tree-ssa-coalesce.c: Likewise.
515         * tree-ssa-dom.c: Likewise.
516         * tree-ssa-dse.c: Likewise.
517         * tree-ssa-forwprop.c: Likewise.
518         * tree-ssa-live.c: Likewise.
519         * tree-ssa-live.h: Likewise.
520         * tree-ssa-loop-im.c: Likewise.
521         * tree-ssa-loop-ivopts.c: Likewise.
522         * tree-ssa-loop-niter.c: Likewise.
523         * tree-ssa-loop-prefetch.c: Likewise.
524         * tree-ssa-phiopt.c: Likewise.
525         * tree-ssa-phiprop.c: Likewise.
526         * tree-ssa-sccvn.c: Likewise.
527         * tree-ssa-ter.c: Likewise.
528         * tree-ssa-threadupdate.c: Likewise.
529         * tree-ssa.c: Likewise.
530         * tree-vect-analyze.c: Likewise.
531         * tree-vect-transform.c: Likewise.
532         * tree-vectorizer.c: Likewise.
533         * tree-vn.c: Likewise.
534         * tree-vrp.c: Likewise.
535         * tree.c: Likewise.
536         * tree.def: Likewise.
537         * tree.h: Likewise.
538         * unwind-dw2-fde.c: Likewise.
539         * unwind.inc: Likewise.
540         * value-prof.c: Likewise.
541         * vmsdbgout.c: Likewise.
542
543 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
544
545         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
546         always place FP constants in the TOC for TARGET_POWERPC64.
547         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
548
549 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
550
551         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
552         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
553         enable for TARGET_E500_DOUBLE.
554         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
555         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
556         floating-point modes like integer modes for E500 double.
557         (rs6000_legitimate_offset_address_p): Likewise.
558         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
559         addressing for DDmode for E500 double.
560         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
561         modes as using 64-bits of registers for E500 double.
562         (spe_build_register_parallel): Do not handle DDmode or TDmode.
563         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
564         specially for E500 double.
565         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
566         TDmode for E500 double.
567         (rs6000_gimplify_va_arg): Only handle SDmode in registers
568         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
569         (rs6000_split_multireg_move): Do not handle TDmode specially for
570         E500 double.
571         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
572         using 64-bit registers for E500 double.
573         (emit_frame_save): Do not handle DDmode specially for E500 double.
574         (gen_frame_mem_offset): Likewise.
575         (rs6000_function_value): Do not call spe_build_register_parallel
576         for DDmode or TDmode.
577         (rs6000_libcall_value): Likewise.
578         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
579         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
580         for E500 double.
581
582 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
583
584         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
585         in comments.
586
587 2008-06-04  Junjie Gu <jgu@tensilica.com>
588
589         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
590         comparison for frame pointers.
591
592 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
593
594         PR target/27386
595         * config/avr/avr.h (PUSH_ROUNDING): Remove.
596
597 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
598
599         PR target/30243
600         * builtins.c (expand_builtin_signbit): Don't take lowpart when
601         register is already smaller or equal to required mode. 
602
603 2008-06-04  Xinliang David Li  <davidxl@google.com>
604
605         * tree-call-cdce.c: New file. 
606         (cond_dead_built_in_calls): New static variable.
607         (input_domain): New struct.
608         (check_pow): New function.
609         (check_builtin_call): Ditto.
610         (check_target_format): Ditto.
611         (is_call_dce_candidate): Ditto.
612         (gen_one_condition): Ditto.
613         (gen_conditions_for_domain): Ditto.
614         (get_domain): Ditto.
615         (gen_conditions_for_pow_cst_base): Ditto.
616         (gen_conditions_for_pow_int_base): Ditto.
617         (gen_conditions_for_pow): Ditto.
618         (get_no_error_domain): Ditto.
619         (gen_shrink_wrap_conditions): Ditto.
620         (shrink_wrap_one_built_in_call): Ditto.
621         (shink_wrap_conditional_dead_built_in_calls): Ditto.
622         (tree_call_cdce): Ditto.
623         (gate_call_cdce): Ditto.
624         (pass_call_cdce): New gimple pass.
625         * passes.c: (init_optimization_passes): New pass.
626         * tree-pass.h: New pass declaration.
627         * opts.c (decode_options): New flag setting.
628         * common.opt: Add -ftree-builtin-call-dce flag.
629         * Makefile.in: Add new source file.
630         * tempvar.def: New tv_id.
631         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
632
633 2008-06-04  Richard Guenther  <rguenther@suse.de>
634
635         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
636         (is_call_clobbered): Always check var_ann->call_clobbered.
637         (mark_call_clobbered): Always set var_ann->call_clobbered.
638         (clear_call_clobbered): Always clear var_ann->call_clobbered.
639         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
640         (reset_alias_info): Clear call clobbering info on MTAGs and
641         globals as well.
642         (set_pt_anything): Set pt_global_mem.
643         (create_tag_raw): Adjust comment.
644         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
645
646 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
647             Maxim Kuvyrkov  <maxim@codesourcery.com>
648
649         * config/m68k/m68k.opt (mxgot): New option.
650         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
651         (m68k_output_addr_const_extra): New.
652         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
653         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
654         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
655         * doc/invoke.texi (M680x0 Options): Document -mxgot.
656
657 2008-06-04  Richard Guenther  <rguenther@suse.de>
658
659         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
660         negative or non-representable offsets.
661
662 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
663
664         * config/i386/i386.c (ix86_gen_leave): New.
665         (ix86_gen_pop1): Likewise.
666         (ix86_gen_add3): Likewise.
667         (ix86_gen_sub3): Likewise.
668         (ix86_gen_sub3_carry): Likewise.
669         (ix86_gen_one_cmpl2): Likewise.
670         (ix86_gen_monitor): Likewise.
671         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
672         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
673         ix86_gen_one_cmpl2 and ix86_gen_monitor.
674         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
675         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
676         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
677         (ix86_expand_epilogue): Updated.
678         (print_operand): Handle integer register operand for 'z'.
679         (ix86_expand_strlensi_unroll_1): Likewise.
680         (ix86_expand_strlen): Likewise.
681         (ix86_expand_builtin): Likewise.
682         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
683         mov{q}/mov{l} and add{q}/add{l}.
684
685 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
686
687         * config/i386/i386.md (P): New mode iterator.
688         (SFmode push_operand splitter): Macroize DImode and SImode pushes
689         using P mode iterator.
690         (DFmode push_operand splitter): Ditto.
691         (XFmode push_operand splitter): Ditto.
692         (DFmode float_extend SFmode push_operand splitter): Ditto.
693         (XFmode float_extend SFmode push_operand splitter): Do not generate
694         SImode pushes for 64bit target.  Macroize Dimode and SImode
695         pushes using P mode iterator.
696         (XFmode float_extend DFmode push_operand splitter): Ditto.
697
698 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
699
700         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
701         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
702         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
703         return type to int.
704         (ix86_call_abi_override): Remove check for call_used_regs.
705
706 2008-06-03  Richard Guenther  <rguenther@suse.de>
707
708         * tree-ssa-structalias.c (find_func_aliases): Add constraints
709         for the lhs of calls if the return type contains pointers.
710
711 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
712
713         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
714         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
715         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
716         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
717         of cfun and DEFAULT_ABI to deceide abi mode.
718         (DEFAULT_ABI): New.
719         (REG_PARM_STACK_SPACE): Removed.
720         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
721         (STACK_BOUNDARY): Use default target to deceide stack boundary.
722         * config/i386/i386-protos.h (ix86_cfun_abi): New.
723         (ix86_function_abi): Likewise.
724         (ix86_function_type_abi): Likewise.
725         (ix86_call_abi_override): Likewise.
726         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
727         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
728         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
729         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
730         specific defines.
731         (X86_64_REGPARM_MAX): New.
732         (X86_64_SSE_REGPARM_MAX): New.
733         (X64_REGPARM_MAX): New.
734         (X64_SSE_REGPARM_MAX): New.
735         (X86_32_REGPARM_MAX): New.
736         (X86_32_SSE_REGPARM_MAX): New.
737         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
738         (ix86_function_regparm): Handle user calling abi.
739         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
740         by DEFAULT_ABI versus SYSV_ABI check.
741         (ix86_reg_parm_stack_space): New.
742         (ix86_function_type_abi): New.
743         (ix86_call_abi_override): New.
744         (ix86_function_abi): New.
745         (ix86_cfun_abi): New.
746         (init_cumulative_args): Call abi specific initialization.
747         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
748         (function_arg_64): Extend SSE_REGPARM_MAX check.
749         (function_arg (): Remove TARGET_64BIT_MS_ABI.
750         (ix86_pass_by_reference): Likewise.
751         (ix86_function_value_regno_p): Likewise.
752         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
753         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
754         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
755         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
756         (setup_incoming_varargs_64): Adjust regparm for call abi.
757         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
758         (ix86_va_start): Likewise.
759         (ix86_gimplify_va_arg): Likewise.
760         (ix86_expand_prologue): Likewise.
761         (output_pic_addr_const): Likewise.
762         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
763         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
764         (x86_output_mi_thunk): Likewise.
765         (x86_function_profiler): Likewise.
766         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
767         (SYSV_ABI, MS_ABI): New constants.
768         (DEFAULT_ABI): New.
769         (init_regs): Add prototype of function in regclass.c file.
770         (OVERRIDE_ABI_FORMAT): New.
771         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
772         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
773         (OUTGOING_REG_PARM_STACK_SPACE): New.
774         (ix86_reg_parm_stack_space): New prototype.
775         (CUMULATIVE_ARGS): Add call_abi member.
776         (machine_function): Add call_abi member.
777         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
778         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
779
780 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
781
782         PR target/34879
783         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
784         (avr_builtin_setjmp_frame_value): New function.
785         * config/avr/avr.md (nonlocal_goto_receiver): Define.
786         (nonlocal_goto): Define.
787
788 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
789
790         * config/mips/mips.c (mips_emit_loadgp): Return early if
791         there is nothing do to, otherwise emit a blockage if
792         !TARGET_EXPLICIT_RELOCS || crtl->profile.
793         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
794
795 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
796
797         * configure.ac: Drop unneeded backslash ending up in config.in.
798         * acinclude.m4: Likewise.
799         * config.in: Regenerate.
800
801 2008-05-26  Jan Hubicka  <jh@suse.cz>
802
803         * predict.c (maybe_hot_frequency_p): Break out of...
804         (maybe_hot_bb_p): ... here.
805         (maybe_hot_edge_p): New.
806         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
807         * basic-block.h (maybe_hot_edge_p): Declare.
808
809 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
810
811         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
812         (*cmpfp_<mode>_cc): Ditto.
813         (*fp_jcc_8<mode>_387): Ditto.
814         (*fop_<MODEF:mode>_2_i387): Ditto.
815         (*fop_<MODEF:mode>_3_i387): Ditto.
816         (*fop_xf_2_i387): Ditto.
817         (*fop_xf_3_i387): Ditto.
818
819 2008-06-02  Tomas Bily  <tbily@suse.cz>
820
821         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
822
823 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
824
825         * config/mips/mips.c (mips_valid_offset_p): New function.
826         (mips_valid_lo_sum_p): Likewise.
827         (mips_classify_address): Use them.
828         (mips_force_address): New function.
829         (mips_legitimize_address): Use it.
830         * config/mips/mips.md (MOVE128): New mode iterator.
831         (movtf): Require TARGET_64BIT.  Remove empty strings.
832         (*movtf_internal): Rename to...
833         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
834         of "R" and use {,fp}{load,store} attributes instead of "multi".
835         Use a separate define_split.
836         (*movtf_mips16): New pattern.
837
838 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
839
840         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
841         * config/mips/mips.c (mips_expand_before_return): New function.
842         (mips_expand_epilogue): Call it.
843         * config/mips/mips.md (return): Turn into a define_expand.
844         (*return): New insn.
845
846 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
847
848         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
849         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
850         functions.  Do not emit uses and clobbers of CONCATs; individually
851         use and clobber their operands.
852         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
853         gen_clobber, emit_use and gen_use.
854         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
855         (expand_builtin_return): Likewise.
856         * cfgbuild.c (count_basic_blocks): Likewise.
857         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
858         * explow.c (emit_stack_restore): Likewise.
859         * expmed.c (extract_bit_field_1): Likewise.
860         * expr.c (convert_move, emit_move_complex_parts): Likewise.
861         (emit_move_multi_word, store_constructor): Likewise.
862         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
863         (thread_prologue_and_epilogue_insns): Likewise.
864         * lower-subreg.c (resolve_simple_move): Likewise.
865         * optabs.c (widen_operand, expand_binop): Likewise.
866         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
867         * reload.c (find_reloads): Likewise.
868         * reload1.c (eliminate_regs_in_insn): Likewise.
869         * stmt.c (expand_nl_goto_receiver): Likewise.
870         * config/alpha/alpha.md (builtin_longjmp): Likewise.
871         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
872         * config/arm/arm.c (arm_load_pic_register): Likewise.
873         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
874         * config/arm/arm.md (untyped_return): Likewise.
875         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
876         * config/avr/avr.c (expand_prologue): Likewise.
877         * config/bfin/bfin.c (do_unlink): Likewise.
878         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
879         * config/cris/cris.c (cris_expand_prologue): Likewise.
880         * config/darwin.c (machopic_indirect_data_reference): Likewise.
881         (machopic_legitimize_pic_address): Likewise.
882         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
883         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
884         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
885         (ix86_expand_convert_uns_didf_sse): Likewise.
886         (ix86_expand_vector_init_general): Likewise.
887         * config/ia64/ia64.md (eh_epilogue): Likewise.
888         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
889         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
890         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
891         (config/iq2000/iq2000.c): Likewise.
892         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
893         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
894         (builtin_longjmp): Likewise.
895         * config/mn10300/mn10300.md (call, call_value): Likewise.
896         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
897         * config/pdp11/pdp11.md (abshi2): Likewise.
898         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
899         * config/s390/s390.c (s390_emit_prologue): Likewise.
900         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
901         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
902         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
903         * config/sh/sh.c (prepare_move_operands): Likewise.
904         (output_stack_adjust, sh_expand_epilogue): Likewise.
905         (sh_set_return_address, sh_expand_t_scc): Likewise.
906         * config/sparc/sparc.c (load_pic_register): Likewise.
907         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
908         * config/spu/spu.c (spu_expand_epilogue): Likewise.
909         * config/v850/v850.c (expand_epilogue): Likewise.
910
911 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
912
913         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
914         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
915         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
916         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
917         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
918         stack pointer register.
919         (output_movhi): Remove code for interrupt specific writing to the 
920         stack pointer register.
921
922 2008-05-31  Richard Guenther  <rguenther@suse.de>
923
924         PR tree-optimization/34244
925         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
926         (tree_expr_nonzero_warnv_p): Likewise.
927         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
928         ssa_name_nonnegative_p.
929         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
930         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
931         not tree_expr_nonzero_warnv_p.
932
933         PR tree-optimization/36262
934         Revert
935         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
936
937         PR tree-optimization/34244
938         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
939         (record_numbers_of_iterations): New function.
940         (execute_vrp): Cache the numbers of iterations of loops.
941         * tree-scalar-evolution.c (scev_reset_except_niters):
942         New function.
943         (scev_reset): Use scev_reset_except_niters.
944         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
945
946 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
947
948         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
949         __WORKAROUND_RETS when appropriate.
950
951 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
952
953         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
954         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
955         mode iterator.
956         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
957         *fop_df_comm_sse insn patterns using MODEF mode iterator.
958         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
959         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
960         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
961         *fop_df_1_mixed insn patterns using MODEF mode iterator.
962         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
963         *fop_df_1_sse insn patterns using MODEF mode iterator.
964         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
965         *fop_df_1_i387 insn patterns using MODEF mode iterator.
966         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
967         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
968         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
969         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
970         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
971         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
972         (*fop_xf_4_i387): Use <MODE> for mode attribute.
973         (*fop_xf_5_i387): Ditto.
974         (*fop_xf_6_i387): Ditto.
975
976 2008-05-30  Richard Guenther  <rguenther@suse.de>
977
978         * builtins.c (build_string_literal): Avoid generating
979         a non-gimple_val result.
980
981 2008-05-30  DJ Delorie  <dj@redhat.com>
982
983         * exec-tool.in: Use an environment variable (private) instead of a
984         file (shared) as a semaphore, so as to not break parallel builds.
985
986 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
987
988         * optabs.c (maybe_encapsulate_block): Remove.
989         (emit_libcall_block): Adjust accordingly.
990         * optabs.h (maybe_encapsulate_block): Remove prototype.
991
992         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
993         Don't use maybe_encapsulate_block.
994
995 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
996
997         * config/rs6000/rs6000.c (rs6000_legitimize_address,
998         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
999         rtx is a SYMBOL_REF before calling get_pool_constant.
1000
1001 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1002
1003         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1004
1005 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1006
1007         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1008         rather than OS names to choose INO_T_EQ definition.
1009         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1010         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1011
1012 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1013
1014         PR target/36348
1015         * config/darwin-f.c: New.
1016         * config/t-darwin: Added rule to build darwin-f.o.
1017         * config.gcc: Defined new variable, fortran_target_objs.
1018         (*-*-darwin*): Set fortran_target_objs.
1019         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1020         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1021         * configure: Regenerated.
1022
1023 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1024
1025         PR target/35771
1026         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1027         canonical type if needed.
1028
1029 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1030
1031         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1032
1033 2008-05-29  Richard Guenther  <rguenther@suse.de>
1034
1035         PR tree-optimization/36343
1036         PR tree-optimization/36346
1037         PR tree-optimization/36347
1038         * tree-flow.h (clobber_what_p_points_to): Declare.
1039         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1040         pointed-to variable is dereferenced is irrelevant to whether
1041         the pointer can access the pointed-to variable.
1042         (clobber_what_p_points_to): New function.
1043         * tree-ssa-alias.c (set_initial_properties): Use it.
1044         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1045         call clobber check for NMTs.
1046
1047 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1048         
1049         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1050         for printing gcov_type.
1051
1052 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1053
1054         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1055         and the eh region information.
1056         * value-prof.c (gimple_move_stmt_histograms): New function.
1057         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1058
1059 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1060
1061         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1062
1063 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1064
1065         * value-prof.c (tree_ic_transform): Print counts.
1066         * tree-profile.c (tree_gen_ic_func_profiler):
1067         Clear __gcov_indreict_call_callee variable to avoid misattribution
1068         of the profile.
1069
1070 2008-05-28  Rafael Espindola  <espindola@google.com>
1071
1072         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1073         invalid sharing.
1074
1075 2008-05-28  Richard Guenther  <rguenther@suse.de>
1076
1077         PR tree-optimization/36339
1078         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1079         and clobbering code out of the loop.
1080
1081 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1082
1083         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1084         letters defined.
1085
1086         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1087         s390_contiguous_bitmask_p, s390_symref_operand_p,
1088         s390_check_symref_alignment, s390_reload_larl_operand,
1089         s390_reload_symref_address): New functions.
1090         (s390_branch_condition_mnemonic): Support compare and branch
1091         instructions.
1092         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1093         and 'W' constraints.
1094         (s390_secondary_reload): Add secondary reloads for unaligned
1095         symbol refs or symbol refs to floating point or QI/TI mode
1096         integer values.
1097         (legitimate_address_p): Accept symbol references as addresses.
1098         (s390_expand_insv): Use rotate and insert selected bits
1099         instruction for insv when building for z10.
1100         (print_operand_address): Handle symbol ref addresses.
1101         (print_operand): Output modifier 'c' added for signed byte values.
1102         (s390_encode_section_info): Mark symbol refs with
1103         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1104
1105         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1106         (length attribute): RRF, RRR have 4 byte length.
1107         (FPALL, INTALL): New mode iterators added.
1108         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1109         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1110         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1111         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1112         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1113         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1114         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1115         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1116         instructions.
1117         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1118         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1119         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1120         reload<INTALL:mode><P:mode>_toreg_z10,
1121         reload<FPALL:mode><P:mode>_tomem_z10,
1122         reload<FPALL:mode><P:mode>_toreg_z10,
1123         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1124         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1125         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1126         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1127         definition.
1128         (movmem, clrmem, cmpmem): New splitters added.
1129
1130         * config/s390/predicates.md (larl_operand): Use
1131         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1132         SYMBOL_REF_ALIGN1_P.
1133         (s390_signed_integer_comparison,
1134         s390_unsigned_integer_comparison): New predicates.
1135
1136         * config/s390/s390-protos.h (s390_check_symref_alignment,
1137         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1138         s390_reload_symref_address,
1139         s390_compare_and_branch_condition_mask): Prototypes added.
1140
1141         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1142         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1143         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1144
1145 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1146
1147         * config/s390/s390.c (z10_cost): New cost function for z10.
1148         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1149         (s390_issue_rate): Adjust issue rate for z10.
1150         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1151         (processor_flags): Add PF_Z10.
1152         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1153         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1154         * gcc/config.gcc: Add z10.
1155
1156 2008-05-28  Richard Guenther  <rguenther@suse.de>
1157
1158         PR tree-optimization/36291
1159         * tree-flow. h (struct gimple_df): Remove var_anns member.
1160         * tree-flow-inline.h (gimple_var_anns): Remove.
1161         (var_ann): Simplify.
1162         * tree-dfa.c (create_var_ann): Simplify.
1163         (remove_referenced_var): Clear alias info from var_anns of globals.
1164         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1165         (delete_tree_ssa): Clear alias info from var_anns of globals.
1166         Do not free var_anns.
1167         (var_ann_eq): Remove.
1168         (var_ann_hash): Likewise.
1169
1170 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1171
1172         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1173         and loongson2f entries.
1174         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1175         * config/mips/mips.h (processor_type): Add Loongson-2E
1176         and Loongson-2F entries.
1177         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1178         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1179         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1180         * doc/invoke.texi (MIPS Options): Document loongson2e
1181         and loongson2f processor names.
1182
1183 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1184
1185         PR target/35767
1186         PR target/35771
1187         * config/i386/i386.c (ix86_function_arg_boundary): Use
1188         alignment of canonical type.
1189         (ix86_expand_vector_move): Check unaligned memory access for
1190         all SSE modes.
1191
1192 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1193
1194         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1195         Moved to the front of file.
1196
1197 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1198             H.J. Lu  <hongjiu.lu@intel.com>
1199
1200         * dwarf2out.c (current_fde): New.
1201         (add_cfi): Use it.
1202         (lookup_cfa:): Likewise.
1203         (dwarf2out_end_epilogue): Likewise.
1204         (dwarf2out_note_section_used): Likewise.
1205
1206 2008-05-27  Michael Matz  <matz@suse.de>
1207
1208         PR c++/27975
1209         * c.opt (Wenum-compare): New warning option.
1210         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1211
1212 2008-05-27  Michael Matz  <matz@suse.de>
1213
1214         PR middle-end/36326
1215         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1216         non-BLKmode types.
1217         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1218         into memory as tail calls.
1219
1220 2008-05-27  Richard Guenther  <rguenther@suse.de>
1221
1222         PR tree-optimization/36339
1223         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1224         pointers cause all addressable variables to be call clobbered.
1225
1226 2008-05-27  Richard Guenther  <rguenther@suse.de>
1227
1228         PR tree-optimization/36245
1229         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1230
1231 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1232
1233         * config/s390/s390.md: Replace all occurences of the 'm'
1234         constraint with 'RT'.
1235
1236 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1237
1238         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1239         definitions added.
1240         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1241         "*movdi_64".
1242         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1243         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1244         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1245
1246 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1247
1248         * reload.c: (find_reloads): Skip alternatives according to the
1249         "enabled" attribute. Constify the constraint variable.
1250         * recog.c (get_attr_enabled): Add default implementation.
1251         (extract_insn): Set the alternative_enabled_p array
1252         in the recog_data struct.
1253         (preprocess_constraints, constrain_operands): Skip
1254         alternatives according to the "enabled" attribute
1255         * recog.h (struct recog_data): New field alternative_enabled_p.
1256         (skip_alternative): New inline function.
1257         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1258         (record_reg_classes): Skip alternative according to the
1259         "enabled" attribute.
1260
1261         * doc/md.texi: Add documention for the "enabled" attribute.
1262
1263 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1264
1265         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1266         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1267         constraint with TARGET_MEM_CONSTRAINT.
1268         * recog.c (asm_operand_ok, preprocess_constraints,
1269         constrain_operands): Likewise.
1270         * regclass.c (record_reg_classes): Likewise.
1271         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1272         * reload1.c (maybe_fix_stack_asms): Likewise.
1273         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1274         * recog.h: Adjust comment.
1275         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1276         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1277         * doc/md.texi: Add a note to description of 'm' constraint.
1278         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1279
1280 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1281
1282         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1283         that the bitfield is of integral type before testing its precision.
1284
1285 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1286             Sa Liu  <saliu@de.ibm.com> 
1287
1288         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1289         __modti3, __udivti3, __umodti3 and __udivmodti4.
1290         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1291         that implement TImode mul and div functions.
1292         * config/spu/multi3.c: New. Implement __multi3.
1293         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1294         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1295         functions on SPU.
1296
1297 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1298
1299         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1300         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1301         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1302         tls_sysv_suffix): New mode and mode attribute iterators.
1303         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1304         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1305         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1306         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1307         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1308         iterators.
1309
1310 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1311
1312         PR tree-optimization/36329
1313         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1314         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1315         * cgraphbuild.c (initialize_inline_failed): Use the latter
1316         macro in lieu of the former.
1317         * ipa-inline.c (cgraph_mark_inline): Likewise.
1318         (cgraph_decide_inlining_of_small_function): Likewise.
1319         (cgraph_decide_inlining): Likewise.
1320         (cgraph_decide_inlining_incrementally): Likewise.
1321
1322 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1323             Anatoly Sokolov  <aesok@post.ru>
1324
1325         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1326         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1327         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1328         optimization for 'avr6' architecture.
1329
1330 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1331
1332         PR target/34932
1333         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1334
1335 2008-05-26  Richard Guenther  <rguenther@suse.de>
1336
1337         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1338         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1339
1340 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1341
1342         PR middle-end/36253
1343         * caller-save.c (insert_restore): Verify alignment of spill space.
1344         (insert_save): Likewise.
1345         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1346         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1347         (STACK_SLOT_ALIGNMENT): Likewise.
1348         * function.c (LOCAL_ALIGNMENT): Removed.
1349         (get_stack_local_alignment): New.
1350         (assign_stack_local): Use it.  Set alignment on stack slot.
1351         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1352         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1353         (STACK_SLOT_ALIGNMENT): New.
1354         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1355         stack slot in XFmode.
1356
1357         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1358
1359 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1360
1361         PR/36321
1362         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1363         argument operand in rax isn't removed.
1364
1365 2008-05-26  Richard Guenther  <rguenther@suse.de>
1366
1367         PR middle-end/36300
1368         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1369         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1370
1371 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1372
1373         PR bootstrap/36331
1374         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1375
1376 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1377
1378         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1379         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1380
1381 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1382
1383         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1384         build a trampoline if we don't want one.
1385         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1386         return zero for nested functions if we don't want a trampoline.
1387
1388 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1389
1390         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1391
1392 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1393
1394         PR fortran/18428
1395         * c.opt: Removed undocumented option '-lang-fortran'.
1396         * c-common.h: Removed global variable 'lang_fortran'.
1397         * c-opts.c (c_common_handle_option): Removed code to handle
1398         option '-lang-fortran'. Updated includes.
1399         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1400         definition of '__GFORTRAN__'.
1401         (define__GNUC__): Reimplemented to use BASEVER and
1402         cpp_define_formatted.
1403         (builtin_define_with_value_n): Removed.
1404         * c-incpath.h: Renamed to ...
1405         * incpath.h: ... this.
1406         * c-incpath.c: Renamed to ...
1407         * incpath.c: ... this. Updated includes.
1408         * fix-header.c: Updated includes.
1409         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1410         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1411         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1412
1413 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1414
1415         * tree.h: Update the table of flags used on tree nodes.
1416         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1417         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1418         (FORCED_LABEL): Add access check.
1419         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1420         (ASM_INPUT_P): Likewise.
1421         (ASM_VOLATILE_P): Likewise.
1422         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1423         (OMP_SECTION_LAST): Access private_flag directly.
1424         (OMP_RETURN_NOWAIT): Likewise.
1425         (OMP_PARALLEL_COMBINED): Likewise.
1426         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1427         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1428         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1429         deprecated_flag directly.
1430
1431 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1432
1433         * final.c (frame_pointer_needed): Removed.
1434         * flags.h (frame_pointer_needed): Likewise.
1435
1436         * function.h (rtl_data): Add frame_pointer_needed.
1437         (frame_pointer_needed): New.
1438
1439 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1440
1441         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1442
1443 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1444
1445         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1446         SRC is a REG.
1447
1448 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1449
1450         * c-common.c (strip_array_types): Move function to..
1451         * tree.c: ..here.
1452         (get_inner_array_type): Delete.
1453         * c-common.h (strip_array_types): Move declaration to..
1454         * tree.h: ..here.
1455         (get_inner_array_type): Delete.
1456         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1457         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1458         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1459         * config/pa/pa.c (emit_move_sequence): Likewise.
1460
1461 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1462
1463         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1464         attribute to 34.
1465
1466 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1467
1468         * function.c: Include target hook for nonlocal_goto frame value.
1469
1470 2008-05-24  Richard Guenther  <rguenther@suse.de>
1471
1472         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1473         variable can be only accessed through a pointer or a union.
1474
1475 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1476
1477         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1478         * doc/extend.texi: Likewise.
1479
1480 2008-05-23  DJ Delorie  <dj@redhat.com>
1481
1482         * config/m32c/jump.md (untyped_call): Add.
1483
1484         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1485         for A24 to PSImode.
1486         (m32c_address_cost): Detail costs for indirect offsets.
1487
1488 2008-05-23  Rafael Espindola  <espindola@google.com>
1489
1490         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1491         if a node is a SUBREG.
1492         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1493         is a SUBREG.
1494
1495 2008-05-23  Paul Brook  <paul@codesourcery.com>
1496             Carlos O'Donell  <carlos@codesourcery.com>
1497
1498         * doc/extend.texi: Clarify use of __attribute__((naked)).
1499         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1500         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1501         * function.c (use_register_for_decl): Use
1502         targetm.calls.allocate_stack_slots_for_args.
1503         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1504         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1505         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1506
1507 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1508
1509         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1510
1511 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1512
1513         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1514         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1515         is only rounded once.
1516
1517 2008-05-23  Richard Guenther  <rguenther@suse.de>
1518
1519         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1520
1521 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1522             Jakub Jelinek  <jakub@redhat.com>
1523
1524         PR target/36079
1525         * configure.ac: Handle --enable-cld.
1526         * configure: Regenerated.
1527         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1528         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1529         (ix86_current_function_needs_cld): New define.
1530         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1531         (cld): New isns pattern.
1532         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1533         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1534         * config/i386/i386.opt (mcld): New option.
1535         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1536         TARGET_CLD and ix86_current_function_needs_cld.
1537         (override_options): Use -mcld by default for 32-bit code if
1538         USE_IX86_CLD.
1539
1540         * doc/install.texi (Options specification): Document --enable-cld.
1541         * doc/invoke.texi (Machine Dependent Options)
1542         [i386 and x86-64 Options]: Add -mcld option.
1543         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1544
1545 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1546         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1547         (return_in_memory_64): Likewise.
1548         (return_in_memory_ms_64): Likewise.
1549
1550 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1551
1552         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1553         * builtins.c (fold_builtin_fpclassify): New.
1554         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1555         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1556         * c-common.c (handle_type_generic_attribute): Adjust to accept
1557         fixed arguments before an elipsis.
1558         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1559         * doc/extend.texi: Document __builtin_fpclassify.
1560
1561 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1562
1563         * omp-low.c (gate_expand_omp_ssa): Remove.
1564         (pass_expand_omp_ssa): Remove.
1565         (gate_expand_omp): Do not check for flag_openmp_ssa.
1566         * common.opt (-fopenmp-ssa): Remove.
1567         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1568
1569 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1570
1571         * config/sh/sh.opt (mfixed-range): New option.
1572         * config/sh/sh-protos.h (sh_fix_range): Declare.
1573         * config/sh/sh.c (sh_fix_range): New function.
1574         * config/sh/sh.h (sh_fixed_range_str): Declare.
1575         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1576         is not empty.
1577         * doc/invoke.texi (SH Options): Document -mfixed-range.
1578
1579 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1580
1581         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1582         it before the redeclaration.
1583
1584 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1585
1586         * config/avr/avr.c (get_sequence_length): Add new function.
1587         (expand_prologue, expand_epilogue): Remove duplicate code.
1588
1589 2008-05-22  Rafael Espindola  <espindola@google.com>
1590
1591         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1592         sharing.
1593
1594 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1595
1596         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1597         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1598
1599         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1600         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1601         (vect_update_misalignment_for_peel): Likewise.
1602         (vector_alignment_reachable_p): Likewise.
1603         * tree-vect-transform.c (vectorizable_load): Likewise.
1604         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1605         (get_vectype_for_scalar_type): Pass mode of scalar_type
1606         to UNITS_PER_SIMD_WORD.
1607
1608         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1609         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1610         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1611         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1612         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1613
1614 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1615
1616         PR tree-optimization/36293
1617         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1618         if the first load must be skipped because of a gap.
1619
1620 2008-05-22  Richard Guenther  <rguenther@suse.de>
1621
1622         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1623         more cases of offset disambiguation that is possible if
1624         strict-aliasing rules apply.
1625         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1626         for basic offset and type-based disambiguation.
1627
1628 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1629
1630         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1631         ix86_expand_vector_set on V16QImode for SSE4.1.
1632
1633 2008-05-21  Tom Tromey  <tromey@redhat.com>
1634
1635         * c.opt (Wimport): Mark as undocumented.
1636         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1637         -Wno-import.
1638         (Warning Options): Likewise.
1639         * doc/cppopts.texi: Don't mention -Wimport.
1640
1641 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1642
1643         PR tree-optimization/36287
1644         PR tree-optimization/36286
1645         * lambda-code.c (build_access_matrix): Do not use the loop->num
1646         for computing the number of induction variables: use the loop depth
1647         instead.
1648
1649 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1650
1651         PR/36280
1652         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1653         option -f(no-)leading-underscore.
1654
1655 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1656
1657         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1658         GET_MODE_NUNITS (mode).
1659
1660 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1661
1662         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1663         (-mmulhw): Add 464 to description.
1664         (-mdlmzb): Likewise.
1665         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1666         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1667         464fp entries.
1668         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1669         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1670         * config/rs6000/rs6000.md: Update comments for 464.
1671
1672 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1673
1674         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1675
1676 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1677
1678         * config/i386/sse.md (vec_extractv4sf): Removed.
1679         (vec_extractv2df): Likewise.
1680         (vec_extractv2di): Likewise.
1681         (vec_extractv4si): Likewise.
1682         (vec_extractv8hi): Likewise.
1683         (vec_extractv16qi): Likewise.
1684         (vec_extract<mode>): New.
1685
1686 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1687
1688         * config/i386/sse.md (vec_setv4sf): Removed.
1689         (vec_setv2df): Likewise.
1690         (vec_setv2di): Likewise.
1691         (vec_setv4si): Likewise.
1692         (vec_setv8hi): Likewise.
1693         (vec_setv16qi): Likewise.
1694         (vec_set<mode>): New.
1695
1696 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1697
1698         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1699         goto for vec_concat and vec_interleave.
1700
1701 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1702
1703         * config/i386/sse.md (vec_initv4sf): Removed.
1704         (vec_initv2df): Likewise.
1705         (vec_initv2di): Likewise.
1706         (vec_initv4si): Likewise.
1707         (vec_initv8hi): Likewise.
1708         (vec_initv16qi): Likewise.
1709         (vec_init<mode>): New.
1710
1711 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1712
1713         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1714
1715 2008-05-21  Tom Tromey  <tromey@redhat.com>
1716
1717         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1718         (zone_find_object_offset): Likewise.
1719         (gt_ggc_m_S): Likewise.
1720         (highest_bit): Likewise.
1721         * ggc-page.c (gt_ggc_m_S): New function.
1722         * stringpool.c (string_stack): Remove.
1723         (init_stringpool): Update.
1724         (ggc_alloc_string): Use ggc_alloc.
1725         (maybe_delete_ident): New function.
1726         (ggc_purge_stringpool): Likewise.
1727         (gt_ggc_m_S): Remove.
1728         * ggc-common.c (ggc_protect_identifiers): New global.
1729         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1730         ggc_protect_identifiers.
1731         * ggc.h (ggc_protect_identifiers): Declare.
1732         (gt_ggc_m_S): Update.
1733         (ggc_purge_stringpool): Declare.
1734         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1735         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1736         special case.
1737         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1738
1739 2008-05-21  David S. Miller  <davem@davemloft.net>
1740
1741         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1742         tmake_file.
1743
1744 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1745
1746         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1747         once finished.
1748
1749 2008-05-20  David Daney  <ddaney@avtrex.com>
1750
1751         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1752         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1753         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1754         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1755         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1756         (atomic_hiqi_op): New define_code_iterator.
1757         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1758         mips_expand_compare_and_swap_12.
1759         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1760         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1761         (sync_<optab><mode>, sync_old_<optab><mode>,
1762         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1763         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1764         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1765         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1766         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1767         (test_and_set_12): New insn.
1768         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1769         sync_new_<optab><mode>, sync_old_nand<mode>,
1770         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1771         clobber to operand 0 for SI and DI mode insns.
1772         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1773         mips_gen_fn_4): New typedefs.
1774         (mips_gen_fn_ptrs): Define new union type.
1775         (mips_expand_compare_and_swap_12): Remove declaration.
1776         (mips_expand_atomic_qihi): Declare function.
1777         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1778         (mips_expand_atomic_qihi): ... this.  Use new generator function
1779         parameter.
1780         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1781         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1782         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1783         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1784         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1785         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1786         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1787         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1788         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1789         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1790         New macros.
1791
1792 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1793
1794         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1795         the missing break.
1796
1797 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1798
1799         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1800         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1801         (avr_attribute_table): Add 'OS_main' function attribute.
1802         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1803         functions with 'OS_main' attribute.
1804
1805 2008-05-20  Richard Guenther  <rguenther@suse.de>
1806
1807         PR tree-optimization/35204
1808         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1809         helper, split out from ...
1810         (DFS): ... here.  Make the DFS walk non-recursive.
1811
1812 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1813             Jan Sjodin  <jan.sjodin@amd.com>
1814
1815         PR tree-optimization/36181
1816         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1817         (parallelize_loops): Don't parallelize when the loop has vector
1818         phi nodes.
1819
1820 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1821             Sebastian Pop  <sebastian.pop@amd.com>
1822
1823         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1824         matrix, and never look at the tree representation of the memory
1825         accesses.
1826         (linear_transform_loops): Computes parameters and access matrices.
1827         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1828         when fails.
1829         (access_matrix_get_index_for_parameter): New.
1830         * tree-data-ref.h (struct access_matrix): New.
1831         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1832         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1833         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1834         am_vector_index_for_loop): New.
1835         (struct data_reference): Add field access_matrix.
1836         (DR_ACCESS_MATRIX): New.
1837         (compute_data_dependences_for_loop): Update declaration.
1838         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1839         * lambda.h (lambda_vector_vec_p): Declared.
1840         * lambda-code.c: Depend on pointer-set.h.
1841         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1842         av_for_af_base, av_for_af, build_access_matrix,
1843         lambda_compute_access_matrices): New.
1844         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1845
1846 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1847
1848         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1849         $SOURCEDIR/include.
1850
1851 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1852             Sebastian Pop  <sebastian.pop@amd.com>
1853
1854         PR tree-optimization/36206
1855         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1856         FOLD_CONVERSIONS.
1857         (instantiate_scev_1): Rename flags to fold_conversions.
1858         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1859         outeside instantiation_loop.
1860         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1861         (evolution_function_is_affine_or_constant_p): Removed.
1862         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1863         instantiate_scev.
1864         (analyze_siv_subscript): Pass in the loop nest number.
1865         Call evolution_function_is_affine_in_loop instead of 
1866         evolution_function_is_affine_p.
1867         (analyze_overlapping_iterations): Pass in the loop nest number.
1868
1869 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1870             Sebastian Pop  <sebastian.pop@amd.com>
1871
1872         PR tree-optimization/36206
1873         * tree-chrec.h (chrec_fold_op): New.
1874         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1875         and other trees.
1876
1877 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1878
1879         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1880         (DIRS_EQ): New.
1881         (remove_duplicates): Do not set inode on non-inode systems.
1882         Use DIRS_EQ.
1883
1884 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1885
1886         * config.gcc (tm_file): Update comments about relative pathnames.
1887
1888 2008-05-20  Richard Guenther  <rguenther@suse.de>
1889
1890         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1891         * tree-ssa-sccvn.c (process_scc): Likewise.
1892         * tree-ssa-sink.c (execute_sink_code): Likewise.
1893         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1894         * tree-vrp.c (process_assert_insertions): Likewise.
1895         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1896         (perform_tree_ssa_dce): Likewise.
1897         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1898         (dump_dominator_optimization_stats): Likewise.
1899         * tree-vectorizer.c (vectorize_loops): Likewise.
1900
1901 2008-05-20  Richard Guenther  <rguenther@suse.de>
1902
1903         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1904
1905 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1906
1907         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1908         (ix86_i386elf_return_in_memory): Likewise.
1909         (ix86_i386interix_return_in_memory): Likewise.
1910         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1911         (SUBTARGET_RETURN_IN_MEMORY): New.
1912         * config/i386/i386elf.h: Likewise.
1913         * config/i386/ptx4-i.h: Likewise.
1914         * config/i386/sol2-10.h: Likewise.
1915         * config/i386/sysv4.h: Likewise.
1916         * config/i386/vx-common.h: Likewise.
1917         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1918         * config/i386/i386.c (ix86_return_in_memory): Made static and
1919         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1920         (ix86_i386elf_return_in_memory): Removed.
1921         (ix86_i386interix_return_in_memory): Removed.
1922         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1923         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1924
1925 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1926
1927         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1928
1929 2008-05-19  Xinliang David Li  <davidxl@google.com>
1930
1931         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1932         * opts.c: Ditto.
1933         * common.opt: Ditto.
1934         * doc/invoke.texi: Ditto.
1935
1936 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1937
1938         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1939         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1940
1941 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1942
1943         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1944         sizes of operand array from 8/4 to 4/2.
1945         (ix86_expand_vector_init_general): Change size of operand array
1946         from 32 to 16.  Remove op0, op1 and half_mode.
1947
1948 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1949
1950         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1951         (ix86_expand_vector_init_interleave): Likewise.
1952         (ix86_expand_vector_init_general): Use them.  Assert
1953         word_mode == SImode when n_words == 4.
1954
1955 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1956
1957         * config/i386/i386.c (ix86_secondary_reload): New static function.
1958         (TARGET_SECONDARY_RELOAD): New define.
1959         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1960         * config/i386/i386.md (reload_outqi): Remove.
1961
1962 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1963
1964         PR middle-end/35509
1965         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1966         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1967         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1968         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1969         (fold_builtin_1): Likewise.
1970         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1971         c-common.c (check_builtin_function_arguments): Handle
1972         BUILT_IN_ISINF_SIGN.
1973         * doc/extend.texi: Document __builtin_isinf_sign.
1974         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1975
1976 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1977
1978         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1979         EH cleanup at the end of the pass, search for those that have been
1980         turned into forwarder blocks and do the cleanup on their successor.
1981
1982 2008-05-18  Richard Guenther  <rguenther@suse.de>
1983
1984         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1985         pointers to sizetype and vice versa.
1986
1987 2008-05-18 Xinliang David Li   <davidxl@google.com>
1988
1989         * gcc/tree-ssa-dce.c: Coding style fix.
1990         (check_pow): Documentation comment. 
1991         (check_log): Documenation comment. Coding style fix.
1992         (is_unnecessary_except_errno_call): Ditto.
1993         (gen_conditions_for_pow): Ditto.
1994         (gen_conditions_for_log): Ditto.
1995         (gen_shrink_wrap_conditions): Ditto.
1996         (shrink_wrap_one_built_in_calls): Ditto.
1997         * gcc/doc/invoke.texi: Better documentation string.
1998         * ChangeLog: Fix wrong change log entries from 
1999         May 17 checkin on function call DCE.
2000
2001 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2002
2003         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2004
2005 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2006
2007         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2008         * df-problems.c (simulation routines): Fixed block comment to
2009         properly say how to add forwards scanning functions.
2010         
2011 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2012
2013         * tree-inline.c (setup_one_parameter): Remove dead code.
2014
2015 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2016
2017         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2018         a BIT_AND_EXPR only for an INTEGER_TYPE.
2019
2020 2008-05-17 Xinliang David Li   <davidxl@google.com>
2021
2022         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2023         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2024         functions to check for eliminating math functions that are pure 
2025         except for setting errno.
2026         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2027         general condition expressions for shrink-wrapping pow/log calls.
2028         (gen_shrink_wrap_conditions): Ditto.
2029         (shrink_wrap_one_built_in_call): Ditto.
2030         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2031         (mark_operand_necessary): If debugging, output if OP is necessary.
2032         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2033         unnecessary.
2034         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2035         opt level >= 2.
2036         * gcc/common.opt: New user flag -ftree-builtin-dce.
2037         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2038
2039 2008-05-16  David S. Miller  <davem@davemloft.net>
2040
2041         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2042         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2043
2044 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2045
2046         PR target/36246
2047         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2048
2049 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2050
2051         * ifcvt.c (dead_or_predicable): Rename
2052         df_simulate_one_insn_backwards to df_simulate_one_insn.
2053         * recog.c (peephole2_optimize): Ditto.
2054         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2055         Ditto.
2056         * df.h: Rename df_simulate_one_insn_backwards to
2057         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2058         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2059         scanning of defs and uses.
2060         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2061         (df_simulate_one_insn_forwards): Removed.
2062
2063 2008-05-16  Doug Kwan  <dougkwan@google.com>
2064
2065         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2066         QNaN & SNaN.
2067         (real_from_string): Handle NaNs and Inf as approriate.
2068
2069 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2070
2071         * doc/gty.texi (Source Files Containing Type Information): Note
2072         that headers should appear first in the gtfiles list.
2073
2074 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2075
2076         * tree.def (COND_EXEC): Properly documented this code.
2077
2078 2008-05-16  Diego Novillo  <dnovillo@google.com>
2079
2080         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2081         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2082         the new field.
2083
2084 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2085
2086         * tree-ssa-dse (max_stmt_uid): Removed.
2087         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2088         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2089         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2090         * function.h (cfun.last_stmt_uid): New field.
2091         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2092         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2093         New functions.
2094         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2095         (create_stmt_ann): Initialize the ann->uid field.
2096         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2097         with new calls.
2098         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2099
2100 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2101
2102         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2103         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2104         (init_empty_tree_cfg): Call it.
2105
2106 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2107
2108         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2109         Update all users.
2110
2111 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2112
2113         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2114         * tree-dump.c (dump_options): New verbose option.
2115         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2116         Add verbose dump.
2117         * tree-pass.h (TDF_VERBOSE): New dump flag.
2118         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2119         (tree-flow.h): Added include.
2120         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2121
2122 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2123
2124         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2125
2126         From Jie Zhang  <jie.zhang@analog.com>
2127         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2128         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2129         mcpu=bf561-none and mcpu=bf561-0.2.
2130         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2131         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2132         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2133         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2134         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2135         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2136         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2137         option.
2138         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2139         (cputype_selected): Remove.
2140         (bfin_handle_option): Don't use cputype_selected.
2141         (override_options): When no mcpu option, enable all workarounds.
2142         Don't use bfin_workarounds.
2143         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2144         processor type.
2145         (DEFAULT_CPU_TYPE): Don't define.
2146
2147 2008-05-16  Richard Guenther  <rguenther@suse.de>
2148
2149         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2150         on deletion of the last stmt.
2151
2152 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2153
2154         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2155         V8HImode for SSE2 and V16QImode for SSE4.1.
2156
2157 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2158
2159         * cgraph.h (compute_inline_parameters): Made public.
2160         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2161         variable_generate_summary, function_write_summary,
2162         variable_write_summary, variable_read_summary.  Added generate_summary,
2163         write_summary, read_summary.
2164         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2165         pass_ipa_inline.function_generate_summary, to
2166         compute_inline_parameters. 
2167         * ipa-inline.c (compute_inline_parameters): Made public and added
2168         node parameter.
2169         (compute_inline_parameters_for_current): New function.
2170         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2171         (inline_generate_summary): Removed parameter and made to loop over
2172         all cgraph nodes.
2173         (pass_ipa_inline): Updated for new IPA_PASS structure.
2174         * passes.c (execute_ipa_summary_passes): Now is called once per
2175         pass rather than once per node*pass.
2176         
2177 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2178
2179         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2180         avr_have_mul_p, avr_asm_only_p): Remove variables.
2181         (avr_override_options): Remove initialization of removed variables.
2182         (avr_file_start):  Convert removed variables to fields of 
2183         'struct base_arch_s *avr_current_arch'. 
2184         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2185         (AVR_HAVE_MUL): (Ditto.).
2186         (AVR_HAVE_MOVW): (Ditto.).
2187         (AVR_HAVE_LPMX): (Ditto.). 
2188         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2189         avr_asm_only_p): Remove declaration.
2190
2191 2008-05-15  Diego Novillo  <dnovillo@google.com>
2192
2193         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2194         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2195
2196 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2197
2198         PR middle-end/36194
2199         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2200         Don't call record_truncated_value from here.
2201         (record_truncated_value): Turn it into a for_each_rtx callback.
2202         (record_truncated_values): New function.
2203         (combine_instructions): Call note_uses with record_truncated_values.
2204         Change name of check_conversion to check_promoted_subreg. 
2205
2206 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2207
2208         * doc/sourcebuild.texi: Document support for torture tests.
2209
2210 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2211
2212         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2213         to alternative 4 of operand 2.
2214
2215 2008-05-15  Richard Guenther  <rguenther@suse.de>
2216
2217         * tree-pass.h (current_pass): Declare.
2218         (get_pass_for_id): Likewise.
2219         * passes.c (passes_by_id, passes_by_id_size): New globals.
2220         (set_pass_for_id): New function.
2221         (get_pass_for_id): Likewise.
2222         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2223         (execute_function_todo): Flush per function statistics.
2224         * toplev.c (compile_file): Init statistics.
2225         (general_init): Do early statistics initialization.
2226         (finalize): Finish statistics.
2227         * statistics.h (statistics_early_init): Declare.
2228         (statistics_init): Likewise.
2229         (statistics_fini): Likewise.
2230         (statistics_fini_pass): Likewise.
2231         (statistics_counter_event): Likewise.
2232         (statistics_histogram_event): Likewise.
2233         * statistics.c: New file.
2234         * Makefile.in (OBJS-common): Add statistics.o.
2235         (statistics.o): Add dependencies.
2236         * doc/invoke.texi (-fdump-statistics): Document.
2237
2238         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2239         (insert): Likewise.
2240         (execute_pre): Use statistics_counter_event.
2241         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2242         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2243
2244 2008-05-15  Diego Novillo  <dnovillo@google.com>
2245
2246         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2247
2248         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2249         * tree-ssa-alias.c (new_type_alias): Remove references to
2250         sub-variables from comment.
2251         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2252
2253 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2254
2255         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2256         attribute to 1 only for insertps alternative.
2257
2258 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2259
2260         * config/bfin/bfin.md (loadbytes): New pattern.
2261         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2262         (bfin_init_builtins): Initialize it.
2263         (bdesc_1arg): Add it.
2264
2265 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2266
2267         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2268         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2269         * testsuite/lib/target-supports.exp: Add
2270         check_effective_target_fortran_integer_16.
2271
2272 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2273
2274         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2275         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2276         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2277         (TARGET_RETURN_IN_MEMORY): Define.
2278
2279 2008-05-15  Richard Guenther  <rguenther@suse.de>
2280
2281         PR middle-end/36244
2282         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2283         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2284         represent unmodifiable vars.
2285
2286 2008-05-15  Richard Guenther  <rguenther@suse.de>
2287
2288         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2289         INDIRECT_REF and TARGET_MEM_REF.
2290         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2291         TARGET_MEM_REF.
2292
2293 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2294             H.J. Lu  <hongjiu.lu@intel.com>
2295
2296         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2297         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2298         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2299         insn alternatives.  Add missing alternatives.
2300         (*vec_concatv2di_rex64_sse4_1): Likewise.
2301         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2302         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2303         Require TARGET_SSE.
2304
2305 2008-05-15  Richard Guenther  <rguenther@suse.de>
2306
2307         PR tree-optimization/36009
2308         PR tree-optimization/36204
2309         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2310         (determine_invariantness_stmt): Record the loop a store is
2311         always executed in.
2312         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2313         dependency.
2314
2315 2008-05-15  Richard Guenther  <rguenther@suse.de>
2316
2317         PR tree-optimization/34330
2318         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2319         through the pointer will alias the SMT.
2320
2321 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2322
2323         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2324
2325 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2326
2327         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2328
2329 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2330             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2331
2332         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2333         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2334         (vashl_optab): New optab for vector/vector shifts.
2335         (vashr_optab): Ditto.
2336         (vlshr_optab): Ditto.
2337         (vrotl_optab): Ditto.
2338         (vrotr_optab): Ditto.
2339         (optab_subtype): New enum for optab_for_tree_code call.
2340         (optab_for_tree_code): Add enum optab_subtype argument.
2341
2342         * optabs.c (optab_for_tree_code): Take an additional argument to
2343         distinguish between a vector shift by a scalar and vector shift by
2344         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2345         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2346         vector shift by a vector.
2347         (expand_widen_pattern_expr): Pass additional argument to
2348         optab_for_tree_code.
2349
2350         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2351         vrotl_optab, vrotr_optab.
2352
2353         * expr.c (expand_expr_real_1): Update calls to
2354         optab_for_tree_code to distinguish between vector shifted by a
2355         scalar and vector shifted by a vector.
2356         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2357         (supportable_narrowing_operation): Ditto.
2358         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2359         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2360         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2361         (vect_create_epilog_for_reduction): Ditto.
2362         (vectorizable_reduction): Ditto.
2363         (vectorizable_operation): Ditto.
2364         (vect_strided_store_supported): Ditto.
2365         (vect_strided_load_supported): Ditto.
2366         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2367         * expmed.c (expand_shift): Ditto.
2368
2369         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2370         scalar type.
2371         (ashr@var{m}3): Ditto.
2372         (vashl@var{m}3): Document new vector/vector shift standard name.
2373         (vashr@var{m}3): Ditto.
2374         (vlshr@var{m}3): Ditto.
2375         (vrotl@var{m}3): Ditto.
2376         (vrotr@var{m}3): Ditto.
2377
2378         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2379         (PPERM_INVERT): Ditto.
2380         (PPERM_REVERSE): Ditto.
2381         (PPERM_REV_INV): Ditto.
2382         (PPERM_ZERO): Ditto.
2383         (PPERM_ONES): Ditto.
2384         (PPERM_SIGN): Ditto.
2385         (PPERM_INV_SIGN): Ditto.
2386         (PPERM_SRC1): Ditto.
2387         (PPERM_SRC2): Ditto.
2388
2389         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2390         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2391         allows a memory operand to be the value being added, and split it
2392         to improve vectorization.
2393         (sse5_pmacsdqh_mem): Ditto.
2394         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2395         (sse5_mulv2div2di3_high): Ditto.
2396         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2397         (vec_pack_trunc_v4si): Ditto.
2398         (vec_pack_trunc_v2di): Ditto.
2399         (sse5_pcmov_<mode>): Remove code that tried to use use
2400         andps/andnps instead of pcmov.
2401         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2402         pmacsdqh instructions.
2403         (vec_widen_smult_lo_v4si): Ditto.
2404
2405         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2406         (PPERM_INVERT): Ditto.
2407         (PPERM_REVERSE): Ditto.
2408         (PPERM_REV_INV): Ditto.
2409         (PPERM_ZERO): Ditto.
2410         (PPERM_ONES): Ditto.
2411         (PPERM_SIGN): Ditto.
2412         (PPERM_INV_SIGN): Ditto.
2413         (PPERM_SRC1): Ditto.
2414         (PPERM_SRC2): Ditto.
2415         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2416         true/false tests.
2417         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2418         comparisons.
2419         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2420         says ignore whether the last reference is a memory operand.
2421
2422 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2423             Paolo Bonzini <bonzini at gnu dot org>
2424
2425         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2426         shift patterns.
2427
2428         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2429         (vlshr<mode>3): Rename from vlshr<mode>3.
2430         (vashr<mode>3): Rename from vashr<mode>3.
2431         (mulv4sf3): Change the names of vector shift patterns.
2432         (mulv4si3): Ditto.
2433         (negv4sf2): Ditt.
2434
2435         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2436         shift insns.
2437
2438         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2439         (SI_SHLHI): Ditto.
2440         (SI_SHL): Ditto.
2441         (SI_SHLI): Ditto.
2442         (SI_ROTH): Ditto.
2443         (SI_ROTHI): Ditto.
2444         (SI_ROT): Ditto.
2445         (SI_ROTI): Ditto.
2446         (SPU_RL_0): Ditto.
2447         (SPU_RL_1): Ditto.
2448         (SPU_RL_2): Ditto.
2449         (SPU_RL_3): Ditto.
2450         (SPU_RL_4): Ditto.
2451         (SPU_RL_5): Ditto.
2452         (SPU_RL_6): Ditto.
2453         (SPU_RL_7): Ditto.
2454         (SPU_SL_0): Ditto.
2455         (SPU_SL_1): Ditto.
2456         (SPU_SL_2): Ditto.
2457         (SPU_SL_3): Ditto.
2458         (SPU_SL_4): Ditto.
2459         (SPU_SL_5): Ditto.
2460         (SPU_SL_6): Ditto.
2461         (SPU_SL_7): Ditto.
2462
2463         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2464         (floatunssidf2_internal): Change vector/vector shift names.
2465         (floatunsdidf2_internal): Ditto.
2466         (mulv8hi3): Ditto.
2467         (ashrdi3): Ditto.
2468         (ashrti3): Ditto.
2469         (cgt_df): Ditto.
2470         (cgt_v2df): Ditto.
2471         (dftsv): Ditto.
2472         (vashl<mode>3): Rename from ashl<mode>3.
2473         (vashr<mode>3): Rename from ashr<mode>3.
2474         (vlshr<mode>3): Rename from lshr<mode>3.
2475         (vrotl<mode>3): Rename from rotl<mode>3.
2476
2477 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2478
2479         PR target/36224
2480         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2481         multiply gives the wrong value when doing widening multiplies.
2482         (vec_widen_smult_lo_v4si): Ditto.
2483
2484 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2485
2486         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2487         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2488         emit_library_call_value. 
2489         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2490         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2491         * calls.c (initialize_argument_information, precompute_arguments, 
2492         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2493         (precompute_arguments): Removed flags parameter.
2494         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2495         
2496 2008-05-14  Richard Guenther  <rguenther@suse.de>
2497
2498         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2499         Make sure to register the store if the use is a PHI_NODE.
2500
2501 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2502
2503         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2504         memory if the component is to be referenced in BLKmode according
2505         to get_inner_reference.
2506
2507 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2508
2509         * calls.c (emit_library_call_value_1): Restore code clearing
2510         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2511
2512 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2513             Nicolas Roche  <roche@adacore.com>
2514
2515         * configure.ac: Add support for a "gcc_subdir" variable in
2516         config-lang.in, to denote a subdirectory where the language/GCC
2517         integration files are to be found.
2518         * configure: Regenerate.
2519
2520 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2521
2522         PR tree-optimization/36098
2523         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2524         value for the first load in the group in case of a gap.
2525         (vect_build_slp_tree): Check that there are no gaps in loads.
2526
2527 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2528
2529         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2530         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2531         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2532         emit_insn and remove unneeded code to construct extra args.
2533         (emit_no_conflict_block): Removed.
2534         * optabls.h: (emit_no_conflict_block): Removed.
2535         * cse.c (cse_extended_basic_block): Remove search for
2536         REG_NO_CONFLICT note.
2537         * global.c: Removed incorrect comment added in revision 117.
2538         * expr.c (convert_move): Change call to emit_no_conflict_block to
2539         emit_insn.
2540         * recog.c: Change comments so that they do not mention
2541         REG_NO_CONFLICT.
2542         * local_alloc.c (combine_regs): Removed last parameter.
2543         (no_conflict_p): Removed.
2544         (block_alloc): Removed note, no_conflict_combined_regno and set
2545         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2546         (combine_regs): Removed already_dead and code to look for
2547         REG_NO_CONFLICT notes.
2548         * lower_subreg (remove_retval_note): Removed code to look for
2549         REG_NO_CONFLICT block.
2550         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2551         (resolve_clobber): Remove code to process libcalls that have
2552         REG_NO_CONFLICT notes.
2553         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2554         case.
2555         * combine.c (can_combine_p, distribute_notes):  Removed
2556         REG_NO_CONFLICT case.
2557         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2558         to emit_insns.
2559         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2560         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2561         Ditto.
2562         * reg-notes.def (NO_CONFLICT): Removed.
2563
2564 2008-05-14  David S. Miller  <davem@davemloft.net>
2565
2566         * config/sparc/sparc.c (sparc_profile_hook): If
2567         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2568         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2569         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2570
2571 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2572
2573         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2574
2575 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2576
2577         PR target/36222
2578         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2579         and op1 expansion before vector concat to have less live pseudos.
2580
2581 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2582
2583         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2584         ix86_expand_vector_set if supported.
2585
2586 2008-05-13  Diego Novillo  <dnovillo@google.com>
2587             Kenneth Zadeck  <zadeck@naturalbridge.com>
2588
2589         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2590
2591         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2592         phinodes_print_statistics, init_ssanames, fini_ssanames,
2593         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2594         release_ssa_name, release_defs, replace_ssa_name_symbol,
2595         ssanames_print_statistics): Move ...
2596         * tree-flow.h: ... here.
2597         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2598         Use FN instead of cfun.
2599         (make_ssa_name_fn): Rename from make_ssa_name.
2600         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2601         * tree-flow-inline.h (make_ssa_name): Move from
2602         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2603         * omp-low.c (expand_omp_parallel):
2604         * tree-flow-inline.h (redirect_edge_var_map_result):
2605         * tree-ssa.c (init_tree_ssa): Add argument FN.
2606         Use it instead of cfun.  Update all users.
2607
2608 2008-05-13  Tom Tromey  <tromey@redhat.com>
2609
2610         PR preprocessor/22168:
2611         * doc/cpp.texi (Top): Update menu.
2612         (Alternatives to Wrapper #ifndef): New node.
2613         (Other Directives): Document deprecation.
2614         (Obsolete Features): Remove menu.
2615         (Assertions): Merge node into Obsolete Features.
2616         (Obsolete once-only headers): Move earlier; rename to Alternatives
2617         to Wrapper #ifndef.
2618         * doc/cppopts.texi: Update.
2619         * c.opt (Wdeprecated): Enable for C and ObjC.
2620         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2621         (C++ Dialect Options): Move -Wno-deprecated from here to...
2622         (Warning Options): ... here.
2623
2624 2008-05-13  Richard Guenther  <rguenther@suse.de>
2625
2626         PR middle-end/36227
2627         * fold-const.c (fold_sign_changed_comparison): Do not allow
2628         changes in pointer-ness.
2629
2630 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2631
2632         PR target/24713
2633         * config/sh/sh.c (sh_expand_prologue): Don't clear
2634         RTX_FRAME_RELATED_P for push insns.
2635
2636 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2637
2638         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2639
2640 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2641
2642         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2643         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2644         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2645
2646 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2647
2648         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2649         (*vec_concatv4sf_sse): This.
2650         (*sse2_concatv2si): Renamed to ...
2651         (*vec_concatv2si_sse2): This.
2652         (*sse1_concatv2si): Renamed to ...
2653         (*vec_concatv2si_sse): This.
2654         (*vec_concatv2di_rex): Renamed to ...
2655         (*vec_concatv2di_rex64): This.
2656         (*vec_concatv2si_sse4_1): New.
2657         (*vec_concatv2di_rex64_sse4_1): Likewise.
2658
2659 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2660
2661         PR rtl-optimization/36111
2662         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2663         that was created for swappable operands.
2664
2665 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2666
2667         PR ada/36001
2668         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2669         * configure.ac: Add call to ACX_PROG_GNAT.
2670
2671 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2672
2673         * optc-gen.awk: Fix comment typo.
2674
2675 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2676
2677         * pretty-print.c (pp_integer_with_precision): Use
2678         HOST_LONG_LONG_FORMAT.
2679
2680 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2681
2682         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2683                 
2684 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2685
2686         * config/i386/i386.c (bdesc_ptest): Removed.
2687         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2688         (bdesc_args): Add __builtin_ia32_ptestz128,
2689         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2690         (ix86_init_mmx_sse_builtins): Updated.
2691         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2692         (ix86_expand_builtin): Updated.
2693
2694 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2695
2696         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2697         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2698
2699 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2700
2701         * value-prof.c (interesting_stringop_to_profile): Do not
2702         return early for BUILT_IN_MEMPCPY.
2703
2704 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2705
2706         * calls.c (expand_call): Don't use callgraph to increase
2707         preferred_stack_boundary.
2708
2709         * cgraph.h (cgraph_rtl_info): Use unsigned on
2710         preferred_incoming_stack_boundary.
2711
2712         * final.c (rest_of_clean_state): Use unsigned on
2713         preferred_stack_boundary.
2714
2715 2008-05-09  Tom Tromey  <tromey@redhat.com>
2716
2717         PR preprocessor/22231:
2718         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2719         proceeding.
2720
2721 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2722
2723         PR tree-optimization/36129
2724         * tree-ssa-ccp.c: Include value-prof.h.
2725         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2726         built-in function was folded to a constant.
2727         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2728
2729 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2730             Sebastian Pop  <sebastian.pop@amd.com>
2731
2732         * tree-scalar-evolution.c: Document instantiate_scev.
2733         (instantiate_parameters_1): Renamed instantiate_scev_1.
2734         Don't use the same loop for instantiation_loop and evolution_loop.
2735         (instantiate_scev): New.
2736         (instantiate_parameters): Moved...
2737         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2738         same loop twice.  Maintains the semantics for this function.
2739         * tree-scalar-evolution.h (instantiate_scev): Declare.
2740         (instantiate_parameters): ...here.  Now static inline.
2741         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2742         instead of resolve_mixers.
2743
2744 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2745
2746         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2747
2748 2008-05-09  Tomas Bily  <tbily@suse.cz>
2749
2750         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2751         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2752         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2753         * c-common.c (c_common_truthvalue_conversion): Likewise.
2754         * tree-object-size.c (compute_object_offset): Likewise.
2755         * tree-inline.c (estimate_num_insns_1): Likewise.
2756         * varasm.c (const_hash_1, compare_constant, copy_constant)
2757         (compute_reloc_for_constant, output_addressed_constants)
2758         (initializer_constant_valid_p): Likewise.
2759         * c-omp.c (check_omp_for_incr_expr): Likewise.
2760         * gimplify.c (gimplify_expr): Likewise.
2761         * c-typeck.c (c_finish_return): Likewise.
2762         * tree-vectorizer.c (supportable_widening_operation)
2763         (supportable_narrowing_operation): Likewise.
2764         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2765         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2766         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2767         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2768         (descr_info_loc): Likewise.
2769         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2770         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2771         (fold_unary): Likewise.
2772         * builtins.c (get_pointer_alignment): Likewise.
2773         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2774         (instantiate_parameters_1): Likewise.
2775         * tree.c (expr_align, stabilize_reference): Likewise.
2776         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2777         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2778         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2779         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2780         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2781         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2782         Likewise.
2783         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2784         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2785         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2786         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2787         (forward_propagate_comparison)
2788         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2789         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2790         * emit-rtl.c (component_ref_for_mem_expr)
2791         (set_mem_attributes_minus_bitpos): Likewise.
2792         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2793         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2794         Likewise.
2795         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2796         (build_function_call, pointer_diff, build_compound_expr)
2797         (c_finish_return): Likewise.
2798         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2799         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2800         Likewise.
2801         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2802         * expr.c (is_aligning_offset): Likewise.
2803         * tree-ssa-alias.c (is_escape_site): Likewise.
2804         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2805         (check_all_va_list_escapes): Likewise.
2806         * tree-ssa-loop-ivopts.c (determine_base_object)
2807         (determine_common_wider_type): Likewise.
2808         * dojump.c (do_jump): Likewise.
2809         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2810         * tree-gimple.c (is_gimple_cast): Likewise.
2811         * fold-const.c (decode_field_reference, )
2812         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2813         (fold_binary): Likewise.
2814         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2815         (already_warned_in_frontend_p): Likewise.
2816         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2817         * tree.c (really_constant_p, get_unwidened): Likewise.
2818         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2819         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2820         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2821         Likewise.
2822         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2823         CONVERT_EXPR_P.
2824         (CONVERT_EXPR_P): Define.
2825         (CASE_CONVERT): Define.
2826         
2827 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2828
2829         PR middle-end/36117
2830         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2831         (delete_unmarked_insns): When deleting a call, call
2832         delete_unreachable_blocks.
2833         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2834         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2835
2836 2008-05-08  Richard Guenther  <rguenther@suse.de>
2837
2838         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2839         (-ftree-salias): Likewise.
2840         (salias-max-implicit-fields): Remove param documentation.
2841         (salias-max-array-elements): Likewise.
2842         * tree-pass.h (pass_create_structure_vars): Remove.
2843         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2844         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2845         * tree-ssa-alias.c (create_structure_vars): Remove.
2846         (gate_structure_vars): Likewise.
2847         (pass_create_structure_vars): Likewise.
2848         (gate_build_alias): Likewise.
2849         (pass_build_alias): Adjust to run always and dump the function.
2850         * common.opt (ftree-salias): Hide.
2851         * passes.c (init_optimization_passes): Remove
2852         pass_create_structure_vars, adjust comment.
2853         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2854         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2855         * opts.c (decode_options): Do not set flag_tree_salias.
2856         (common_handle_option): Add OPT_ftree_salias to the backward
2857         compatibility section.
2858
2859 2008-05-08  Richard Guenther  <rguenther@suse.de>
2860
2861         * tree-flow-inline.h (var_can_have_subvars): Move ...
2862         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2863         * tree-flow.h (var_can_have_subvars): Remove.
2864         (push_fields_onto_fieldstack): Remove.
2865         (sort_fieldstack): Likewise.
2866         (struct fieldoff): Move ...
2867         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2868         alias_set and base_for_components fields.
2869         (sort_fieldstack): Make static.
2870         (push_fields_onto_fieldstack): Likewise.  Remove code that
2871         handles anything but RECORD_TYPEs.  Remove alias_set and
2872         base_for_components handling.
2873         (create_variable_info_for): Adjust.
2874
2875 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2876
2877         * common.opt (Wframe-larger-than=): Shorten the help message
2878         to one line.
2879         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2880
2881 2008-05-08  Rafael Espindola  <espindola@google.com>
2882
2883         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2884         trap.
2885         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2886         trap and that both operands are gimple values.
2887         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2888         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2889         is a fp operation.
2890
2891 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2892
2893         * read-rtl.c (join_c_conditions): Return the first string if the
2894         two strings are equal.
2895
2896 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2897
2898         * gensupport.h (pred_data): Add a "num_codes" field.
2899         (add_predicate_code): Declare.
2900         * gensupport.c (add_predicate_code): New function.
2901         (std_pred_table): Add an "allows_const_p" field.
2902         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2903         Remove the (incomplete) list of such codes from the codes field.
2904         (init_predicate_table): Use add_predicate_code.  Add all
2905         RTX_CONST_OBJs if allows_const_p is true.
2906         * genrecog.c (process_define_predicate): Use add_predicate_code.
2907
2908 2008-05-08  David Daney  <ddaney@avtrex.com>
2909             Richard Sandiford  <rsandifo@nildram.co.uk>
2910         
2911         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2912         special case of constant zero operands.
2913         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2914         old and new values.  Special case constant zero values.
2915         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2916         fails.
2917         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2918         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2919
2920 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2921
2922         PR target/36090
2923         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2924         similar RTX_CONST_OBJ before CONST_INT.
2925
2926 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2927
2928         * stmt.c (expand_stack_restore): Change sa mode if needed.
2929
2930 2008-05-08  Richard Guenther  <rguenther@suse.de>
2931
2932         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2933         return type to bool.
2934         (ix86_sol10_return_in_memory): Likewise.
2935         (ix86_i386elf_return_in_memory): Likewise.
2936         (ix86_i386interix_return_in_memory): Likewise.
2937         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2938         (ix86_sol10_return_in_memory): Likewise.
2939         (ix86_i386elf_return_in_memory): Likewise.
2940         (ix86_i386interix_return_in_memory): Likewise.
2941
2942 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2943
2944         PR bootstrap/36180
2945         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2946         fndecl argument.
2947         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2948         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2949         declared in front.
2950
2951 2008-05-08  Richard Guenther  <rguenther@suse.de>
2952
2953         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2954         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2955         (DR_SUBVARS): Remove.
2956         * tree-dfa.c (dump_subvars_for): Remove.
2957         (debug_subvars_for): Likewise.
2958         (dump_variable): Do not dump subvars.
2959         (remove_referenced_var): Do not remove subvars.
2960         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2961         (lookup_subvars_for_var): Remove.
2962         (get_subvars_for_var): Likewise.
2963         (get_subvars_at): Likewise.
2964         (get_first_overlapping_subvar): Likewise.
2965         (overlap_subvar): Likewise.
2966         * tree-flow.h (subvar_t): Remove.
2967         (struct var_ann_d): Remove subvars field.
2968         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2969         argument.  Remove special handling of SFTs.
2970         (compute_tag_properties): Likewise.
2971         (set_initial_properties): Likewise.
2972         (compute_call_clobbered): Likewise.
2973         (count_mem_refs): Likewise.
2974         (compute_memory_partitions): Likewise.
2975         (compute_flow_insensitive_aliasing): Likewise.
2976         (setup_pointers_and_addressables): Likewise.
2977         (new_type_alias): Likewise.
2978         (struct used_part): Remove.
2979         (used_portions): Likewise.
2980         (struct used_part_map): Likewise.
2981         (used_part_map_eq): Likewise.
2982         (used_part_map_hash): Likewise.
2983         (free_used_part_map): Likewise.
2984         (up_lookup): Likewise.
2985         (up_insert): Likewise.
2986         (get_or_create_used_part_for): Likewise.
2987         (create_sft): Likewise.
2988         (create_overlap_variables_for): Likewise.
2989         (find_used_portions): Likewise.
2990         (create_structure_vars): Likewise.
2991         * tree.def (STRUCT_FIELD_TAG): Remove.
2992         * tree.h (MTAG_P): Adjust.
2993         (struct tree_memory_tag): Remove base_for_components and
2994         unpartitionable flags.
2995         (struct tree_struct_field_tag): Remove.
2996         (SFT_PARENT_VAR): Likewise.
2997         (SFT_OFFSET): Likewise.
2998         (SFT_SIZE): Likewise.
2999         (SFT_NONADDRESSABLE_P): Likewise.
3000         (SFT_ALIAS_SET): Likewise.
3001         (SFT_UNPARTITIONABLE_P): Likewise.
3002         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3003         (union tree_node): Remove sft field.
3004         * alias.c (get_alias_set): Remove special handling of SFTs.
3005         * print-tree.c (print_node): Remove handling of SFTs.
3006         * tree-dump.c (dequeue_and_dump): Likewise.
3007         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3008         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3009         * tree-predcom.c (set_alias_info): Do not set subvars.
3010         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3011         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3012         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3013         (add_vars_for_offset): Remove.
3014         (add_virtual_operand): Remove special handling of SFTs.
3015         (add_call_clobber_ops): Likewise.
3016         (add_call_read_ops): Likewise.
3017         (get_asm_expr_operands): Likewise.
3018         (get_modify_stmt_operands): Likewise.
3019         (get_expr_operands): Likewise.
3020         (add_to_addressable_set): Likewise.
3021         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3022         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3023         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3024         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3025         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3026         (tree_node_structure): Likewise.
3027         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3028         handling of SFTs.
3029         (find_what_p_points_to): Likewise.
3030
3031 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3032
3033         * config/spu/spu.md: Fixed subti3 pattern.
3034
3035 2008-05-08  Richard Guenther  <rguenther@suse.de>
3036
3037         PR middle-end/36154
3038         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3039         sure to create a representative for trailing arrays for PTA.
3040
3041 2008-05-08  Richard Guenther  <rguenther@suse.de>
3042
3043         PR middle-end/36172
3044         * fold-const.c (operand_equal_p): Two objects which types
3045         differ in pointerness are not equal.
3046
3047 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3048
3049         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3050         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3051         (emit_library_call_value_1): Add new variable fndecl initialized by
3052         NULL_TREE. It should be the decl type of orgfun, but this information
3053         seems not to be available here, so it uses the default calling abi.
3054         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3055         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3056         by TARGET_RETURN_IN_MEMORY.
3057         * config/i386/i386-interix.h: Likewise.
3058         * config/i386/i386.h: Likewise.
3059         * config/i386/i386elf.h: Likewise.
3060         * config/i386/ptx4-i.h: Likewise.
3061         * config/i386/sol2-10.h: Likewise.
3062         * config/i386/sysv4.h: Likewise.
3063         * config/i386/vx-common.h: Likewise.
3064         * config/cris/cris.h: Removed #if 0 clause.
3065         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3066         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3067         argument.
3068         (ix86_sol10_return_in_memory): Likewise.
3069         (ix86_i386elf_return_in_memory): New.
3070         (ix86_i386interix_return_in_memory): New.
3071         * config/mt/mt-protos.h (mt_return_in_memory): New.
3072         * config/mt/mt.c: Likewise.
3073         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3074         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3075         * config/bfin/bfin.h: Likewise.
3076         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3077         argument.
3078         * config/bfin/bfin.c: Likewise.
3079         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3080         * config/alpha/unicosmk.h: Likewise.
3081         * config/i386/cygming.h: Likewise.
3082         * config/iq2000/iq2000.h: Likewise.
3083         * config/mips/mips.h: Likewise.
3084         * config/mn10300/mn10300.h: Likewise.
3085         * config/rs6000/rs6000.h: Likewise.
3086         * config/score/score.h: Likewise.
3087         * config/spu/spu.h: Likewise.
3088         * config/v850/v850.h: Likewise.
3089         * defaults.h: Likewise.
3090         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3091         * expr.c (emit_block_move): Adjust use of
3092         OUTGOING_REG_PARM_STACK_SPACE.
3093         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3094         OUTGOING_REG_PARM_STACK_SPACE.
3095         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3096
3097 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3098
3099         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3100         on OMP_RETURN for OMP_FOR.
3101
3102         PR debug/35896
3103         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3104         (fortran_common): New function.
3105         (gen_variable_die): Call fortran_common instead of common_check,
3106         adjust for it returning tree instead of rtx.  Formatting.
3107
3108 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3109
3110         PR rtl/7335
3111         PR rtl/33826
3112         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3113         * c-decl.c (merge_decls): Ditto.
3114         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3115         to RTL_CONST_OR_PURE_CALL_P.
3116         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3117         Initialized DECL_LOOPING_CONST_PURE.
3118         (process_call_operands): Set tree_side_effects properly.
3119         * tree.h (TREE_READONLY_DECL_P): Removed.
3120         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3121         (DECL_LOOPING_OR_CONST_P): New macro.
3122         (struct tree_function_decl): Added looping_const_or_pure_p.
3123         (ECF_*) Renumbered.
3124         (ECF_LOOPING_OR_CONST_P): New macro.
3125         * rtlanal.c (pure_const_p): Removed.
3126         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3127         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3128         to RTL_CONST_CALL_P.
3129         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3130         (check_decl, check_tree, check_call, scan_function): Initialize
3131         looping.
3132         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3133         (static_execute): Set looping true for recursive functions.
3134         Undo setting state to IPA_NEITHER for recursive functions.
3135         * cse.c (cse_insn): 
3136         * ifcvt.c (noce_can_store_speculate_p): Changed
3137         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3138         RTL_CONST_OR_PURE_CALL_P.
3139         * dse.c (scan_insn): Ditto.
3140         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3141         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3142         RTL_CONST_OR_PURE_CALL_P.
3143         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3144         pure_call_p to RTL_CONST_CALL_P.
3145         * gimplify.c (gimplify_call_expr): Clear side effects for
3146         non-looping pure and constant calls.
3147         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3148         (flags_from_decl_or_type): Set ecf flags from decl flags.
3149         (initialize_argument_information): Turn off
3150         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3151         Change const to pure if callee_copies is true rather than just
3152         turning off const.
3153         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3154         way of marking pure calls.
3155         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3156         Remove hack that was supposed to fix pr7335 and remove old
3157         way of marking pure calls.
3158         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3159         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3160         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3161         RTL_CONST_OR_PURE_CALL_P.
3162         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3163         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3164         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3165         * sched-deps.c (schedule_analyze): Ditto.
3166         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3167         return_val field of calls to represent pure and const function info.
3168         (CONST_OR_PURE_CALL_P): Deleted macro.
3169         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3170         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3171         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3172         TREE_READONLY.
3173         * tree-optimize.c (execute_fixup_cfg): Added test for
3174         ECF_LOOPING_CONST_OR_PURE.
3175         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3176         DECL_PURE_P.
3177         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3178         effects for looping pure or const calls.
3179         (verify_gimple_expr): Added verification code. 
3180         * config/alpha/alpha.c (alpha_legitimize_address,
3181         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3182         RTL_CONST_CALL_P.
3183         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3184         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3185         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3186         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3187         RTL_CONST_OR_PURE_CALL_P.
3188         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3189         and const calls to be deleted.
3190
3191 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3192
3193         PR target/35714
3194         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3195         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3196         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3197         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3198         to handle nonimmediate operands.
3199         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3200         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3201         to handle nonimmediate operands.
3202         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3203         (mmx_pmulhrwv4hi3): New expander.  Use
3204         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3205         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3206         (sse2_umulv1siv1di3): New expander.  Use
3207         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3208         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3209         (mmx_eq<mode>3): New expander.  Use
3210         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3211         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3212         (mmx_uavgv8qi3): New expander.  Use
3213         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3214         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3215         (mmx_uavgv4hi3): New expander.  Use
3216         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3217
3218         * config/i386/sse.md
3219         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3220         to handle nonimmediate operands.
3221         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3222         to handle nonimmediate operands.
3223         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3224         to handle nonimmediate operands.
3225         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3226         to handle nonimmediate operands.
3227         (sse2_unpckhpd_exp): New expander.  Use
3228         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3229         (sse2_unpcklpd_exp): New expander.  Use
3230         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3231         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3232         to handle nonimmediate operands.
3233         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3234         to handle nonimmediate operands.
3235         (*sse2_<plusminus_insn><mode>3): Rename from
3236         sse2_<plusminus_insn><mode>3 insn pattern.
3237         (sse2_<plusminus_insn><mode>3): New expander.  Use
3238         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3239         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3240         (sse2_umulv2siv2di3): New expander.  Use
3241         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3242         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3243         (sse4_1_mulv2siv2di3): New expander.  Use
3244         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3245         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3246         (sse2_pmaddwd): New expander.  Use
3247         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3248         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3249         (sse2_eq<mode>3): New expander.  Use
3250         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3251         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3252         (sse4_1_eqv2di3): New expander.  Use
3253         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3254         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3255         (sse2_uavgv16qi3): New expander.  Use
3256         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3257         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3258         (sse2_uavgv16qi3): New expander.  Use
3259         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3260         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3261         (sse2_uavgv8hi3): New expander.  Use
3262         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3263         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3264         (ssse3_pmulhrswv8hi3): New expander.  Use
3265         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3266         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3267         (ssse3_pmulhrswv4hi3): New expander.  Use
3268         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3269
3270         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3271         (<sse>_vmmul<mode>3): Ditto.
3272         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3273         (divv2df3): Ditto.
3274         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3275         (ssse3_pmaddubsw): Ditto.
3276
3277         * config/i386/i386.c (struct_builtin_description)
3278         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3279         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3280         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3281         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3282         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3283         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3284         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3285         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3286         (ix86_fixup_binary_operands): Assert that src1
3287         and src2 must have the same mode when swapped.
3288         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3289         and ix86_binary_operator_ok.  Do not force operands in registers
3290         when optimizing.
3291
3292 2008-05-07  Jan Hubicka  <jh@suse.cz>
3293
3294         * cgraph.c (dump_cgraph_node): Update.
3295         * cgraph.h (cgraph_local_info): Break out inline summary.
3296         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3297         hook.
3298         * ipa-inline (inline_summary): New accestor function.
3299         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3300         cgraph_decide_inlining, compute_inline_parameters): Update.
3301         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3302
3303 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3304
3305         Cleanup ColdFire scheduling support and add V4 pipeline model.
3306
3307         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3308         (define_attr cpu): Add cfv4 value.
3309         (define_attr type, define_attr type1): Merge into a single 'type'
3310         attribute.  Update all uses.
3311         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3312         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3313         Update all uses.
3314         (define_attr opx_mem, define_attr opy_mem): Remove.
3315         (define_attr op_mem): Clean up, update comment.
3316         (define_attr size): Use specific values instead of general int.
3317         (define_attr guess, define_attr split): Remove.  Update all uses.
3318         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3319         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3320         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3321         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3322         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3323         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3324         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3325         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3326         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3327         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3328         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3329         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3330         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3331         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3332         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3333         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3334         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3335         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3336         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3337         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3338         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3339         Update or set attributes.
3340         (stack_tie): New fake instruction.
3341
3342         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3343         (m68k_sched_attr_size): Update declaration.
3344         (m68k_sched_attr_type2): Remove.
3345         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3346         Declare new bypass predicates.
3347
3348         * config/m68k/m68k.c (m68k_sched_issue_rate,
3349         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3350         implementations.
3351         (TARGET_SCHED_ISSUE_RATE,
3352         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3353         (override_options): Handle scheduling for ColdFire V4 core.
3354         (m68k_expand_prologue): Emit stack_tie.
3355         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3356         'OP_TYPE_FPN'.  Update all uses.
3357         (sched_guess_p): Remove.
3358         (sched_address_type): Handle symbolic addresses.
3359         (sched_get_operand): New static function.
3360         (sched_operand_type): Merge into sched_attr_op_type.
3361         (sched_attr_op_type): Handle FP registers, handle quick constants,
3362         update.
3363         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3364         (m68k_sched_attr_size): Update.  Move logic to ...
3365         (sched_get_attr_size_int): New static function.
3366         (sched_get_opxy_mem_type): New static function.
3367         (m68k_sched_attr_op_mem): Update.
3368         (m68k_sched_attr_type2): Remove.
3369         (sched_cfv4_bypass_data): New static variable.
3370         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3371         (m68k_sched_issue_rate): Implement scheduler hook.
3372         (struct _sched_ib: enabled_p): New field.
3373         (m68k_sched_variable_issue): Update.  Handle V4.
3374         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3375         sched_dump_class_func_t, sched_dump_split_class,
3376         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3377         sched_dump_dfa_class, m68k_sched_dump): Remove.
3378         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3379         hook.
3380         (m68k_sched_init_global): Remove statisctics dumping, introduce
3381         sanity check that all instructions have pipeline reservations.  Handle
3382         ColdFire V4 core.
3383         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3384         Handle ColdFire V4 core.
3385         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3386         New static functions.
3387         (m68k_sched_address_bypass_p): New bypass predicate.
3388         (sched_get_indexed_address_scale): New static function.
3389         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3390
3391         * cf.md: Update comments.
3392         (define_attr type2): Remove.  Use 'type' attribute instead.
3393         Update all uses.
3394         (cf_ib): Rename to cfv123_ib.  Update all uses.
3395         (cf_oep): Rename to cfv123_oep.  Update all uses.
3396         (cf_chr): Rename to cfv123_chr.  Update all uses.
3397         (cf_mem): Rename to cfv123_mem.  Update all uses.
3398         (cf_mac): Move to more appropriate place.
3399         (cfv123_guess): New automaton and cpu_unit.
3400         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3401         Update uses of 'size' attribute.  Handle before reload scheduling.
3402         (cfv123_guess): New dummy reservation for unhandled instructions.
3403         (cfv4_*): Pipeline description of ColdFire V4 core.
3404         (ignore): New reservation to handle 'ignore' type.
3405
3406 2008-05-07  Ian Lance Taylor  <iant@google.com>
3407
3408         PR middle-end/36013
3409         * gimplify.c (find_single_pointer_decl_1): Don't look through
3410         indirections.
3411         (find_single_pointer_decl): Adjust comments.
3412
3413 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3414
3415         PR middle-end/36137
3416         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3417         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3418
3419         PR middle-end/36106
3420         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3421         integral type rather than floating point, then VIEW_CONVERT_EXPR
3422         to the floating point type.
3423
3424 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3425
3426         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3427         TFmode op0 to register.
3428
3429 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3430
3431         * c-decl.c (grokdeclarator): Comment typo.
3432
3433 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3434
3435         * tree-flow.h: Remove prototype for computed_goto_p.
3436         * tree-cfg.c (computed_goto_p): Make static.
3437
3438 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3439
3440         PR target/35657
3441         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3442         (contains_aligned_value_p): This.  Handle _Decimal128.
3443         (ix86_function_arg_boundary): Only align _Decimal128 to its
3444         natural boundary and handle it properly.
3445
3446 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3447
3448         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3449         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3450         (ipcp_method_set_orig_node): Removed.
3451         (ipcp_cval_get_cvalue_type): Removed.
3452         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3453         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3454         (ipcp_cval_set_cvalue_type): Removed.
3455         (ipcp_cval_get_cvalue): Removed.
3456         (ipcp_cval_set_cvalue): Removed.
3457         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3458         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3459         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3460         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3461         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3462         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3463         (ipcp_get_ith_lattice): Changed parameters.
3464         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3465         (ipcp_lattice_from_jfunc): Changed parameters.
3466         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3467         (ipcp_method_cval_print): Added temporary variable info.
3468         (ipcp_redirect): Removed already unused local variable caller.
3469         (ipcp_redirect): New temporary variable orig_callee_info
3470         (ipcp_redirect): Removed newly unused local variable callee.
3471         (ipcp_redirect): Removed (a bit confusing) local variable type.
3472         (ipcp_insert_stage): Added local variable info.
3473         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3474         renamed too
3475         (ipcp_formal_create): Removed.
3476         (ipcp_method_cval_set): Removed.
3477         (ipcp_propagate_stage): Renamed lattice variables.
3478         (ipcp_method_cval_set_cvalue_type): Removed.
3479         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3480         (ipcp_print_all_lattices): Changed printed strings to refer to 
3481         lattices rather than cvals.
3482         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3483         (ipcp_propagate_const): Changed formal parameters.
3484         (build_const_val): Changed formal parameters.
3485         (ipcp_insert_stage): Removed useless variable cvalue
3486         (build_const_val): Changed formal parameters.
3487         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3488         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3489         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3490         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3491         (ipcp_print_func_profile_counts): Changed string from "method" to 
3492         "function"
3493         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3494         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3495         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3496         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3497         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3498         (ipcp_lat_is_const): Changed parameters and made inline.
3499         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3500         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3501         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3502         the predicate condition directly
3503         (ipcp_propagate_stage): Added local variable args. Removed local
3504         variable callee.  (Both are mere code simplifications.)
3505         (ipcp_method_dont_insert_const): Renamed to
3506         ipcp_node_not_modifiable_p.
3507         (ipcp_node_not_modifiable_p): Made inline.
3508         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3509         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3510         (ipcp_print_all_lattices): Removed variable cvalue
3511         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3512         Updated comments.
3513
3514 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3515
3516         * tree-sra.c (try_instantiate_multiple_fields): Early return
3517         if field has POINTER_TYPE.
3518
3519 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3520
3521         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3522         by using 'q' specifier for instruction.
3523         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3524
3525 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3526
3527         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3528         Change mode of zero_extract from QImode to HImode.
3529         (sign bit tests peepholes): (Ditto.).
3530
3531 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3532
3533         * config/i386/mmx.md: Remove double backslashes from asm templates.
3534         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3535         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3536         to handle nonimmediate operands.
3537         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3538         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3539         to handle nonimmediate operands.
3540         (*mmx_<code>v2sf3_finite): New insn pattern.
3541         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3542         (mmx_<code>v2sf3): New expander.  Use
3543         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3544         (mmx_<plusminus_insn><mode>3): New expander.  Use
3545         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3546         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3547         (mmx_add<mode>3): Removed.
3548         (mmx_ssadd<mode>3): Ditto.
3549         (mmx_usadd<mode>3): Ditto.
3550         (mmx_sub<mode>3): Ditto.
3551         (mmx_sssub<mode>3): Ditto.
3552         (mmx_ussub<mode>3): Ditto.
3553         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3554         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3555         to handle nonimmediate operands.
3556         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3557         insn pattern.
3558         (mmx_smulv4hi3_highpart): New expander.  Use
3559         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3560         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3561         insn pattern.
3562         (mmx_umulv4hi3_highpart): New expander.  Use
3563         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3564         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3565         (mmx_<code>v4hi3): New expander.  Use
3566         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3567         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3568         (mmx_<code>v8qi3): New expander.  Use
3569         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3570         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3571         (mmx_<code><mode>3): New expander.  Use
3572         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3573
3574 2008-05-05  Jan Hubicka  <jh@suse.cz>
3575
3576         PR tree-optimization/36118
3577         * passes.c (pass_init_dump_file): Fix dump header.
3578
3579 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3580
3581         PR middle-end/36141
3582         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3583         VCE for function decls.
3584
3585 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3586
3587         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3588
3589 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3590
3591         * config/i386/i386.md (sat_plusminus): New.
3592         (plusminus_insn): Likewise.
3593         (plusminus_mnemonic): Likewise.
3594         (addsub): Removed.
3595         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3596         (*<addsub><mode>3_cc_overflow): Renamed to ...
3597         (*<plusminus_insn><mode>3_cc_overflow): This.
3598         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3599         (*<plusminus_insn>si3_zext_cc_overflow): This.
3600
3601         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3602         (<plusminus_insn><mode>3): This.
3603         (*<addsub><mode>3): Renamed to ...
3604         (*<plusminus_insn><mode>3): This.
3605         (<sse>_vm<addsub><mode>3): Renamed to ...
3606         (<sse>_vm<plusminus_insn><mode>3): This.
3607         (sse3_h<addsub>v4sf3): Renamed to ...
3608         (sse3_h<plusminus_insn>v4sf3): This.
3609         (sse3_h<addsub>v2df3): Renamed to ...
3610         (sse3_h<plusminus_insn>v2df3): This.
3611         (<plusminus_insn><mode>3): New.
3612         (*<plusminus_insn><mode>3): Likewise.
3613         (sse2_<plusminus_insn><mode>3): Likewise.
3614         (add<mode>): Removed.
3615         (*add<mode>3): Likewise.
3616         (sse2_ssadd<mode>3): Likewise.
3617         (sse2_usadd<mode>3): Likewise.
3618         (sub<mode>3): Likewise.
3619         (*sub<mode>3): Likewise.
3620         (sse2_sssub<mode>3): Likewise.
3621         (sse2_ussub<mode>3): Likewise.
3622
3623 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3624
3625         * gthr-single.h: Add in required interface elements as per gthr.h.
3626         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3627         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3628         Generalize UNUSED macro. 
3629         (__gthread_once): Add.
3630         (__gthread_key_create): Add.
3631         (__gthread_key_delete): Add.
3632         (__gthread_getspecific): Add.
3633         (__gthread_setspecific): Add.
3634         
3635 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3636
3637         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3638         the same size types for the indirect reference on the rhs, then
3639         create a VCE.
3640
3641 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3642
3643         * config/i386/i386.md
3644         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3645         one insn template instead of template series.
3646         (*xordi_1_rex64): Ditto.
3647         (*xordi_2_rex64): Ditto.
3648
3649 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3650
3651         PR tree-optimization/36119
3652         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3653         in case of SLP.
3654
3655 2008-06-04  Jan Hubicka  <jh@suse.cz>
3656
3657         tree-optimization/36100
3658         * tree-pass.h (pass_O0_always_inline): Declare.
3659         * ipa-inline.c (inline_transform): Remove dead code.
3660         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3661         pass_O0_always_inline): New.
3662         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3663
3664 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3665
3666         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3667         mnemonic in this_param move for TARGET_64BIT.
3668
3669 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3670
3671         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3672         (*strmovsi_rex_1): Ditto.
3673         (*strsetsi_1): Ditto.
3674         (*strsetsi_rex_1): Ditto.
3675
3676         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3677         adddicc expanders using SWI mode iterator.
3678
3679 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3680
3681         PR target/36121
3682         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3683         argument handling.
3684
3685 2008-05-04  David S. Miller  <davem@davemloft.net>
3686
3687         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3688         (sparc*-*-linux*): Use linux.h in tm_file.
3689         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3690         compiler defaulting to 32-bit.
3691         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3692         no longer needed.
3693         * config/sparc/linux.h: Remove definitions now obtained
3694         properly from linux.h
3695         * config/sparc/linux64.h: Likewise.
3696         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3697         don't want this setting for 32-bit builds in a biarch compiler.
3698         * doc/install.texi: Add sparc-linux to list of targets
3699         supporting --enable-targets=all.
3700
3701 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3702
3703         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3704
3705 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3706
3707         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3708         after V4SI_FTYPE_V8HI.
3709         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3710         case V4SI_FTYPE_V2DF.
3711
3712 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3713
3714         * doc/invoke.texi (max-flow-memory-locations): Removed.
3715         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3716         
3717 2008-05-03  Richard Guenther  <rguenther@suse.de>
3718
3719         PR middle-end/34973
3720         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3721
3722 2008-05-02  David S. Miller  <davem@davemloft.net>
3723
3724         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3725
3726 2008-05-02  Simon Baldwin <simonb@google.com>
3727
3728         PR bootstrap/36108
3729         * c-common.h (warn_array_subscript_range): Removed.
3730         * c-common.c (warn_array_subscript_range): Ditto.
3731         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3732         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3733
3734 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3735
3736         * config/i386/i386.c (ix86_special_builtin_type): New.
3737         (bdesc_special_args): Likewise.
3738         (ix86_expand_special_args_builtin): Likewise.
3739         (ix86_init_mmx_sse_builtins): Updated.
3740         (ix86_expand_builtin): Updated.
3741         (ix86_expand_store_builtin): Removed.
3742         (ix86_expand_unop_builtin): Likewise.
3743
3744         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3745         * config/i386/mmintrin.h (__v2sf): Here.
3746
3747         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3748         const __v2sf.
3749         (_mm_loadl_pi): Likewise.
3750         (_mm_storeh_pi): Replace __v2si with __v2sf.
3751         (_mm_storel_pi): Likewise.
3752
3753         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3754         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3755         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3756         __builtin_ia32_loadlpd.
3757
3758 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3759
3760         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3761         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3762         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3763         (ix86_init_mmx_sse_builtins): Updated.
3764         (ix86_expand_args_builtin): Likewise.
3765         (ix86_expand_builtin): Likewise.
3766         (ix86_expand_unop1_builtin): Renamed to ...
3767         (ix86_expand_unop_vec_merge_builtin): This.
3768
3769 2008-05-01  Jan Hubicka  <jh@suse.cz>
3770
3771         PR bootstrap/36100
3772         * ipa-inline.c (inline_generate_summary): Make static.
3773         (inline_transform): Do not call inlining at -O0; make static.
3774         * passes.c (execute_todo): Add sanity check.
3775         (execute_one_ipa_transform_pass): Execute proper flags.
3776
3777 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3778
3779         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3780         (DECL_NONADDRESSABLE_P): Likewise.
3781         * alias.c (record_component_aliases): Fix comment.
3782
3783 2008-05-01  Simon Baldwin <simonb@google.com>
3784
3785         * c-common.h (warn_array_subscript_range): New function.
3786         * c-common.c (warn_array_subscript_range): Ditto.
3787         * tree-vrp.c (check_array_ref): Corrected code to agree with
3788         comment, ignoring only arrays of size 0 or size 1.
3789         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3790
3791 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3792
3793         * config/i386/i386.c (ix86_builtin_type): Replace
3794         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3795         (bdesc_args): Updated.
3796         (ix86_init_mmx_sse_builtins): Likewise.
3797         (ix86_expand_args_builtin): Likewise.
3798
3799         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3800         with __v1di.
3801
3802         * doc/extend.texi: Correct __builtin_ia32_palignr.
3803
3804 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3805
3806         PR target/36095
3807         * config/i386/i386.c (bdesc_crc32): Removed.
3808         (ix86_expand_crc32): Likewise.
3809         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3810         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3811         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3812         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3813         UINT_FTYPE_UINT_UCHAR.
3814         (bdesc_args): Updated. Add crc32 builtins.
3815         (ix86_init_mmx_sse_builtins): Updated.
3816         (ix86_expand_args_builtin): Updated to support subreg.
3817
3818         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3819
3820 2008-05-01  Jan Hubicka  <jh@suse.cz>
3821
3822         * tree-pass.h (opt_pass): Add IPA_PASS.
3823         (varpool_node, cgraph_node): Forward declare.
3824         (ipa_opt_pass): Define.
3825         (pass_ipa_inline): Turn into ipa_opt_pass.
3826         (pass_apply_inline): Remove.
3827         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3828         (apply_inline): Turn into ....
3829         (inline_transform): ... this one.
3830         (inline_generate_summary): New function.
3831         (pass_apply_inline): Remove.
3832         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3833         vector.
3834         (struct function): Add ipa_transforms_to_apply.
3835         * passes.c (register_one_dump_file): Work on IPA_PASS.
3836         (init_optimization_passes): Remove pass_inline_parameters and
3837         pass_apply_inline.
3838         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3839         (execute_one_pass) ... here; apply transforms when possible.
3840         (add_ipa_transform_pass, execute_ipa_summary_asses,
3841         execute_one_ipa_transform_pass): New.
3842         (execute_ipa_pass_list): Update for IPA_PASS type.
3843
3844 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3845
3846         * config/i386/i386.c (ix86_builtin_type): Add
3847         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3848         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3849         (bdesc_args): Add SSE4a builtins.
3850         (ix86_init_mmx_sse_builtins): Updated.
3851         (ix86_expand_args_builtin): Likewise.
3852         (ix86_expand_builtin): Likewise.
3853
3854 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3855
3856         * config/i386/i386.c (ix86_builtin_type): Add
3857         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3858         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3859         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3860         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3861         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3862         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3863         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3864         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3865         and DI_FTYPE_DI_DI_INT.
3866         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3867         (ix86_init_mmx_sse_builtins): Updated.
3868         (ix86_expand_args_builtin): Likewise.
3869         (ix86_expand_builtin): Likewise.
3870         (ix86_expand_binop_imm_builtin): Removed.
3871
3872         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3873
3874 2008-04-30  Richard Guenther  <rguenther@suse.de>
3875
3876         PR tree-optimization/32921
3877         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3878
3879 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3880
3881         * config/arm/arm.c (arm_unwind_emit): Use
3882         crtl->all_throwers_are_sibcalls instead of
3883         cfun->all_throwers_are_sibcalls.
3884         (arm_output_fn_unwind): Likewise.
3885         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3886         instead of cfun->uses_pic_offset_table.
3887         (frv_expand_prologue): Likewise.
3888         (frv_frame_pointer_required): Likewise.
3889         (frv_expand_fdpic_call): Likewise.
3890         (frv_emit_movsi): Likewise.
3891         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3892         cfun->returns_pcc_struct instead of
3893         current_function_returns_pcc_struct.
3894         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3895         instead of cfun->calls_eh_return.
3896         (m32c_pushm_popm): Likewise.
3897         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3898         "extern" declaration.
3899
3900 2008-04-30  Richard Guenther  <rguenther@suse.de>
3901
3902         PR tree-optimization/21636
3903         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3904         constant address.
3905         (evaluate_stmt): Print the likely value.
3906         (ccp_visit_stmt): Avoid excessive vertical spacing.
3907
3908 2008-04-30  Rafael Espindola  <espindola@google.com>
3909
3910         * builtins.c (fold_call_expr): Return realret.
3911         * tree-ssa-threadedge.c
3912         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3913         __builtin_object_size.
3914
3915 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3916
3917         * gcc.c (wrapper_string): New variable.
3918         (insert_wrapper): New function.
3919         (execute): New option -wrapper.
3920         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3921
3922 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3923
3924         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3925         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3926         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3927         from...
3928         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3929         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3930         config/rs6000/e500crtres64gprctr.asm,
3931         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3932         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3933         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3934         config/rs6000/e500crtsav64gprctr.asm,
3935         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3936         config/rs6000/e500crtsavg64gprctr.asm: New files.
3937         * config/rs6000/t-ppccomm: Add build rules for new files.
3938         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3939         * config/rs6000/t-netbsd: Add build rules for new files.
3940         (LIB2FUNCS_STATIC_EXTRA): New variable.
3941         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3942         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3943         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3944
3945 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3946
3947         * config/i386/i386.c (ix86_builtin_type): Add
3948         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3949         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3950         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3951         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3952         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3953         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3954         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3955         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3956         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3957         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3958         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3959         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3960         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3961         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3962         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3963         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3964         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3965         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3966         V1DI_FTYPE_V2SI_V2SI.
3967         (bdesc_2arg): Moved to ...
3968         (bdesc_args): Here.
3969         (ix86_init_mmx_sse_builtins): Updated.
3970         (ix86_expand_args_builtin): Updated.  Take a pointer
3971         to const struct builtin_description.  Handle comparison
3972         builtin functions.
3973         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3974         (ix86_expand_builtin): Updated.
3975
3976         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3977         (ssse3_pmaddubsw128): This.
3978         (ssse3_pmaddubswv4hi3): Renamed to ...
3979         (ssse3_pmaddubsw): This.
3980
3981         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3982         (__builtin_ia32_packssdw128): Likewise.
3983         (__builtin_ia32_packuswb128): Likewise.
3984         (__builtin_ia32_pmaddubsw): Likewise.
3985         (__builtin_ia32_pmaddubsw128): Likewise.
3986
3987 2008-04-30  Richard Guenther  <rguenther@suse.de>
3988
3989         PR tree-optimization/14847
3990         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3991         (recognize_bits_test): Use it.
3992         (recognize_single_bit_test): Likewise.
3993
3994 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3995
3996         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3997         instead of setting number of formal parameters to zero.
3998         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3999         either.
4000         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4001         which are called with variable number of arguments.
4002         (ipcp_insert_stage): Explicitely skipping all nodes which are
4003         called with variable number of arguments.
4004         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4005         number of parameters.
4006
4007         * ipa-prop.h (struct ipa_node_params): Added flag
4008         called_with_var_arguments
4009         (ipa_set_param_count): Added.  Changed sole setter to use it.
4010         (ipa_get_param_count): Added.  All readers of param_count
4011         converted to use it instead.
4012         (ipa_set_called_with_variable_arg): Added.
4013         (ipa_is_called_with_var_arguments): Added.
4014         (ipa_get_ith_param): Added.  All readers of param_decls converted
4015         to use it instead.
4016         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4017         changed to use it. 
4018         (ipa_get_cs_argument_count): Added, all readers of argument_count
4019         changed to cal it.
4020         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4021         to use it.
4022         
4023         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4024         (struct ipcp_lattice): Renamed cval_type to type
4025         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4026
4027         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4028         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4029         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4030         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4031         (build_const_val): Changed the type of parameter cvalue to tree
4032         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4033         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4034         
4035         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4036         constant 
4037
4038         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4039         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4040         (ipa_add_method): Renamed to ipa_push_func_to_list
4041         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4042         (ipa_callsite_param_count): Removed.
4043         (ipa_callsite_param_count_set): Removed.
4044         (ipa_callsite_param): Removed.
4045         (ipa_callsite_callee): Removed.
4046         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4047         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4048         (ipa_method_formal_count): Removed.
4049         (ipa_method_formal_count_set): Removed.
4050         (ipa_method_get_tree): Removed.
4051         (ipa_method_tree_map_create): Removed.
4052         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4053         (ipa_create_param_decls_array): Creates the array itself
4054         (ipa_create_param_decls_array): Temporary variable info instead of 
4055         a few dereferences.
4056         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4057         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4058         (get_type): Removed.
4059         (ipa_jf_get_info_type): Removed.
4060         (ipa_node_create): Renamed to ipa_create_node_params
4061         (ipa_free): Renamed to ipa_free_all_node_params
4062         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4063         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4064         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4065         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4066         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4067         ipa_free_all_edge_args
4068         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4069         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4070         (ipa_create_methodlist_node): Removed.
4071         (ipa_methodlist_method): Removed.
4072         (ipa_methodlist_method_set): Removed.
4073         (ipa_methodlist_next_method): Removed.
4074         (ipa_methodlist_next_method_set): Removed.
4075         (ipa_method_is_modified): Removed.
4076         (ipa_method_modify_create): Removed.
4077         (ipa_method_modify_init): Temporary variable info instead of a few 
4078         dereferences.
4079         (ipa_detect_param_modifications): Temporary variable info instead of 
4080         a few dereferences.
4081         (ipa_compute_jump_functions): Temporary variable info instead of 
4082         a few dereferences.
4083         (ipa_method_modify_set): Removed.
4084         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4085         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4086         than craph_node as the first parameter.
4087         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4088         (ipa_method_modify_init): Removed.
4089         (ipa_compute_jump_functions): Added a temp variable instead of 
4090         repeatadly dereferencing the cgraph_edge.aux pointer
4091         (ipa_callsite_param_set_type): Removed.
4092         (ipa_compute_jump_functions): i renamed to index and moved to 
4093         an inner block
4094         (ipa_callsite_param_set_info_type_formal): Removed.
4095         (ipa_callsite_param_set_info_type): Removed.
4096         (ipa_callsite_param_map_create): Removed.
4097         (ipa_callsite_tree): Removed.
4098         (ipa_callsite_caller): Removed.
4099         (ipa_pop_func_from_list): return_method removed to return_func
4100
4101         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4102         prefixed all values with IPA_. Changed all users.
4103         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4104         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4105         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4106         (union parameter_info): Renamed to jump_func_value.
4107         (union jump_func_value): Renamed value to constant
4108         (struct ipa_jump_func): Renamed info_type to value
4109         (struct ipa_node): Renamed to ipa_node_params
4110         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4111         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4112         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4113         (struct ipa_edge): Renamed to ipa_edge_args
4114         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4115         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4116         (struct ipa_methodlist): Renamed to ipa_func_list
4117         (struct ipa_func_list): method_p renamed to node, next_method
4118         renamed to next
4119         (ipa_methodlist_p): Removed, switched all users to struct pointer
4120         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4121
4122 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4123
4124         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4125         (rs6000_emit_epilogue): Use backchain to restore only when we
4126         have a large frame.  Make use of frame pointer to restore if we
4127         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4128
4129 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4130
4131         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4132         Add mode to zero_extract.
4133         (sign bit tests peepholes): (Ditto.).
4134
4135 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4136
4137         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4138         Instructions in comments with SSE3.
4139         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4140         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4141         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4142         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4143         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4144         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4145         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4146         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4147         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4148         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4149         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4150         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4151         (bdesc_sse_args): Renamed to ...
4152         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4153         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4154         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4155         IX86_BUILTIN_FABSQ.
4156         (bdesc_1arg): Moved to ...
4157         (bdesc_args): Here.
4158         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4159         Instructions in comments with SSE3.
4160         (ix86_expand_sse_operands_builtin): Renamed to ...
4161         (ix86_expand_args_builtin): This.  Updated.
4162         (ix86_expand_unop1_builtin): Update comments.
4163         (ix86_expand_builtin): Updated.
4164
4165 2008-04-29  Richard Guenther  <rguenther@suse.de>
4166
4167         PR tree-optimization/36078
4168         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4169         Update virtual SSA form after cleaning up the CFG.
4170
4171 2008-04-29  Richard Guenther  <rguenther@suse.de>
4172
4173         PR middle-end/15255
4174         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4175
4176 2008-04-29  Richard Guenther  <rguenther@suse.de>
4177
4178         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4179         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4180         (compute_flow_insensitive_aliasing): Do not treat
4181         PTR_IS_REF_ALL pointers special.
4182         (get_smt_for): Likewise.
4183         (may_alias_p): Re-structure.
4184         (is_escape_site): A ref-all pointer conversion is not an escape site.
4185         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4186         PTR_IS_REF_ALL pointers special.
4187         * tree-ssa-structalias.h (struct alias_info): Remove
4188         ref_all_symbol_mem_tag field.
4189         (PTR_IS_REF_ALL): Remove.
4190
4191 2008-04-29  Richard Guenther  <rguenther@suse.de>
4192
4193         PR middle-end/36077
4194         * fold-const.c (extract_muldiv_1): In combining division constants
4195         make sure to never overflow.
4196
4197 2008-04-29  Nick Clifton  <nickc@redhat.com>
4198
4199         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4200
4201 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4202
4203         PR bootstrap/35169
4204         * optc-gen.awk: Work around HP-UX/IA awk bug.
4205
4206 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4207
4208         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4209         2008-04-25 commit.
4210
4211 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4212
4213         PR target/36073
4214         * config/i386/i386.md
4215         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4216         Change operand 1 predicate to nonimmediate_operand.
4217
4218 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4219
4220         PR debug/36060
4221         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4222         die_sub field.
4223         * gengtype.c (walk_type, write_func_for_structure): Handle
4224         chain_circular.
4225         * doc/gty.texi: Document chain_circular.
4226
4227 2008-04-28  Richard Guenther  <rguenther@suse.de>
4228
4229         PR tree-optimization/36066
4230         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4231         SCEV and loop.
4232
4233 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4234
4235         PR target/36064
4236         * config/i386/i386.md
4237         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4238         Use match_scratch instead of match_operand for operands 3 and 4.
4239
4240 2008-04-27  Richard Guenther  <rguenther@suse.de>
4241
4242         PR tree-optimization/18754
4243         PR tree-optimization/34223
4244         * tree-pass.h (pass_complete_unrolli): Declare.
4245         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4246         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4247         Rewrite loop into loop closed SSA form if it is not already.
4248         (tree_unroll_loops_completely): Re-structure to iterate over
4249         innermost loops with intermediate CFG cleanups.
4250         Unroll outermost loops only if requested or the code does not grow
4251         doing so.
4252         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4253         loops are available.
4254         (tree_vectorize): Instead do so here.
4255         (tree_complete_unroll): Also unroll outermost loops.
4256         (tree_complete_unroll_inner): New function.
4257         (gate_tree_complete_unroll_inner): Likewise.
4258         (pass_complete_unrolli): New pass.
4259         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4260         uses outside of the loop.
4261         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4262         form if it is available.  
4263         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4264         * passes.c (init_optimization_passes): Schedule complete inner
4265         loop unrolling pass before the first CCP pass after final inlining.
4266
4267 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4268
4269         * targhooks.h (default_emutls_var_fields,
4270         default_emutls_var_init): Declare.
4271         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4272         * target.h (struct gcc_target): Add struct emutls member.
4273         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4274         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4275         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4276         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4277         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4278         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4279         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4280         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4281         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4282         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4283         emit debug information.
4284         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4285         * varasm.c: Include targhooks.h.
4286         (emutls_object_section, emutls_tmpl_section): New.
4287         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4288         (EMUTLS_SEPARATOR): New.
4289         (prefix_name): New.
4290         (get_emutls_object_name): New.
4291         (default_emutls_var_fields): New, broken out of ...
4292         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4293         (get_emutls_init_templ_addr): Adjust to use target hooks.
4294         (emutls_decl): Adjust to use target hooks.
4295         (emutls_finish): Likewise.
4296         (default_emutls_var_init): New, broken out of ...
4297         (assemble_variable): ... here.  Adjust to use target hooks.
4298         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4299         SECCAT_EMUTLS_TMPL.
4300         * c-common.c (handle_section_attribute): Prevent overriding
4301         sections for emulated tls with special sections.
4302         * config/i386/i386.c (x86_64_elf_select_section): Add
4303         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4304         (x86_64_elf_unique_section): Likewise.
4305         * config/vxworks.c: Include tree.h.
4306         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4307         (vxworks_override_options): Set TLS scheme.
4308         * doc/tm.texi (Emulated TLS): New node.
4309
4310 2008-04-26  Simon Baldwin <simonb@google.com>
4311
4312         PR c/35652
4313         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4314         with propagated string constants.
4315
4316 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4317
4318         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4319         constraint for operand 2 when operand 0 is memory operand.
4320         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4321         operand 0 is memory operand.
4322         (fix_trunc<mode>_i387_with_temp): Ditto.
4323         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4324         operand 2 when operand 1 is memory operand.
4325         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4326         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4327         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4328         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4329         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4330         operands 2,3 and 4 when operand 1 is memory operand.
4331         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4332         is memory operand.
4333         (fistdi2_floor_with_temp): Ditto.
4334         (fist<mode>2_floor_with_temp): Ditto.
4335         (fistdi2_ceil_with_temp): Ditto.
4336         (fist<mode>2_ceil_with_temp): Ditto.
4337         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4338
4339 2008-04-26  David Daney  <ddaney@avtrex.com>
4340
4341         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4342         unspec_volitile.
4343         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4344         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4345         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4346         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4347         (compare_and_swap_12): New insn.
4348         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4349         * config/mips/mips.c (mips_force_binary): New function.
4350         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4351         (mips_expand_compare_and_swap_12): New function.
4352         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4353
4354 2008-04-25  Jan Hubicka  <jh@suse.cz>
4355
4356         PR testsuite/35843
4357         * cfgexpand.c (pass_expand): Turn into RTL pass.
4358         * passes.c (execute_one_pass): Do pass typechecking after execution.
4359         * tree-pass.h (pass_expand): Turn into RTL pass.
4360
4361         * function.h (struct rtl_data): Move here fields
4362         accesses_prior_frames, calls_eh_return, saves_all_registers,
4363         has_nonlocal_goto, has_asm_statement, is_thunk,
4364         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4365         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4366         arg_pointer_save_area_init from struct function; turn into bool.
4367         (struct function): Move
4368         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4369         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4370         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4371         tail_call_emit, arg_pointer_save_area_init
4372         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4373         (current_function_returns_struct, current_function_returns_pcc_struct,
4374         current_function_calls_setjmp, current_function_calls_alloca,
4375         current_function_accesses_prior_frames,
4376         current_function_calls_eh_return, current_function_is_thunk,
4377         current_function_stdarg, current_function_profile,
4378         current_function_limit_stack, current_function_uses_pic_offset_table,
4379         current_function_uses_const_pool, current_function_has_nonlocal_label,
4380         current_function_saves_all_registers,
4381         current_function_has_nonlocal_goto,
4382         current_function_has_asm_statement): Remove accesor macros.
4383         * ra-conflict.c (global_conflicts): Update.
4384         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4385         (suitable_for_tail_call_opt_p): Update.
4386         * builtins.c (expand_builtin_return_addr): Update.
4387         (expand_builtin_setjmp_setup): Update.
4388         (expand_builtin_nonlocal_goto): Update.
4389         * final.c (final_start_function): Update.
4390         (profile_function): Update.
4391         (leaf_function_p): Update.
4392         (only_leaf_regs_used): Update.
4393         * df-scan.c (df_get_exit_block_use_set): Update.
4394         * dojump.c (clear_pending_stack_adjust): Update.
4395         * tree-stdarg.c (gate_optimize_stdarg): Update.
4396         * gimple-low.c (lower_function_body): Update.
4397         * global.c (compute_regsets): Update.
4398         (global_alloc): Update.
4399         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4400         * expr.c (expand_assignment): Update.
4401         * dse.c (dse_step0): Update.
4402         (dse_step1): Update.
4403         * c-decl.c (store_parm_decls): Update.
4404         * local-alloc.c (combine_regs): Update.
4405         (find_free_reg): Update.
4406         * function.c (assign_parms_augmented_arg_list): Update.
4407         (assign_parm_find_data_types): Update.
4408         (assign_parms): Update.
4409         (allocate_struct_function): Update.
4410         (expand_function_start): Update.
4411         (expand_function_end): Update.
4412         (get_arg_pointer_save_area): Update.
4413         (thread_prologue_and_epilogue_insns): Update.
4414         (rest_of_match_asm_constraints): Update.
4415         * stor-layout.c (variable_size): Update.
4416         * gcse.c (gcse_main): Update.
4417         (bypass_jumps): Update.
4418         * gimplify.c (gimplify_function_tree): Update.
4419         * calls.c (emit_call_1): Update.
4420         (expand_call): Update.
4421         * bt-load.c (compute_defs_uses_and_gen): Update.
4422         * except.c (sjlj_assign_call_site_values): Update.
4423         (sjlj_emit_function_enter): Update.
4424         (can_throw_external): Update.
4425         (set_nothrow_function_flags): Update.
4426         (expand_builtin_unwind_init): Update.
4427         (expand_eh_return): Update.
4428         (convert_to_eh_region_ranges): Update.
4429         (output_function_exception_table): Update.
4430         * emit-rtl.c (gen_tmp_stack_mem): Update.
4431         * cfgexpand.c (expand_used_vars): Update.
4432         (tree_expand_cfg): Update.
4433         * cfgcleanup.c (rest_of_handle_jump): Update.
4434         * explow.c (allocate_dynamic_stack_space): Update.
4435         * varasm.c (assemble_start_function): Update.
4436         (force_const_mem): Update.
4437         (mark_constant_pool): Update.
4438         * tree-optimize.c (tree_rest_of_compilation): Update.
4439         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4440         * tree-cfg.c (notice_special_calls): Update.
4441         (is_ctrl_altering_stmt): Update.
4442         (tree_can_make_abnormal_goto): Update.
4443         (tree_purge_dead_abnormal_call_edges): Update.
4444         * config/alpha/predicates.md: Update.
4445         * config/alpha/alpha.c (alpha_sa_mask): Update.
4446         (alpha_sa_size): Update.
4447         (alpha_does_function_need_gp): Update.
4448         (alpha_expand_prologue): Update.
4449         (alpha_start_function): Update.
4450         (alpha_output_function_end_prologue): Update.
4451         (alpha_expand_epilogue): Update.
4452         * config/frv/frv.c (frv_stack_info): Update.
4453         (frv_expand_epilogue): Update.
4454         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4455         (s390_register_info): Update.
4456         (s390_frame_info): Update.
4457         (s390_init_frame_layout): Update.
4458         (s390_can_eliminate): Update.
4459         (save_gprs): Update.
4460         * config/spu/spu.c (spu_split_immediate): Update.
4461         (need_to_save_reg): Update.
4462         (spu_expand_prologue): Update.
4463         (spu_expand_epilogue): Update.
4464         * config/sparc/sparc.md: Update.
4465         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4466         (sparc_tls_got): Update.
4467         (legitimize_pic_address): Update.
4468         (sparc_emit_call_insn): Update.
4469         (sparc_expand_prologue): Update.
4470         (output_return): Update.
4471         (print_operand): Update.
4472         (sparc_function_ok_for_sibcall): Update.
4473         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4474         * config/m32r/m32r.md: Update.
4475         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4476         (m32r_compute_frame_size): Update.
4477         (m32r_expand_prologue): Update.
4478         (m32r_expand_epilogue): Update.
4479         (m32r_legitimize_pic_address): Update.
4480         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4481         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4482         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4483         (gen_push): Update.
4484         (ix86_save_reg): Update.
4485         (ix86_compute_frame_layout): Update.
4486         (ix86_expand_prologue): Update.
4487         (ix86_expand_epilogue): Update.
4488         * config/sh/sh.c (output_stack_adjust): Update.
4489         (calc_live_regs): Update.
4490         (sh5_schedule_saves): Update.
4491         (sh_expand_prologue): Update.
4492         (sh_expand_epilogue): Update.
4493         (sh_setup_incoming_varargs): Update.
4494         (sh_allocate_initial_value): Update.
4495         (sh_get_pr_initial_val): Update.
4496         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4497         * config/sh/sh.md (label:): Update.
4498         * config/avr/avr.c (out_movhi_mr_r): Update.
4499         * config/crx/crx.h (enum): Update.
4500         * config/xtensa/xtensa.h (along): Update.
4501         * config/stormy16/stormy16.c Update.
4502         (xstormy16_compute_stack_layout): Update.
4503         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4504         (fr30_expand_prologue): Update.
4505         * config/cris/cris.c (cris_conditional_register_usage): Update.
4506         (cris_reg_saved_in_regsave_area): Update.
4507         (cris_initial_frame_pointer_offset): Update.
4508         (cris_simple_epilogue): Update.
4509         (cris_expand_prologue): Update.
4510         (cris_expand_epilogue): Update.
4511         (cris_expand_pic_call_address): Update.
4512         (cris_asm_output_symbol_ref): Update.
4513         (cris_asm_output_label_ref): Update.
4514         * config/cris/cris.md Update.
4515         * config/iq2000/iq2000.c (compute_frame_size): Update.
4516         (iq2000_expand_epilogue): Update.
4517         * config/mt/mt.h (save_direction): Update.
4518         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4519         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4520         (ia64_secondary_reload_class): Update.
4521         * config/m68k/m68k.c (m68k_save_reg): Update.
4522         (m68k_expand_prologue): Update.
4523         (m68k_expand_epilogue): Update.
4524         (legitimize_pic_address): Update.
4525         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4526         (first_reg_to_save): Update.
4527         (first_altivec_reg_to_save): Update.
4528         (compute_vrsave_mask): Update.
4529         (compute_save_world_info): Update.
4530         (rs6000_stack_info): Update.
4531         (spe_func_has_64bit_regs_p): Update.
4532         (rs6000_ra_ever_killed): Update.
4533         (rs6000_emit_eh_reg_restore): Update.
4534         (rs6000_emit_allocate_stack): Update.
4535         (rs6000_emit_prologue): Update.
4536         (rs6000_emit_epilogue): Update.
4537         (rs6000_output_function_epilogue): Update.
4538         (output_profile_hook): Update.
4539         (rs6000_elf_declare_function_name): Update.
4540         * config/rs6000/rs6000.h (rs6000_args): Update.
4541         * config/rs6000/rs6000.md: Update.
4542         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4543         * config/arc/arc.c (arc_output_function_epilogue): Update.
4544         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4545         * config/darwin.c (machopic_function_base_name): Update.
4546         * config/score/score3.c (score3_compute_frame_size): Update.
4547         (rpush): Update.
4548         (rpop): Update.
4549         (score3_epilogue): Update.
4550         * config/score/score7.c (score7_compute_frame_size): Update.
4551         (score7_prologue): Update.
4552         (score7_epilogue): Update.
4553         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4554         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4555         * config/arm/arm.c (use_return_insn): Update.
4556         (require_pic_register): Update.
4557         (arm_load_pic_register): Update.
4558         (arm_compute_save_reg0_reg12_mask): Update.
4559         (arm_compute_save_reg_mask): Update.
4560         (thumb1_compute_save_reg_mask): Update.
4561         (output_return_instruction): Update.
4562         (arm_output_function_prologue): Update.
4563         (arm_output_epilogue): Update.
4564         (arm_get_frame_offsets): Update.
4565         (arm_expand_prologue): Update.
4566         (thumb_pushpop): Update.
4567         (thumb_exit): Update.
4568         (thumb1_expand_prologue): Update.
4569         (thumb1_expand_epilogue): Update.
4570         (arm_unwind_emit): Update.
4571         (arm_output_fn_unwind): Update.
4572         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4573         * config/arm/arm.md: Update.
4574         * config/pa/pa.md: Update.
4575         * config/pa/pa.c (legitimize_pic_address): Update.
4576         (compute_frame_size): Update.
4577         (hppa_expand_prologue): Update.
4578         (hppa_expand_epilogue): Update.
4579         (borx_reg_operand): Update.
4580         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4581         (HARD_REGNO_RENAME_OK): Update.
4582         * config/mips/mips.c (mips_global_pointer): Update.
4583         (mips_save_reg_p): Update.
4584         (mips_compute_frame_info): Update.
4585         (mips_frame_pointer_required): Update.
4586         (mips_expand_prologue): Update.
4587         (mips_expand_epilogue): Update.
4588         (mips_can_use_return_insn): Update.
4589         (mips_reorg_process_insns): Update.
4590         * config/v850/v850.c (compute_register_save_size): Update.
4591         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4592         * config/mmix/mmix.c (along): Update.
4593         (mmix_expand_epilogue): Update.
4594         * config/bfin/bfin.c (legitimize_pic_address): Update.
4595         (must_save_p): Update.
4596         (stack_frame_needed_p): Update.
4597         (add_to_reg): Update.
4598         (bfin_expand_prologue): Update.
4599         * stmt.c (expand_asm_operands): Update.
4600         * reload1.c (reload): Update.
4601         (init_elim_table): Update.
4602
4603 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4604         
4605         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4606         
4607 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4608
4609         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4610         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4611         (mov<mode>): Removed.
4612         (*movv4sf_internal): Likewise.
4613         (*movv2df_internal): Likewise.
4614
4615 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4616
4617         * config.gcc (crx-*-elf): Remove deprecation.
4618
4619 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4620
4621         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4622         __gcc_deregister_frame with atexit.
4623         (deregister_frame_dtor): Remove.
4624
4625 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4626             Nathan Sidwell  <nathan@codesourcery.com>
4627
4628         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4629         (misel): Likewise.
4630         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4631         (rs6000_isel): Likewise.
4632         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4633         (rs6000_isel): New variable.
4634         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4635
4636 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4637
4638         PR c++/35758
4639         * c-common.c (handle_vector_size_attribute): Call
4640         lang_hooks.types.reconstruct_complex_type instead of
4641         reconstruct_complex_type.
4642         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4643         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4644         * langhooks.h (struct lang_hooks_for_types): Add
4645         reconstruct_complex_type hook.
4646         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4647         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4648
4649 2008-04-24  Richard Guenther  <rguenther@suse.de>
4650
4651         * c-common.h (check_builtin_function_arguments): Declare.
4652         * c-common.c (validate_nargs): New function.
4653         (check_builtin_function_arguments): Likewise.
4654         * c-typeck.c (build_function_call): Call
4655         check_builtin_function_arguments.
4656         * builtins.c (fold_builtin_classify): Remove error reporting code.
4657         (fold_builtin_unordered_cmp): Likewise.
4658         (fold_builtin_1): Likewise.
4659         (fold_builtin_n): Likewise.
4660
4661 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4662
4663         PR tree-optimization/36008
4664         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4665         the original op1, rather than delta by step.
4666
4667 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4668             Sebastian Pop  <sebastian.pop@amd.com>
4669
4670         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4671         eliminate_local_variables_stmt, eliminate_local_variables,
4672         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4673         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4674         of code delimited by two edges in the CFG.
4675         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4676         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4677         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4678         the case of parallelisation of reductions.
4679         (expr_invariant_in_region_p): New.
4680
4681         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4682         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4683
4684 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4685             Richard Guenther  <rguenther@suse.de>
4686
4687         PR tree-optimization/36034
4688         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4689         incapable of dealing with loads with gaps.
4690
4691 2008-04-24  Rafael Espindola  <espindola@google.com>
4692
4693         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4694         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4695         vrp_evaluate_conditional.
4696         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4697         (vrp_evaluate_conditional): Split the cond argument.
4698         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4699         (simplify_stmt_for_jump_threading): Update call to
4700         vrp_evaluate_conditional.
4701
4702 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4703
4704         PR tree-optimization/35982
4705         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4706         interleaved data-refs are of the same type.
4707
4708 2008-04-24  Danny Smith  <dannysmith@users.net>
4709
4710         * c-format.c (check_format_info_main): Use strncmp rather than a
4711         magic prefix to handle multichar length specs.
4712         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4713         Don't prefix "I64" and "I32" with '\0'.
4714
4715 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4716
4717         PR target/36015
4718         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4719         in registers for -m32 only if stdarg_p (fntype).
4720
4721 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4722
4723         PR rtl-optimization/36006
4724         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4725         temp to op0 in order to avoid invalid rtx sharing.
4726
4727 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4728
4729         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4730         check TREE_INVARIANT.
4731         * tree-gimple.c (is_gimple_address): New.
4732         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4733         * tree-gimple.h (is_gimple_address): New.
4734         * tree.h (decl_address_invariant_p): New.
4735         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4736         (build_string): Likewise.
4737         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4738         (tree_invariant_p_1): Likewise.
4739         (save_expr): Use it.
4740         (tree_invariant_p): New.
4741         (skip_simple_arithmetic): Use it.
4742         (stabilize_reference_1): Use it.
4743         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4744         simplify.
4745         (build1_stat): Drop code to compute TREE_INVARIANT.
4746         (build2_stat): Drop code to compute TREE_INVARIANT.
4747         (build3_stat): Drop code to compute TREE_INVARIANT.
4748         (build4_stat): Drop code to compute TREE_INVARIANT.
4749         (build5_stat): Drop code to compute TREE_INVARIANT.
4750         (build7_stat): Drop code to compute TREE_INVARIANT.
4751         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4752         * tree.h (struct tree_base): Remove invariant_flag.
4753         (TREE_INVARIANT): Remove.
4754         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4755         (fold_builtin_expect): Check TREE_CONSTANT.
4756         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4757         * c-tree.h (c_expr_to_decl): Drop third parameter.
4758         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4759         (build_c_cast): Don't set TREE_INVARIANT.
4760         (pop_init_level): Don't set TREE_INVARIANT.
4761         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4762         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4763         TREE_CONSTANT.
4764         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4765         (gimplify_addr_expr): Adjust comment.
4766         * tree-mudflap.c (mf_build_string):
4767         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4768         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4769         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4770         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4771         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4772         * langhooks.h (struct lang_hooks): Drop third parameter from
4773         expr_to_decl.
4774
4775 2008-04-23  Richard Guenther  <rguenther@suse.de>
4776
4777         PR tree-optimization/27799
4778         PR tree-optimization/32921
4779         PR tree-optimization/32624
4780         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4781         SMTs aliases and the tag itself into the solution.
4782         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4783         merge the points-to solution back into the SMT aliases.
4784         (may_alias_p): Use alias_set_subset_of instead of
4785         aliases_conflict_p.  A pointer which points to
4786         memory with alias set zero may access any variable.
4787
4788 2008-04-23  Richard Guenther  <rguenther@suse.de>
4789
4790         * alias.c (alias_set_subset_of): Correctly handle asking
4791         if zero is a subset of an alias set with zero child.
4792         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4793         (compute_flow_insensitive_aliasing): Correctly walk all
4794         pointers.  Do not unnecessarily union sets.
4795
4796 2008-04-23  Richard Guenther  <rguenther@suse.de>
4797
4798         PR middle-end/36021
4799         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4800
4801 2008-04-22  Tomas Bily  <tbily@suse.cz>
4802
4803         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4804         unreachable case.
4805         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4806         NON_LVALUE_EXPR.
4807         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4808         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4809         * tree-inline.c (estimate_num_insns_1): Likewise.
4810         * varasm.c (const_hash_1, compare_constant, copy_constant)
4811         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4812         * emit-rtl.c (component_ref_for_mem_expr)
4813         (set_mem_attributes_minus_bitpos): Likewise.
4814         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4815         (is_aligning_offset): Likewise.
4816         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4817         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4818         * dojump.c (do_jump): Likewise.
4819         * builtins.c (get_pointer_alignment, get_memory_rtx)
4820         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4821         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4822
4823 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4824
4825         PR rtl-optimization/36017
4826         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4827         expanding the library call.
4828
4829 2008-04-22  Ian Lance Taylor  <iant@google.com>
4830
4831         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4832         than size_in_bytes.
4833
4834 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4835
4836         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4837         of LR/CTR moves for Power6.
4838
4839 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4840
4841         PR middle-end/36003
4842         * passes.c (init_optimization_passes): Remove
4843         pass_fast_rtl_byte_dce.
4844         
4845 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4846
4847         PR target/29096
4848         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4849         builtin functions to generate faster code.
4850         (_mm_cvtpu16_ps): Ditto.
4851         (_mm_cvtpi32x2_ps): Ditto.
4852
4853 2008-04-22  Nick Clifton  <nickc@redhat.com>
4854
4855         * common.opt (ftree-loop-distribution): Add Optimization
4856         attribute.
4857
4858         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4859         (frv_expand_builtin_va_start): Likewise.
4860
4861         * config/arm/arm.c (thumb_find_work_register): Fix location of
4862         argument register count.
4863
4864 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4865
4866         Support scheduling for ColdFire V1 and V3 microarchitecture.
4867         Improve scheduling of multiplication instructions.
4868
4869         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4870         (mac): New instruction attribute.
4871         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4872         (m68k_sched_mac): New variable.
4873         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4874         Handle cfv1 and cfv3.
4875         (max_insn_size): New static variable.
4876         (struct _sched_ib): New type.
4877         (sched_ib): New static variable.
4878         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4879         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4880         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4881         Update.
4882         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4883         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4884         new variables.  Update.
4885         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4886         Add modeling of cfv3 instruction buffer.  Update.
4887         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4888         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4889         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4890         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4891         a particular reservation applies to.
4892         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4893         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4894         to mul_l and mul_w.
4895         (cf_ib_*): Simplify description of instruction buffer.
4896         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4897         (cf_mem): Split into cf_mem1 and cf_mem2.
4898         (cf_v2_move_??): Rename to cfv12_alu_??.
4899         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4900         (cf_v2_mul_??): Remove reservations.
4901         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4902         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4903         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4904         appropriate place.
4905         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4906         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4907         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4908         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4909         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4910         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4911         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4912         expansions of the above reservations for instructions of sizes
4913         1, 2 and 3 words.
4914
4915 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4916
4917         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4918
4919 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4920
4921         * coverage.c: Include tree-pass.h.
4922         (coverage_counter_alloc): Print da_file_name to the dump file.
4923
4924 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4925
4926         * sbitmap.c (sbitmap_range_empty_p): New function.
4927         * sbitmap.h (sbitmap_range_empty_p): New function.
4928         * bitmap.h: Now includes obstack.h.
4929
4930 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4931             Kenneth Zadeck  <zadeck@naturalbridge.com>
4932
4933         * dbgcnt.def (ra_byte_scan): Added.
4934         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4935         when the last hit happens for a counter.  
4936         * timevar.def (TV_DF_BYTE_LR): New variable.
4937         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4938         * passes.c (pass_fast_rtl_byte_dce): New pass.
4939         * fwprop.c (update_df): Added mode to call df_ref_create.
4940         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4941         DF_REF_EXTRACT_OFFSET.
4942         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4943         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4944         (df_mm): New enum.
4945         (df_ref_extract): Added mode field.
4946         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4947         DF_REF_EXTRACT_OFFSET.
4948         (DF_REF_EXTRACT_MODE): New macro.
4949         (df_byte_lr_bb_info): New structure.
4950         (df_print_byte_regset, df_compute_accessed_bytes, 
4951         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4952         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4953         df_byte_lr_simulate_uses,
4954         df_byte_lr_simulate_artificial_refs_at_top,
4955         df_byte_lr_simulate_artificial_refs_at_end,
4956         df_compute_accessed_bytes): New function.
4957         (df_ref_create): Add parameter.
4958         (df_byte_lr_get_bb_info): New inline function.
4959         * df-scan.c (df_ref_record, df_uses_record,
4960         df_ref_create_structure): Added mode parameter.
4961         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4962         df_defs_record, df_uses_record, df_get_conditional_uses,
4963         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4964         df_entry_block_defs_collect, df_exit_block_uses_collect):
4965         Added mode parameter to calls to df_ref_record, df_uses_record,
4966         df_ref_create_structure.
4967         (df_ref_equal_p, df_ref_compare): Added test for modes.
4968         (df_ref_create_structure): Added code to set mode.  Renamed
4969         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4970         DF_REF_EXTRACT_OFFSET.
4971         * df-core.c (df_print_byte_regset): New function.
4972         * df-byte-scan.c: New file.
4973         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4974         calls to BITMAP_FREE.  
4975         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4976         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4977         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4978         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4979         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4980         df_byte_lr_local_compute, df_byte_lr_init,
4981         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4982         df_byte_lr_transfer_function, df_byte_lr_free, 
4983         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4984         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4985         df_byte_lr_simulate_uses,
4986         df_byte_lr_simulate_artificial_refs_at_top,
4987         df_byte_lr_simulate_artificial_refs_at_end): New function.
4988         * dce.c (byte_dce_process_block): New function.
4989         (dce_process_block): au is now passed in rather than computed
4990         locally.  Changed loops that look at artificial defs to not look
4991         for conditional or partial ones, because there never are any.  
4992         (fast_dce): Now is able to drive byte_dce_process_block or 
4993         dce_process_block depending on the kind of dce being done.
4994         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4995         (rest_of_handle_fast_byte_dce): New function.
4996         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4997         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4998
4999 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5000
5001         PR fortran/35019
5002         * gcc.h: Added fortran options that take arguments to
5003         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5004         macros.
5005
5006 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5007
5008         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5009         scalarization if on the LHS and not a full access.
5010
5011 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5012
5013         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5014
5015 2008-04-18  Rafael Espindola  <espindola@google.com>
5016
5017         * tree-vrp.c (find_case_label_index): Fix the binary search.
5018         (find_case_label_range): New.
5019         (vrp_visit_switch_stmt): Use find_case_label_range.
5020         (simplify_switch_using_ranges): Use find_case_label_range.
5021
5022 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5023
5024         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5025         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5026
5027 2008-04-18  Tom Tromey  <tromey@redhat.com>
5028
5029         PR libcpp/15500:
5030         * doc/cpp.texi (Implementation-defined behavior): Mention
5031         -finput-charset.
5032
5033 2008-04-18  Ian Lance Taylor  <iant@google.com>
5034
5035         * fold-const.c (pointer_may_wrap_p): New static function.
5036         (fold_comparison): Add another test for pointer overflow.  Use
5037         pointer_may_wrap_p to disable some false positives.
5038
5039 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5040           
5041         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5042         (fname_as_string): Match updated cpp_interpret_string prototype.
5043         (fix_string_type): Support char16_t* and char32_t*.
5044         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5045         derivative) nodes.  Register as builtin if C++0x.
5046         (c_parse_error): Support CPP_CHAR{16,32}.
5047         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5048         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5049         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5050         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5051         CTI_CHAR32_ARRAY_TYPE>: New elements.
5052         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5053         char32_type_node, signed_char32_type_node, char16_array_type_node,
5054         char32_array_type_node): New defines.
5055         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5056         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5057         (lex_string): Support CPP_STRING{16,32}, match updated
5058         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5059         (lex_charconst): Support CPP_CHAR{16,32}.
5060         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5061         and CPP_STRING{16,32}.
5062
5063 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5064
5065         PR bootstrap/35457
5066         * aclocal.m4: Regenerate.
5067         * configure: Regenerate.
5068
5069 2008-04-18  Jan Hubicka  <jh@suse.cz>
5070
5071         * except.c (dw2_size_of_call_site_table,
5072         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5073
5074         * cgraphbuild.c (build_cgraph_edges): Update.
5075         * tree-pass.h: Update comment.
5076         * final.c (leaf_function_p): Update.
5077         (leaf_renumber_regs): Update.
5078         (rest_of_clean_state): Update.
5079         * omp-low.c (expand_omp_parallel): Update.
5080         * ipa-reference.c (analyze_function): Update.
5081         * reorg.c (find_end_label): Update.
5082         (optimize_skip): Update.
5083         (fill_simple_delay_slots): Update.
5084         (fill_simple_delay_slots): Update.
5085         (make_return_insns): Update.
5086         (dbr_schedule): Update.
5087         * gimple-low.c (record_vars_into): Update.
5088         * cfgbuild.c (make_edges): Update.
5089         * function.c (assign_stack_local): Update.
5090         (assign_parm_adjust_stack_rtl): Update.
5091         (locate_and_pad_parm): Update.
5092         (allocate_struct_function): Do not initialize stack_alignment_needed
5093         and preferred_stack_boundary here.
5094         (stack_protect_prologue): Update.
5095         (stack_protect_epilogue): Update.
5096         (expand_function_start): Initialize stack_alignment_needed,
5097         preferred_stack_boundary and max_jumptable_ents.
5098         (expand_function_end): Update.
5099         (free_after_compilation): Do not NULLify epilogue_delay_list.
5100         * function.h (struct rtl_data): Add stack_protect_guard,
5101         stack_alignment_needed,
5102         preferred_stack_boundary, epilogue_delay_list.
5103         (struct function): Remove value_histograms, stack_alignment_needed,
5104         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5105         last_label_uid,
5106         unexpanded_var_list, stack_protect_guard.
5107         (current_function_epilogue_delay_list): Remove.
5108         * ipa-type-escape.c (analyze_function): Update.
5109         * gimplify.c (pop_gimplify_context): Update comment.
5110         * calls.c (expand_call): Update.
5111         (emit_library_call_value_1): Update.
5112         * except.c (set_nothrow_function_flags): Update.
5113         * cfgexpand.c (get_decl_align_unit): Update.
5114         (create_stack_guard): Update.
5115         (estimated_stack_frame_size): Update.
5116         (expand_used_vars): Update.
5117         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5118         * explow.c (allocate_dynamic_stack_space): Update.
5119         * tree-ssa-live.c (remove_unused_locals): Update.
5120         * varasm.c (mark_constant_pool): Update.
5121         * tree-inline.c (remap_decls): Update.
5122         (initialize_cfun): Update.
5123         (declare_return_variable): Update.
5124         (inline_forbidden_p): Update.
5125         (expand_call_inline): Update.
5126         (declare_inline_vars): Update.
5127         (tree_function_versioning): Update.
5128         * tree-flow.h (value_histograms): New.
5129         (VALUE_HISTOGRAMS): New macro.
5130         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5131         last_label_uid.
5132         * tree-cfg.c (set_bb_for_stmt): Update.
5133         (replace_by_duplicate_decl): Update.
5134         (move_block_to_fn): Update.
5135         (new_label_mapper): Update.
5136         (dump_function_to_file): Update.
5137         * ipa-struct-reorg.c (build_data_structure): Update.
5138         * cfgrtl.c (print_rtl_with_bb): Update.
5139         * reload1.c (reload): Update.
5140         (reload): Update.
5141         * config/i386/i386.c (setup_incoming_varargs_64,
5142         ix86_compute_frame_layout): Update.
5143         * config/arc/arc.c (arc_output_function_epilogue): Update.
5144
5145 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5146
5147         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5148         for FreeBSD as well.
5149         * gthr-posix95.h: Likewise.
5150
5151 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5152
5153         PR rtl-optimization/35838
5154         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5155         out the byte offset of the first subreg.
5156
5157 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5158
5159         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5160         to split_ti instead of three separate calls with single member arrays.
5161         (subti3 splitter): Ditto.
5162         (adddi3 splitter): Ditto with split_di.
5163         (subdi3 splitter): Ditto.
5164         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5165         two separate calls with single member arrays.  Swap match_dup
5166         operands 1 and 2 to better fit into the array.
5167         (negdi2 splitter): Ditto with split_di.
5168         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5169         two separate calls with single member arrays.  Swap match_dup operands
5170         6 and 7 to better fit into the array.
5171
5172 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5173
5174         * config/i386/i386.c (sse_builtin_type): New.
5175         (bdesc_sse_args): Likewise.
5176         (bdesc_sse_3arg): Removed.
5177         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5178         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5179         IX86_BUILTIN_ROUNDPS.
5180         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5181         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5182         IX86_BUILTIN_ROUNDPS.
5183         (ix86_expand_sse_4_operands_builtin): Removed.
5184         (ix86_expand_sse_operands_builtin): New.
5185         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5186         and CODE_FOR_sse4_1_roundps.
5187         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5188         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5189
5190 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5191
5192         PR target/35907
5193         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5194         regs before frame pop when needed.  If use_backchain_to_restore_sp
5195         then load backchain into a temp reg to restore vr and vrsave.  Add
5196         code to restore vr after frame pop if possible.
5197
5198 2008-04-17  Richard Guenther  <rguenther@suse.de>
5199
5200         * tree-vn.c (expressions_equal_p): Do not check type
5201         equality or compatibility before calling operand_equal_p.
5202         * fold-const.c (operand_equal_p): Check equivalence of
5203         integer constants before bailing out due to signedness or
5204         precision differences.
5205         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5206         spurious differences in type qualification.  Ignore types
5207         for COMPONENT_REFs at all.
5208
5209 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5210
5211         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5212         msw_skip comparison.
5213         
5214 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5215
5216         PR c/35739
5217         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5218         reg type.
5219
5220         PR tree-optimization/35899
5221         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5222         rather than TREE_OPERAND.
5223
5224 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5225
5226         PR target/35944
5227         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5228         temporary registers.  Change operand predicate to general_operand.
5229         (remainderxf3): Ditto.
5230
5231 2008-04-16  Richard Guenther  <rguenther@suse.de>
5232
5233         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5234         * tree-affine.c (aff_combination_expand): Look through some
5235         conversions.
5236
5237 2008-04-15  Doug Kwan  <dougkwan@google.com>
5238
5239         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5240         for hex printing.
5241         * tree-pretty-print.c (dump_generic_node): Ditto.
5242         * final.c (output_addr_const): Ditto.
5243         * dwarf2out.c (output_cfi): Ditto.
5244         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5245         * print-rtl.c (print_rtx): Ditto.
5246         * print-tree.c (print_node_brief, print_node): Ditto.
5247         * c-common.c (match_case_to_enum_1): Ditto.
5248         * sched-vis.c (print_value): Ditto.
5249         * config/i386/i386.c (print_operand): Cast to long unsigned int
5250         for hex printing.
5251
5252 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5253         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5254         MS Windows VirtualProtect function.
5255
5256 2008-04-15  Jan Hubicka  <jh@suse.cz>
5257
5258         * gengtype.c (write_root): Param_is argument is OK.
5259         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5260         * function.h: Include varray.h
5261         (rtl_eh): New stucture based on except.c one.
5262         (call_site_record): New forward declaration and vector type.
5263         * calls.c (emit_call_1): Do not call
5264         note_current_region_may_contain_throw.
5265         * except.c (eh_status): Remove cur_region, try_region since they are
5266         unused.
5267         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5268         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5269         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5270         Remove call_site_data_used, call_site_data_size.
5271         Turn call_site_record into vector in function.h.
5272         (note_current_region_may_contain_throw): Remove.
5273         (get_exception_pointer, get_exception_filter): Do not take struct
5274         function argument; update.
5275         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5276         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5277         build_post_landing_pads, dw2_build_landing_pads,
5278         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5279         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5280         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5281         sjlj_build_landing_pads, finish_eh_generation,
5282         remove_exception_handler_label, remove_eh_handler,
5283         maybe_remove_eh_handler, add_reachable_handler,
5284         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5285         add_action_record, collect_one_action_chain, add_call_site,
5286         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5287         sjlj_output_call_site_table, output_function_exception_table,
5288         * except.h (note_current_region_may_contain_throw): Remove
5289         (get_exception_pointer, get_exception_filter): Do not take struct
5290         function argument.
5291         * Makefile.in (GTFILES): Put varargs before struct function.
5292
5293 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5294
5295         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5296         punt for STRING_CST.
5297         (get_constraint_for): Deal with STRING_CST here instead.
5298
5299 2008-04-15  Richard Guenther  <rguenther@suse.de>
5300
5301         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5302         statements in a basic-block with a backward walk.  Do not
5303         substitute into dead statements but instead remove those.
5304
5305 2008-04-15  Richard Guenther  <rguenther@suse.de>
5306
5307         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5308         to zero, thus disable creation of SFTs.
5309
5310 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5311
5312         * tree-predcom.c (suitable_reference_p): Return false if the
5313         reference can throw.
5314
5315 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5316
5317         PR c/35751
5318         * c-decl.c (finish_decl): If extern or static var has variable
5319         size, set TREE_TYPE (decl) to error_mark_node.
5320
5321 2008-04-15  Rafael Espindola  <espindola@google.com>
5322
5323         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5324         variable arg1.
5325
5326 2008-04-15  Richard Guenther  <rguenther@suse.de>
5327
5328         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5329         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5330         (visit_reference_op_load): Do walk vuse-vdef chains on
5331         vn_reference_lookup.
5332         (visit_reference_op_store): But do not here.
5333         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5334         vn_reference_lookup.
5335         (vn_lookup_with_vuses): But do so here.
5336
5337 2008-04-14  Ian Lance Taylor  <iant@google.com>
5338
5339         * fold-const.c (fold_overflow_warning): Remove assertion.
5340
5341 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5342
5343         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5344         temp1 local variables.
5345
5346 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5347
5348         PR target/35661
5349         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5350         ".text.unlikely" section as executable.
5351
5352 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5353
5354         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5355         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5356         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5357         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5358         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5359         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5360         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5361
5362 2008-04-14  Ian Lance Taylor  <iant@google.com>
5363
5364         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5365         * fold-const.c (fold_comparison): If appropriate, test
5366         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5367         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5368         reassociating a pointer type.
5369         * doc/invoke.texi (Optimize Options): Document that
5370         -fstrict-overflow applies to pointer wraparound.
5371
5372 2008-04-13  Jan Hubicka  <jh@suse.cz>
5373
5374         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5375
5376 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5377
5378         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5379         we are going to "save the world".
5380
5381 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5382
5383         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5384         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5385         operand 0 constraint, not "=".
5386
5387 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5388
5389         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5390
5391 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5392
5393         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5394         of size of positions_needed * CHAR_BIT.
5395
5396 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5397
5398         PR middle-end/35897
5399         * dse.c (store_info): Change positions_needed to unsigned
5400         HOST_WIDE_INT.
5401         (lowpart_bitmask): New.
5402         (record_store): Cast to unsigned HOST_WIDE_INT for
5403         positions_needed.  Assert width <= size of positions_needed *
5404         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5405         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5406         lowpart_bitmask to set mask.
5407
5408 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5409
5410         * config/bfin/constraints.md: New file.
5411         * config/bfin/bfin.md: Include it.
5412         (adddi3): Use satisfies_constraint functions instead of the old macros.
5413         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5414         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5415         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5416         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5417         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5418         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5419         EXTRA_CONSTRAINT): Delete.
5420         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5421         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5422         of the old macros.
5423         * config/bfin/bfin.c: Include "tm-constrs.h".
5424         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5425         Use satisfies_constraint functions instead of the old macros.
5426         * doc/md.texi (Blackfin Constraints): Update file name reference.
5427
5428 2008-04-11  Richard Guenther  <rguenther@suse.de>
5429
5430         PR tree-optimization/35869
5431         * tree-vrp.c (execute_vrp): Move switch statement update after
5432         jump threading.  Schedule another cfg cleanup run.
5433
5434 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5435
5436         PR c/35744
5437         * attribs.c (decl_attributes): Return early on errorneous node.
5438
5439 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5440
5441         * tree.h (struct tree_base): Added a new flag default_def_flag.
5442         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5443
5444 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5445
5446         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5447
5448 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5449
5450         PR target/35768
5451         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5452         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5453         (icacheflush): Likewise.
5454         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5455         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5456
5457 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5458
5459         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5460
5461 2008-04-10  Rafael Espindola  <espindola@google.com>
5462
5463         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5464         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5465         (extract_range_from_expr): The same.
5466
5467 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5468
5469         * config/mips/mips.md (GPR2): New mode iterator.
5470         (seq): Add comment.
5471         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5472         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5473         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5474         Rewrite these to take two modes, the mode of comparison and the
5475         mode of the destination.
5476         * config/mips/mips.c (mips_expand_scc): Instead of having
5477         paradoxical subreg as destination, expand "narrowing" scc if mode
5478         of comparison is SI and target is requested in DI mode.
5479         (mips_emit_int_order_test): Update comment.  Make mode of
5480         comparison match CMP0 rather than TARGET.  When creating inverse
5481         target use mode of TARGET.
5482
5483 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5484
5485         * gcov-dump.c (tag_summary): Only print summaries for the first
5486         GCOV_COUNTERS_SUMMABLE counters.
5487
5488 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5489
5490         * config/i386/i386.md (absneg): New code iterator.
5491         (absnegprefix): New code attribute.
5492         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5493         patterns using absneg code iterator.
5494         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5495         using absneg code iterator.
5496         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5497         *neg<mode>2 patterns using absneg code iterator.
5498         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5499         *negextendsfdf2 patterns using absneg code iterator.
5500         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5501         *negextendsfxf2 patterns using absneg code iterator.
5502         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5503         *negextendsfdf2 patterns using absneg code iterator.
5504         * config/i386/sse.md (<code><mode>2): Macroize expander from
5505         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5506
5507 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5508
5509         * config/s390/s390.h: Remove the remains of the recent search
5510         & replace action of current_function_outgoing_args_size.
5511
5512 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5513
5514         PR tree-optimization/35821
5515         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5516         NEW_STMT_LIST is not NULL.
5517
5518 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5519
5520         PR libstdc++/35597
5521         * toplev.c (process_options): Remove -ffunction-sections debugging
5522         warning.
5523
5524 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5525
5526         PR middle-end/PR28690
5527         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5528         than gen_rtx_fmt_ee to perform more canonicalizations.
5529
5530 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5531
5532         PR driver/35665
5533         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5534
5535 2008-04-09  Richard Guenther  <rguenther@suse.de>
5536
5537         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5538         (dump_function_to_file): Dump function arguments with types.
5539
5540 2008-04-08  Richard Guenther  <rguenther@suse.de>
5541
5542         * fold-const.c (fold_widened_comparison): Do not allow
5543         sign-changes that change the result.
5544
5545 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5546
5547         PR target/35839
5548         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5549         kinds of indirect references.
5550
5551 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5552
5553         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5554         GNU Fortran language string.
5555
5556 2008-04-08  Rafael Espindola  <espindola@google.com>
5557
5558         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5559         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5560         * tree.h (tree_call_nonnegative_warnv_p): New.
5561
5562 2008-04-08  Jan Hubicka  <jh@suse.cz>
5563
5564         * function.c (free_after_compilation): Clear out regno_reg_rtx
5565         pointer.
5566
5567 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5568
5569         Revert
5570         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5571
5572         PR middle-end/PR28690
5573         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5574         same precedence as REG_POINTER and MEM_POINTER operands.
5575
5576 2008-04-08  Richard Guenther  <rguenther@suse.de>
5577
5578         PR middle-end/35834
5579         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5580         for adding index to base.
5581
5582 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5583
5584         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5585         (MINGW_ENABLE_EXECUTE_STACK): New.
5586         (IN_LIBGCC2): For libgcc include windows.h file for
5587         function declarations.
5588
5589 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5590
5591         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5592         and tem2 if tem1 is not a REG or MULT.
5593
5594 2008-04-08  Jan Hubicka  <jh@suse.cz>
5595
5596         * function.h (incomming_args): Break out of struct function.
5597         (function_subsections): Break out of struct function.
5598         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5599         return_rtx and hard_reg_initial_vals from struct function.
5600         Kill inl_max_label_num.
5601         (current_function_pops_args, current_function_args_info,
5602         current_function_args_size, current_function_args_size,
5603         current_function_pretend_args_size,
5604         current_function_outgoing_args_size,
5605         current_function_internal_arg_pointer, current_function_return_rtx):
5606         Kill compatibility accestor macros.
5607         * builtins.c (expand_builtin_apply_args_1): Update.
5608         (expand_builtin_next_arg): Update.
5609         * df-scan.c (df_get_call_refs): Update.
5610         * dbxout.c (dbxout_function_end): Update.
5611         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5612         (output_line_info): Update.
5613         (secname_for_decl): Update.
5614         (dwarf2out_var_location): Update.
5615         * function.c (free_after_compilation): Update.
5616         (assign_parm_find_stack_rtl): Update.
5617         (assign_parms): Update.
5618         (expand_dummy_function_end): Update.
5619         (expand_function_end): Update.
5620         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5621         (expand_call): Update.
5622         (emit_library_call_value_1): Update.
5623         (store_one_arg): Update.
5624         * varasm.c (initialize_cold_section_name): Update.
5625         (unlikely_text_section): Update.
5626         (unlikely_text_section_p): Update.
5627         (assemble_start_function): Update.
5628         (assemble_end_function): Update.
5629         (default_section_type_flags): Update.
5630         (switch_to_section): Update.
5631         * integrate.c (set_decl_abstract_flags): Update.
5632         (get_hard_reg_initial_val): Update.
5633         (has_hard_reg_initial_val): Update.
5634         (allocate_initial_values): Update.
5635         * resource.c (init_resource_info): Update.
5636         * config/alpha/alpha.c (NUM_ARGS): Update.
5637         (direct_return): Update.
5638         (alpha_va_start): Update.
5639         (alpha_sa_size): Update.
5640         (alpha_initial_elimination_offset): Update.
5641         (alpha_expand_prologue): Update.
5642         (alpha_start_function): Update.
5643         (alpha_expand_epilogue): Update.
5644         (unicosmk_initial_elimination_offset):
5645         * config/alpha/alpha.md (call expander): Update.
5646         * config/s390/s390.c (s390_register_info): Update.
5647         (s390_register_info): Update.
5648         (s390_frame_info): Update.
5649         (s390_initial_elimination_offset): Update.
5650         (s390_build_builtin_va_list): Update.
5651         (s390_va_start): Update.
5652         * config/spu/spu.c (direct_return): Update.
5653         (spu_expand_prologue): Update.
5654         (spu_initial_elimination_offset): Update.
5655         (spu_build_builtin_va_list): Update.
5656         (spu_va_start): Update.
5657         * config/sparc/sparc.c (sparc_init_modes): Update.
5658         (sparc_compute_frame_size): Update.
5659         (function_value): Update.
5660         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5661         * config/i386/i386.md (return expander): Update.
5662         * config/i386/i386.c (ix86_va_start): Update.
5663         (ix86_can_use_return_insn_p): Update.
5664         (ix86_compute_frame_layout): Update.
5665         (ix86_expand_epilogue): Update.
5666         * config/sh/sh.c (output_stack_adjust): Update.
5667         (calc_live_regs): Update.
5668         (sh_expand_prologue): Update.
5669         (sh_builtin_saveregs): Update.
5670         (sh_va_start): Update.
5671         (initial_elimination_offset): Update.
5672         (sh_allocate_initial_value): Update.
5673         (sh_function_ok_for_sibcall): Update.
5674         (sh_get_pr_initial_val): Update.
5675         * config/sh/sh.md (return expander): Update.
5676         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5677         * config/crx/crx.c (crx_compute_frame): UPdate.
5678         (crx_initial_elimination_offset): UPdate.
5679         * config/xtensa/xtensa.c (compute_frame_size): Update
5680         (xtensa_builtin_saveregs): Update.
5681         (xtensa_va_start): Update.
5682         (order_regs_for_local_alloc): Update.
5683         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5684         (xstormy16_expand_builtin_va_start): Update.
5685         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5686         * config/m68hc11/m68hc11.md (return expanders): Update.
5687         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5688         (expand_epilogue): Update.
5689         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5690         (cris_simple_epilogue): Update.
5691         (cris_expand_prologue): Update.
5692         (cris_expand_epilogue): Update.
5693         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5694         (compute_frame_size): Update.
5695         * config/mt/mt.c (mt_compute_frame_size): Update.
5696         * config/mn10300/mn10300.c (expand_prologue): Update.
5697         (expand_epilogue): Update.
5698         (initial_offset): Update.
5699         (mn10300_builtin_saveregs):
5700         * config/mn10300/mn10300.md (return expander): Update.
5701         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5702         (ia64_initial_elimination_offset): Update.
5703         (ia64_initial_elimination_offset): Update.
5704         (ia64_expand_prologue): Update.
5705         * config/m68k/m68k.md (return expander): Update.
5706         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5707         (rs6000_stack_info): Update.
5708         * config/mcore/mcore.c (layout_mcore_frame): Update.
5709         (mcore_expand_prolog): Update.
5710         * config/arc/arc.c (arc_compute_frame_size): Update.
5711         * config/score/score3.c (score3_compute_frame_size): Update.
5712         * config/score/score7.c (score7_compute_frame_size): Update.
5713         * config/arm/arm.c (use_return_insn): Update.
5714         (thumb_find_work_register): Update.
5715         (arm_compute_save_reg_mask): Update.
5716         (arm_output_function_prologue): Update.
5717         (arm_output_epilogue): Update.
5718         (arm_size_return_regs): Update.
5719         (arm_get_frame_offsets): Update.
5720         (arm_expand_prologue): Update.
5721         (thumb_exit): Update.
5722         (thumb_unexpanded_epilogue): Update.
5723         (thumb1_output_function_prologue): Update.
5724         * config/pa/pa.md (return expander): Update.
5725         * config/pa/pa.c (compute_frame_size): Update.
5726         (hppa_builtin_saveregs): Update.
5727         * config/mips/mips.c (mips_va_start): Update.
5728         (mips16_build_function_stub): Update.
5729         (mips_compute_frame_info): Update.
5730         (mips_restore_gp): Update.
5731         (mips_output_function_prologue): Update.
5732         (mips_expand_prologue): Update.
5733         * config/v850/v850.c (compute_frame_size): Update.
5734         (expand_prologue): * config/mmix/mmix.c (along): update.
5735         (mmix_initial_elimination_offset): update.
5736         (mmix_reorg): update.
5737         (mmix_use_simple_return): update.
5738         (mmix_expand_prologue): update.
5739         (mmix_expand_epilogue): Update.
5740         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5741         (emit_link_insn): Update.
5742
5743 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5744
5745         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5746         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5747         instructions.
5748         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5749         atmega103 device.
5750
5751 2008-04-07  Jan Hubicka  <jh@suse.cz>
5752
5753         * function.h (rtl): Rename to x_rtl.
5754         (crtl): New define.
5755         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5756         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5757         used_temp_slots avail_temp_slots, temp_slot_level,
5758         nonlocal_goto_handler_labels): Update accesstors.
5759         (rtl): New global variable.
5760         (struct function): Move some fileds to rtl_data.
5761         (get_arg_pointer_save_area): Update prototype.
5762         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5763         get_arg_pointer_save_area.
5764         * expr.c (init_expr): Update
5765         * function.c (get_frame_size): Update
5766         (assign_stack_local): Update
5767         (expand_function_end): Update.
5768         (get_art_pointer_save_area): Update
5769         * function.h 
5770         * emit-rtl.c (rtl): Declare.
5771         (regno_reg_rtx): Declare.
5772         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5773         Update.
5774         (gen_reg_rtx): Update.
5775         * varasm.c (n_deferred_constatns): Update accestor.
5776         (init_varasm_status): Do not allocate varasm_status.
5777         (force_const_mem, get_pool_size, output_constant_pool): Update.
5778         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5779         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5780         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5781         * sparc/sparc.h (INIT_EXPANDERS): Update.
5782         * ia64/ia64.h (INIT_EXPANDERS): Update.
5783
5784 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5785
5786         * reload.c (push_secondary_reload): Add missing break to for loop.
5787
5788 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5789
5790         PR middle-end/PR28690
5791         * rtlanal.c: Update copyright years.
5792         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5793         as REG_POINTER and MEM_POINTER operands.
5794         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5795         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5796         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5797         * gcse.c: Update copyright years.
5798         (pre_delete): Call gen_reg_rtx_and_attrs.
5799         (hoist_code): Likewise.
5800         (build_store_vectors): Likewise.
5801         (delete_store): Likewise.
5802         * loop-invariant.c (move_invariant_reg): Likewise.
5803         Update copyright years.
5804
5805 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5806
5807         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5808         control string instead of quoted.
5809
5810 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5811
5812         * doc/rtl.texi: Rewrite of subreg section.
5813
5814 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5815
5816         PR/35842
5817         * config/i386/i386.c (legitimize_pic_address): Add treating
5818         of dllimport SYM_REF's.
5819         (legitimize_dllimport_symbol): Add prototype.
5820
5821 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5822
5823         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5824         reference in constructor with non self-referential type.
5825
5826 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5827
5828         Removal of Return with Depressed Stack Pointer support
5829         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5830         (ECF_SP_DEPRESSED): Likewise.
5831         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5832         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5833         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5834         (expand_call): Do not test ECF_SP_DEPRESSED.
5835         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5836         * function.c (keep_stack_depressed): Delete.
5837         (handle_epilogue_set): Likewise.
5838         (update_epilogue_consts): Likewise.
5839         (emit_equiv_load): Likewise.
5840         (thread_prologue_and_epilogue_insns): Remove support for Return with
5841         Depressed Stack Pointer.
5842         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5843
5844 2008-04-06  Richard Guenther  <rguenther@suse.de>
5845
5846         PR tree-optimization/35400
5847         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5848         information from SSA_NAMEs.
5849
5850 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5851
5852         * config/avr/avr.h (avr_mega_p): Remove declaration.
5853         (AVR_MEGA): Remove macro.
5854         * config/avr/avr.c (avr_mega_p): Remove variable.
5855         (avr_override_options): Remove inicializion of avr_mega_p.
5856         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5857         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5858         (avr_jump_mode): (Ditto.).
5859         (avr_output_progmem_section_asm_op): (Ditto.).
5860         (avr_asm_init_sections): (Ditto.).
5861         (avr_asm_init_sections): (Ditto.).
5862         (avr_rtx_costs): (Ditto.).
5863         * config/avr/avr.md: (Ditto.).
5864         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5865         '__AVR_MEGA__'.
5866
5867 2008-04-06  Richard Guenther  <rguenther@suse.de>
5868
5869         PR tree-optimization/35842
5870         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5871         is_gimple_invariant_address.
5872
5873 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5874
5875         * gcc.c (default_compilers): Sync Fortran extensions list with
5876         that in fortran/lang-specs.h.
5877         * doc/invoke.texi: Likewise.
5878         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5879         * dwarf2out.c (gen_compile_unit_die): Likewise.
5880
5881 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5882
5883         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5884
5885 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5886
5887         PR target/12329
5888         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5889         attribute is used for nested functions.
5890
5891 2008-04-05  Jan Hubicka  <jh@suse.cz>
5892
5893         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5894
5895         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5896         letter argument.
5897         (dump_files): Update.
5898         (enable_rtl_dump_file): Do not accept letter argument.
5899         * tree-pass.h (dump_file_info): Remove letter argument.
5900         * toplev.c (decode_d_option): Update -da handling.
5901         * toplev.h (enable_rtl_dump_file): Update prototype.
5902         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5903         it out based on pass type.
5904         (register_dump_files_1): Likewise.
5905         (init_optimization_passes): Update register_one_dump_file calls.
5906         (execute_one_pass): Sanity check that IPA passes are called at IPA
5907         level and RTL passes at RTL level.
5908         (execute_pass_list): IPA pass can not be after or subpass of
5909         GIMPLE/RTL pass.
5910         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5911         disallov RTL subpasses of IPA subpasses.
5912
5913 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5914
5915         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5916         builtins that return exactly once and do not throw. Cache call to
5917         call_expr_flags.
5918
5919 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5920
5921         PR rtl-optimization/34916
5922         PR middle-end/35519
5923         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5924         between instruction pairs.
5925
5926 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5927
5928         * doc/invoke.texi: Document -mbitops for SH.
5929         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5930         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5931         * config/sh/sh.c (print_operand): Add %t operand code.
5932         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5933         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5934         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5935         (extendqihi2): Likewise.
5936         (movqi_i): Likewise.
5937         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5938         (extv): Use bld instruction for SH2A if possible.
5939         (extzv): Likewise.
5940         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5941         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5942         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5943         (bset.b, bclr.b): Define peepholes.
5944         * config/sh/sh.opt (mbitops): New option.
5945
5946 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5947
5948         PR target/35620
5949         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5950         and view convert expression.
5951
5952 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5953
5954         PR target/35364
5955         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5956
5957 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5958
5959         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5960
5961         * config/i386/cpuid.h (bit_AES): New.
5962         (bit_PCLMUL): Likewise.
5963
5964         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5965         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5966         SSE2 if AES or PCLMUL is enabled.
5967         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5968         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5969         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5970         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5971         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5972         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5973         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5974         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5975         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5976         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5977         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5978         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5979         __builtin_ia32_aeskeygenassist128 and
5980         __builtin_ia32_pclmulqdq128.
5981         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5982         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5983         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5984
5985         * config/i386/i386.h (TARGET_AES): New.
5986         (TARGET_PCLMUL): Likewise.
5987         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5988
5989         * config/i386/i386.md (UNSPEC_AESENC): New.
5990         (UNSPEC_AESENCLAST): Likewise.
5991         (UNSPEC_AESDEC): Likewise.
5992         (UNSPEC_AESDECLAST): Likewise.
5993         (UNSPEC_AESIMC): Likewise.
5994         (UNSPEC_AESKEYGENASSIST): Likewise.
5995         (UNSPEC_PCLMUL): Likewise.
5996
5997         * config/i386/i386.opt (maes): New.
5998         (mpclmul): Likewise.
5999
6000         * config/i386/sse.md (aesenc): New pattern.
6001         (aesenclast): Likewise.
6002         (aesdec): Likewise.
6003         (aesdeclast): Likewise.
6004         (aesimc): Likewise.
6005         (aeskeygenassist): Likewise.
6006         (pclmulqdq): Likewise.
6007
6008         * config/i386/wmmintrin.h: New.
6009
6010         * doc/extend.texi: Document AES and PCLMUL built-in function.
6011
6012         * doc/invoke.texi: Document -maes and -mpclmul.
6013
6014 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6015
6016         * function.c (free_after_parsing): Replace with
6017         cxx_push_function_context from C++ front-end.
6018         (allocate_struct_function): Don't call langhook.
6019         * langhooks.h (struct lang_hooks_for_functions): Delete.
6020         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6021         member "function".
6022         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6023         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6024         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6025         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6026         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6027         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6028         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6029
6030         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6031         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6032         
6033 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6034
6035         PR c/35440
6036         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6037         for all types.
6038
6039 2008-04-04  Richard Guenther  <rguenther@suse.de>
6040
6041         PR middle-end/35823
6042         * fold-const.c (optimize_minmax_comparison): Use the correct
6043         type for the constant in the simplified comparison.
6044
6045 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6046
6047         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6048         Pass L2 size as "--param l2-cache-size" to the compiler.
6049         (decode_l2_cache): New function to decode L2 cache parameters using
6050         0x8000006 extended cpuid function.
6051         (detect_caches_amd): Determine parameters of L2 cache using
6052         decode_l2_caches function.
6053         (decode_caches_intel): Decode L2 cache parameters.
6054         (detect_caches_intel): Determine L2 cache parameters using
6055         decode_caches_intel and decode_l2_caches functions.
6056
6057 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6058
6059         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6060         secondary input reload for subword loads from the constant pool.
6061
6062 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6063
6064         PR target/35713
6065         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6066           constants of the appropriate size for runtime calculations.
6067
6068         PR c/35712
6069         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6070           decimal-float literal constant zero.
6071
6072 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6073
6074         PR c/35738
6075         * c-parser.c (c_parser_omp_atomic): Call
6076         default_function_array_conversion on the RHS.
6077
6078         PR middle-end/35818
6079         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6080         call is_variable_sized if decl has incomplete type.
6081
6082 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6083
6084         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6085
6086 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6087
6088         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6089         iterators.
6090         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6091         (sgt<u>): Merge sgt and sgtu into new expander.
6092         (sgt, sgtu): Remove expanders.
6093         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6094         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6095         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6096         *sgtu_<mode>_mips16 into new pattern.
6097         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6098         (sge<u>): Merge sge and sgeu into new expander.
6099         (sge, sgeu): Remove expanders.
6100         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6101         new pattern.
6102         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6103         (slt<u>): Merge slt and sltu into new expander.
6104         (slt, sltu): Remove expanders.
6105         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6106         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6107         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6108         *sltu_<mode>_mips16 into new pattern.
6109         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6110         (sle<u>): Merge sle and sleu into new expander.
6111         (sle, sleu): Remove expanders.
6112         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6113         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6114         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6115         *sleu_<mode>_mips16 into new pattern.
6116         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6117
6118 2008-04-03  Jan Hubicka  <jh@suse.cz>
6119
6120         PR tree-optimization/35795
6121         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6122         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6123         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6124         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6125         * score/score3.c (score3_output_mi_thunk): Likewise.
6126         * score/score7.c (score7_output_mi_thunk): Likewise.
6127         * mips/mips.c (mips_output_mi_thunk): Likewise.
6128
6129 2008-04-03  Richard Guenther  <rguenther@suse.de>
6130
6131         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6132         conversions.  Simplify code.
6133
6134 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6135
6136         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6137
6138 2008-04-03  Tom Tromey  <tromey@redhat.com>
6139             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6140
6141         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6142         * config/bfin/t-bfin-linux (generated_files): Add
6143         linux-sysroot-suffix.h.
6144         * doc/install.texi (Prerequisites): Require make 3.80.
6145         * doc/sourcebuild.texi (Front End Directory): Document new
6146         variable.
6147         * Makefile.in (generated_files): New variable.
6148         (ALL_HOST_OBJS): New variable.
6149         ($(ALL_HOST_OBJS)): New target.
6150
6151 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6152
6153         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6154         (remap_block): Call id->transform_lang_insert_block instead
6155         of langhook.
6156         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6157         Set id.transform_lang_insert_block to NULL.
6158         (clone_body): Move to cp/optimize.c
6159         * tree-inline.h (struct copy_body_data): Change
6160         transform_lang_insert_block to function pointer.
6161         (copy_generic_body, copy_decl_no_change): Export.
6162         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6163         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6164         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6165
6166         * c-tree.h (insert_block): Kill.
6167         * c-decl.c (insert_block): Kill.
6168
6169 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6170
6171         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6172         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6173         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6174         argument.
6175         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6176         argument, call {push,pop}_function_context from here.
6177         * c-parser.c: Use c_{push,pop}_function_context.
6178
6179         * function.c (push_function_context_to): Move meat ...
6180         (push_function_context): ... here.  Simplify.
6181         * function.c (pop_function_context_from): Move meat ...
6182         (pop_function_context): ... here.  Simplify.
6183         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6184         leave_nested).
6185         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6186         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6187         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6188         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6189
6190 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6191
6192         * expmed.c (extract_force_align_mem_bit_field): Remove.
6193
6194 2008-04-03  Richard Guenther  <rguenther@suse.de>
6195
6196         PR middle-end/35800
6197         * expr.h (try_casesi): Adjust prototype.
6198         * expr.c (try_casesi): Take fallback label as extra parameter.
6199         Use that for gen_casesi if default_label is NULL.
6200         * stmt.c (expand_case): Pass fallback label to try_casesi,
6201         make sure to fill gaps with a fallback label if default_label
6202         is not present.
6203
6204 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6205
6206         PR target/35801
6207         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6208
6209 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6210
6211         * expmed.c (extract_split_bit_field): Remove if (0) code.
6212         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6213         (do_ds_constraint): Likewise.
6214
6215 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6216
6217         * doc/cppopts.texi (-dU): Document.
6218         * c-common.h (flag_dump_macros): Update comment.
6219         * c-opts.c (handle_OPT_d): Handle -dU.
6220         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6221         dump_queued_macros, cb_used_define, cb_used_undef): New.
6222         (init_pp_output): Handle -dU.
6223         (cb_line_change): Call dump_queued_macros.
6224         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6225
6226 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6227
6228         * config/avr/predicates.md (io_address_operand): New predicate. 
6229         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6230         * config/avr/avr.c (avr_io_address_p): Remove function.
6231         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6232         'avr_io_address_p' function.
6233         (out_movhi_r_mr): (Ditto.).
6234         (out_movqi_mr_r): (Ditto.).
6235         (out_movhi_mr_r): (Ditto.).
6236         (avr_address_cost): (Ditto.).
6237
6238 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6239
6240         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6241         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6242         in 32bit mode when XMM registers are available to avoid store
6243         forwarding stalls.
6244         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6245         corresponding post-reload splitters.
6246
6247 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6248
6249         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6250         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6251         __builtin_ia32_roundss.
6252         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6253         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6254         __builtin_ia32_roundss.
6255         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6256         IX86_BUILTIN_SHUFPD here.
6257
6258 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6259
6260         * config/i386/i386.md (plogic): New.
6261         (plogicprefix): Likewise.
6262
6263         * config/i386/mmx.md (mmx_<code><mode>3): New.
6264         (mmx_and<mode>3): Removed.
6265         (mmx_ior<mode>3): Likewise.
6266         (mmx_xor<mode>3): Likewise.
6267
6268         * config/i386/sse.md (<code><mode>3): New.
6269         (*<code><mode>3): Likewise.
6270         (*<code><mode>3): Likewise.
6271         (<code><mode>3): Likewise.
6272         (*sse_<code><mode>3): Likewise.
6273         (*sse2_<code><mode>3): Likewise.
6274         (<code>tf3): Likewise.
6275         (*<code>tf3): Likewise.
6276         (and<mode>3): Likewise.
6277         (*and<mode>3): Likewise.
6278         (ior<mode>3): Removed.
6279         (*ior<mode>3): Likewise.
6280         (xor<mode>3): Likewise.
6281         (*xor<mode>3): Likewise.
6282         (*and<mode>3): Likewise.
6283         (*ior<mode>3): Likewise.
6284         (*xor<mode>3): Likewise.
6285         (and<mode>3): Likewise.
6286         (*sse_and<mode>3): Likewise.
6287         (*sse2_and<mode>3): Likewise.
6288         (andtf3): Likewise.
6289         (*andtf3): Likewise.
6290         (ior<mode>3): Likewise.
6291         (*sse_ior<mode>3): Likewise.
6292         (*sse2_ior<mode>3): Likewise.
6293         (iortf3): Likewise.
6294         (*iortf3): Likewise.
6295         (xor<mode>3): Likewise.
6296         (*sse_xor<mode>3): Likewise.
6297         (*sse2_xor<mode>3): Likewise.
6298         (xortf3): Likewise.
6299         (*xortf3): Likewise.
6300
6301 2008-04-02  Richard Guenther  <rguenther@suse.de>
6302
6303         PR tree-optimization/14495
6304         PR tree-optimization/34793
6305         * tree-vrp.c (struct switch_update): New structure.
6306         (to_remove_edges, to_update_switch_stmts): New VECs.
6307         (simplify_switch_using_ranges): New function.  Remove not taken
6308         case labels and edges.
6309         (simplify_stmt_using_ranges): Call it.
6310         (identify_jump_threads): Mark edges we have queued for removal
6311         so we don't thread them.
6312         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6313         case label vector.
6314         * tree-cfg.c (group_case_labels): Deal with missing default label.
6315         (tree_verify_flow_info): Allow missing default label.
6316         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6317         (emit_case_nodes): Likewise.
6318         (expand_case): Do not rely on the default label to be present.
6319         * expr.c (try_casesi): Deal with NULL default_label.
6320         (do_tablejump): Likewise.
6321
6322 2008-04-02  Richard Guenther  <rguenther@suse.de>
6323
6324         PR tree-optimization/14495
6325         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6326         SWITCH_EXPR here ...
6327         (vrp_visit_switch_stmt): ... but here (new function).
6328         (find_case_label_index): New helper function.
6329         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6330
6331 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6332
6333         * fwprop.c: Fix ISO-C99ism.
6334
6335 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6336
6337         PR bootstrap/35752
6338         * Makefile.in (objdir): Set it here.
6339         * configure.ac: Not here.  Find dynamic linker characteristics.
6340         * exec-tool.in: Use them.
6341         * aclocal.m4: Regenerate.
6342         * configure: Regenerate.
6343
6344 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6345
6346         * expr.c (expand_var): Delete it.
6347         * expr.h (expand_var): Delete prototype.
6348         * function.c (expand_function_start): Use expand_decl instead.
6349         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6350         langhook.
6351
6352 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6353
6354         PR rtl-optimization/35542
6355         * fwprop.c (forward_propagate_and_simplify): Replace
6356         loc_reg_mentioned_in_p with reg_mentioned_p.
6357
6358 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6359
6360         PR rtl-optimization/35281
6361         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6362         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6363         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6364         (varying_mem_p): Move above propagate_rtx.
6365         (all_uses_available_at): Do not check MEMs.
6366
6367 2008-04-02  Rafael Espindola  <espindola@google.com>
6368
6369         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6370         (register_edge_assert_for_2): Split the cond argument.
6371         (register_edge_assert_for_1): Adjust for the change in
6372         register_edge_assert_for_2.
6373         (register_edge_assert_for): Split the cond argument.
6374         (find_switch_asserts): Adjust for the change in
6375         register_edge_assert_for.
6376
6377 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6378
6379         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6380         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6381         offsets for 64-bit mingw.
6382         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6383         abi for x86_64-pc-mingw.
6384
6385 2008-04-02  Richard Guenther  <rguenther@suse.de>
6386
6387         * tree-vrp.c (extract_range_from_assert): Make sure to not
6388         produce range min/max with TREE_OVERFOW set.
6389         If merging a anti-range and a range keep the anti-range if
6390         the range covers all values of the type.
6391         (register_edge_assert_for_2): Only allow sign-changing
6392         conversions in detecting canonical range checks.  Also
6393         register an assert for the unsigned name if useful.
6394
6395         PR tree-optimization/35787
6396         * tree-vrp.c (vrp_val_max): New function.
6397         (vrp_val_min): Likewise.
6398         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6399         (vrp_val_is_min): Likewise.
6400         (supports_overflow_infinity): Use vrp_val_{min,max}.
6401         (negative_overflow_infinity): Likewise.
6402         (positive_overflow_infinity): Likewise.
6403         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6404         (is_positive_overflow_infinity): Likewise.
6405         (is_overflow_infinity): Likewise.
6406         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6407         vrp_val_is_{min,max}.
6408         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6409         to ranges if possible.  Avoid empty ranges.
6410
6411 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6412
6413         PR middle-end/35705
6414         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6415         the expression is a function address.
6416
6417 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6418
6419         PR fortran/35154, fortran/23057
6420         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6421         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6422         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6423         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6424         in common.
6425         (dbxout_syms): Check for COMMON-based symbol and wrap in
6426         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6427         in bracket for efficiency.
6428
6429         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6430         using DW_TAG_common_block + member offset.
6431         (add_pubname_string): New function.
6432         (dw_expand_expr): New function to find block name and offset for
6433         COMMON var.
6434         (common_check): New function to check whether symbol in Fortran COMMON.
6435         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6436
6437 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6438
6439         PR c/35436
6440         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6441
6442 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6443
6444         * config/v850/v850.md (casesi): Remove if (0) code.
6445         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6446         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6447
6448 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6449
6450         * config/i386/i386.md (rex64suffix): New mode attribute.
6451         (floathi<mode>2): Disable expander for SSE math.
6452         (*floathi<mode>2_1): New insn insn_and_split pattern.
6453         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6454         corresponding post-reload splitters.
6455         (*floathi<mode>2_i387): New macroized insn pattern.
6456         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6457         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6458         insn_and_split pattern.
6459         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6460         New macroized instruction patterns and corresponding post-reload
6461         splitters.
6462         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6463         and corresponding post-reload splitters.
6464         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6465         New macroized instruction patterns.
6466         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6467         macroized instruction patterns and corresponding post-reload splitters.
6468         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6469         corresponding post-reload splitters.
6470         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6471         New macroized instruction patterns.
6472         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6473         corresponding post-reload splitters.
6474         (*floatsi<mode>2_i387): New macroized instruction patterns.
6475
6476 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6477
6478         * config/i386/i386.md (smaxmin): New.
6479         (umaxmin): Likewise.
6480         (maxminiprefix): Likewise.
6481         (maxminfprefix): Likewise.
6482         (<code><mode>3): Likewise.
6483         (smin<mode>3): Removed.
6484         (smax<mode>3): Likewise.
6485
6486         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6487         (mmx_<code>v4hi3): Likewise.
6488         (mmx_<code>v8qi3): Likewise.
6489         (mmx_smaxv2sf3): Removed.
6490         (mmx_sminv2sf3): Likewise.
6491         (mmx_umaxv8qi3): Likewise.
6492         (mmx_smaxv4hi3): Likewise.
6493         (mmx_uminv8qi3): Likewise.
6494         (mmx_sminv4hi3): Likewise.
6495
6496         * config/i386/sse.md (<addsub><mode>3): New.
6497         (*<addsub><mode>3): Likewise.
6498         (<sse>_vm<addsub><mode>3): Likewise.
6499         (<maxmin><mode>3): Likewise.
6500         (*<maxmin><mode>3_finite): Likewise.
6501         (*<maxmin><mode>3): Likewise.
6502         (<sse>_vm<maxmin><mode>3): Likewise.
6503         (sse3_h<addsub>v4sf3): Likewise.
6504         (sse3_h<addsub>v2df3): Likewise.
6505         (<maxmin>v16qi3): Likewise.
6506         (*<maxmin>v16qi3): Likewise.
6507         (<maxmin>v8hi3): Likewise.
6508         (*<maxmin>v8hi3): Likewise.
6509         (*sse4_1_<maxmin><mode>3): Likewise.
6510         (*sse4_1_<maxmin><mode>3): Likewise.
6511         (add<mode>3): Removed.
6512         (*add<mode>3): Likewise.
6513         (<sse>_vmadd<mode>3): Likewise.
6514         (sub<mode>3): Likewise.
6515         (*sub<mode>3): Likewise.
6516         (<sse>_vmsub<mode>3): Likewise.
6517         (smin<mode>3): Likewise.
6518         (*smin<mode>3_finite): Likewise.
6519         (*smin<mode>3): Likewise.
6520         (<sse>_vmsmin<mode>3): Likewise.
6521         (smax<mode>3): Likewise.
6522         (*smax<mode>3_finite): Likewise.
6523         (*smax<mode>3): Likewise.
6524         (<sse>_vmsmax<mode>3): Likewise.
6525         (sse3_haddv4sf3): Likewise.
6526         (sse3_haddv2df3): Likewise.
6527         (sse3_hsubv4sf3): Likewise.
6528         (sse3_hsubv2df3): Likewise.
6529         (umaxv16qi3): Likewise.
6530         (*umaxv16qi3): Likewise.
6531         (smaxv8hi3): Likewise.
6532         (*smaxv8hi3): Likewise.
6533         (*sse4_1_smax<mode>3): Likewise.
6534         (*sse4_1_umax<mode>3): Likewise.
6535         (uminv16qi3): Likewise.
6536         (*uminv16qi3): Likewise.
6537         (sminv8hi3): Likewise.
6538         (*sminv8hi3): Likewise.
6539         (*sse4_1_smin<mode>3): Likewise.
6540         (*sse4_1_umin<mode>3): Likewise.
6541
6542 2008-04-01  Rafael Espindola  <espindola@google.com>
6543
6544         * tree-cfg.c (verify_expr): remove in_phi.
6545         (verify_stmt): Don't call walk_tree with verify_expr. Use
6546         is_gimple_min_invariant instead of is_gimple_val.
6547
6548 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6549
6550         * doc/include/gpl_v3.texi: Update for manpage generation.
6551         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6552         gpl.texi.
6553         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6554         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6555         gpl_v3.texi instead of gpl.texi.
6556         (gpl.pod): New.
6557
6558 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6559
6560         PR pch/13675
6561         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6562
6563 2008-04-01  Rafael Espindola  <espindola@google.com>
6564
6565         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6566         (extract_code_and_val_from_cond): Use
6567         extract_code_and_val_from_cond_with_ops.
6568
6569 2008-04-01  Jan Hubicka  <jh@suse.cz>
6570
6571         * function.c (free_after_compilation): Free epilogue_delay_list.
6572         (prepare_function_start): Assert that previous compilation was freed.
6573
6574 2008-04-01  Jan Hubicka  <jh@suse.cz>
6575             Jim Wilson  <wilson@tuliptree.org>
6576             Andreas Tobler <andreast@gcc.gnu.org>
6577
6578         PR middle-end/35781
6579         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6580         rtl.emit instead cfun->emit.
6581         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6582         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6583
6584 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6585
6586         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6587
6588 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6589
6590         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6591         New options
6592         (fprofile-use): Add var flag_profile_use
6593         * coverage.c (coverage_begin_output): Do not open a gcno file for
6594         output only if -ftest-coverage is set.
6595         Do not add getpwd() to gcda file path.
6596         (build_gcov_info): Check the new flag
6597         flag_profile_datafile_relative_path.
6598         (coverage_init): Use profile_data_prefix.
6599         Read profile counter only if flag_profile_use is set.
6600         * opts.c (common_handle_option): New option fprofile-use=,
6601         fprofile-dir=, fprofile-generate=.
6602         * toplev.c (profile_data_prefix): New variable definition.
6603         * toplev.h (profile_data_prefix): New declaration.
6604         * doc/invoke.tex (Option Summary, Optimization Options):
6605         Add new options.
6606
6607 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6608
6609         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6610         use tmp consistently.
6611
6612         PR target/35695
6613         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6614         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6615         UNSPEC_FR_RECIP_APPROX_RES.
6616         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6617
6618 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6619
6620         PR c/35750
6621         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6622
6623 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6624
6625         PR middle-end/30186
6626         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6627         element of the vector via a pointer.
6628
6629 2008-03-31  Ian Lance Taylor  <iant@google.com>
6630
6631         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6632
6633 2008-03-31  Jan Hubicka  <jh@suse.cz>
6634
6635         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6636         get_arg_pointer_save_area.
6637         * expr.c (init_expr): Just clear out rtl.expr.
6638         * function.c (free_after_compilation): Clear out whole RTL structure.
6639         (get_func_frame_size): Merge into ...
6640         (get_frame_size): ... this one.
6641         (assign_stack_local_1): Merge into ...
6642         (assign_stack_local): ... this one.
6643         (expand_function_end): Update call of get_arg_pointer_save_area.
6644         (get_art_pointer_save_area): Remove cfun argument.
6645         * function.h (emit_status): regno_pointer_align does not need length
6646         attribute. Move x_regno_reg_rtx to ...
6647         (regno_reg_rtx): ... new global array.
6648         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6649         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6650         apply_args_value, forced_labels, stack_pointer_delta):
6651         Update accestors.
6652         (struct varasm_status): Move here from varasm.c
6653         (struct rtl_data): New. Move here some fields from struct function.
6654         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6655         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6656         used_temp_slots avail_temp_slots, temp_slot_level,
6657         nonlocal_goto_handler_labels): Update accesstors.
6658         (rtl): New global variable.
6659         (struct function): Move some fileds to rtl_data.
6660         (get_arg_pointer_save_area): Update prototype.
6661         * emit-rtl.c (rtl): Declare.
6662         (regno_reg_rtx): Declare.
6663         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6664         Update.
6665         (gen_reg_rtx): Update.
6666         (init_virtual_regs): Do not tate emit_status argument.
6667         (init_emit): Do not allocate emit.
6668         * varasm.c (varasm_statuc): Move to function.h.
6669         (n_deferred_constatns): Update accestor.
6670         (init_varasm_status): Do not allocate varasm_status.
6671         (force_const_mem, get_pool_size, output_constant_pool): Update.
6672         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6673         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6674
6675 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6676
6677         PR rtl-optimization/35729
6678         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6679         references.
6680
6681 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6682
6683         PR target/32000
6684         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6685         load/store if memory is unaligned.
6686         (*movti_rex64): Likewise.
6687
6688         * config/i386/predicates.md (misaligned_operand): New.
6689
6690 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6691
6692         PR tree-opt/35431
6693         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6694         complex types.
6695
6696 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6697
6698         * config/ia64/constraints.md: Add 'j' constraint.
6699         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6700         (movdi_internal): Likewise.
6701
6702 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6703
6704         PR c/35748
6705         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6706
6707 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6708
6709         PR target/35757
6710         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6711         proper error message for the third argument on blendpd and
6712         blendps.
6713
6714         * config/i386/sse.md (blendbits): New.
6715         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6716
6717 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6718
6719         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6720
6721 2008-03-30  Richard Guenther  <rguenther@suse.de>
6722
6723         PR middle-end/31023
6724         * fold-const.c (fold_sign_changed_comparison): Do leave
6725         conversions to base-types alone.
6726
6727 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6728
6729         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6730         the link register if one altivec register is be saved.
6731
6732 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6733
6734         * final.c (final_scan_insn): Remove if (0) code.
6735
6736 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6737
6738         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6739
6740 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6741
6742         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6743         of V4SFmode to ix86_binary_operator_ok.
6744
6745 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6746
6747         * config/i386/i386.c (override_options): Initialize
6748         ix86_veclib_handler to ix86_veclibabi_svml when
6749         -mveclibabi=svml is used.
6750         (ix86_veclibabi_svml): New function for SVML ABI style
6751         vectorization support.
6752         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6753
6754 2008-03-28  Rafael Espindola  <espindola@google.com>
6755
6756         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6757         (tree_binary_nonnegative_warnv_p): Make it public.
6758         (tree_single_nonnegative_warnv_p): Make it public.
6759         (tree_invalid_nonnegative_warnv_p): Make it public.
6760         (tree_unary_nonzero_warnv_p): Make it public.
6761         (tree_binary_nonzero_warnv_p): Make it public
6762         (tree_single_nonzero_warnv_p): Make it public.
6763         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6764         (extract_range_from_binary_expr): Split the expr argument.
6765         (extract_range_from_unary_expr): Split the expr argument.
6766         (extract_range_from_comparison): Split the expr argument.
6767         (extract_range_from_expr): Use the new aux functions.
6768         (vrp_evaluate_conditional_warnv): Use
6769         vrp_evaluate_conditional_warnv_with_ops.
6770         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6771         (tree_binary_nonzero_warnv_p): Declare.
6772         (tree_single_nonzero_warnv_p): Declare.
6773         (tree_expr_nonzero_warnv_p): Declare.
6774         (tree_unary_nonnegative_warnv_p): Declare.
6775         (tree_binary_nonnegative_warnv_p): Declare.
6776         (tree_single_nonnegative_warnv_p): Declare.
6777         (tree_invalid_nonnegative_warnv_p): Declare.
6778
6779 2008-03-28  Richard Guenther  <rguenther@suse.de>
6780
6781         PR tree-optimization/30317
6782         PR tree-optimization/30911
6783         PR tree-optimization/34793
6784         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6785         (struct assert_locus_d): New member EXPR.
6786         (register_new_assert_for): Add EXPR parameter to support
6787         ASSERT_EXPR <name, expr OP limit>.
6788         (register_edge_assert_for_1): Adjust callers.
6789         (find_assert_locations): Likewise.
6790         (process_assert_insertions_for): Build condition from expression.
6791         (extract_range_from_assert): Handle ASSERT_EXPRs
6792         of the form ASSERT_EXPR <name, expr OP limit>.
6793         (register_edge_assert_for_2): New helper registering
6794         asserts for comparisons.  Recognize range tests of the form
6795         (unsigned)i - CST1 OP CST2.
6796         (register_edge_assert_for_1): Use it.
6797         (register_edge_assert_for): Likewise.
6798         (needs_overflow_infinity): Integer sub-types
6799         do not need overflow infinities.
6800         (vrp_val_is_max): The extreme values of integer sub-types
6801         are those of the base type.
6802         (vrp_val_is_min): Likewise.
6803         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6804         expressions.
6805
6806 2008-03-28  Nick Clifton  <nickc@redhat.com>
6807
6808         PR target/31110
6809         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6810         Return GENERAL_REGS for stack adjustment reloads.
6811
6812 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6813
6814         PR target/31334
6815         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6816         const_vector when all the vectors are constant.
6817
6818 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6819
6820         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6821         comparisons.
6822         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6823         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6824         (scc_sf): New.
6825         (s<code>_sf): Use new scc_sf attribute for opcode names.
6826
6827 2008-03-27  Tom Tromey  <tromey@redhat.com>
6828
6829         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6830         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6831         config/spu/t-spu-elf, config/i386/t-interix,
6832         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6833         config/i386/x-darwin, config/i386/x-mingw32,
6834         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6835         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6836         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6837         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6838         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6839         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6840         config/score/t-score-elf, config/arm/t-strongarm-pe,
6841         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6842         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6843         Revert automatic dependency patch.
6844
6845 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6846
6847         PR target/35657
6848         * config/i386/i386.c (ix86_function_arg_boundary): Align
6849         decimal floating point to its natural boundary.
6850
6851 2008-03-27  Richard Guenther  <rguenther@suse.de>
6852
6853         PR middle-end/35716
6854         * fold-const.c (fold_comparison): Restrict distinct decl
6855         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6856         solely rely on operand_equal_p.
6857
6858 2008-03-27  Richard Guenther  <rguenther@suse.de>
6859
6860         PR c/32511
6861         * c-common.c (handle_weak_attribute): Reject combination of
6862         weak and inline.
6863
6864 2008-03-27  Richard Guenther  <rguenther@suse.de>
6865
6866         PR tree-optimization/32810
6867         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6868         conversions from DECL_INITIAL.
6869         (fold_const_aggregate_ref): Likewise from constructor elements.
6870
6871 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6872
6873         * tree-affine.h (aff_combination_expand): Declare.
6874         (get_inner_reference_aff): Likewise.
6875         * tree-affine.c (aff_combination_expand): Split out from
6876         tree_to_aff_combination_expand.
6877         (get_inner_reference_aff): New function.
6878         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6879         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6880         (struct lim_aux_data): sm_done field removed.
6881         (mem_ref_loc_p, mem_ref_locs_p): New types.
6882         (struct mem_ref): Added id, stored, accesses_in_loop,
6883         indep_loop, dep_loop, indep_ref, dep_ref fields.
6884         Removed is_stored, locs and next fields.
6885         (memory_accesses): New variable.
6886         (movement_possibility): Do not allow moving statements
6887         that store to memory.
6888         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6889         New functions.
6890         (determine_max_movement): For statements with memory references,
6891         find the outermost loop in that the reference is independent.
6892         (move_computations_stmt): Mark the virtual operands for renaming.
6893         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6894         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6895         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6896         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6897         create_vop_ref_mapping, analyze_memory_references,
6898         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6899         get_all_locs_in_loop, ref_always_accessed_p,
6900         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6901         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6902         store_motion_loop, store_motion): New functions.
6903         (struct vop_to_refs_elt): New type.
6904         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6905         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6906         (schedule_sm): Replaced by...
6907         (execute_sm): ... this.
6908         (determine_lsm_ref, hoist_memory_references,
6909         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6910         find_more_ref_vops, free_mem_ref, free_mem_refs,
6911         determine_lsm_loop, determine_lsm): Removed.
6912         (tree_ssa_lim_finalize): Free data structures used by store motion.
6913         (tree_ssa_lim): Call analyze_memory_references.  Use
6914         store_motion instead of determine_lsm.
6915
6916 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6917
6918         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6919         rename tmake_file to m68hc11/t-m68hc11.
6920         (mcore): Set inhibit_libc to true.
6921         * config.host (alpha*-dec-*vms*): Set extra_programs.
6922         (interix3*): Don't use host_xmake_file.
6923         * configure.ac: Let config.gcc override inhibit_libc.
6924         * configure: Regenerate.
6925
6926         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6927         * config/t-openbsd-thread: Remove commented out lines.
6928         
6929         * config/x-interix: Remove.
6930
6931         * config/m68hc11/t-m68hc11-gas: Rename to...
6932         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6933
6934         * config/mcore/t-mcore: Remove T_CFLAGS.
6935         * config/mcore/t-mcore-pe: Likewise.
6936
6937 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6938
6939         * configure.ac: Replace custom __GNU_SOURCE test with
6940         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6941         * aclocal.m4: Regenerate.
6942         * configure: Regenerate.
6943         * config.in: Regenerate.
6944
6945 2008-03-27  Richard Guenther  <rguenther@suse.de>
6946
6947         * fold-const.c (target.h): Include.
6948         (fold_comparison): Fold comparison of addresses of decls
6949         that bind locally or of constants.  Consolidate address folding code.
6950         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6951         results from fold_binary_to_constant.
6952         (compare_values_warnv): Likewise.
6953
6954 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6955
6956         PR middle-end/35429
6957         * fold-const.c (fold_truthop): Check for integeral types when folding
6958         a == 0 && b == 0 and a != 0 || b != 0 .
6959
6960 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6961
6962         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6963
6964 2008-03-26  Andreas Schwab  <schwab@suse.de>
6965
6966         * doc/invoke.texi: Fix use of @item vs. @itemx.
6967
6968 2008-03-26  Tom Tromey  <tromey@redhat.com>
6969
6970         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6971         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6972         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6973         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6974         build/genconstants.o, build/genemit.o, build/genextract.o,
6975         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6976         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6977         options.h.
6978
6979 2008-03-26  Richard Guenther  <rguenther@suse.de>
6980
6981         Revert
6982         2008-03-26  Richard Guenther  <rguenther@suse.de>
6983
6984         * fold-const.c (target.h): Include.
6985         (fold_comparison): Fold comparison of addresses of two decls
6986         that bind locally.  Consolidate address folding code.
6987
6988 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6989
6990         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6991         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6992         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6993         dconstsqrt2, dconstthird, dconste and/or dconst10.
6994         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6995         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6996         dconstsqrt2, dconste): Delete.
6997         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6998         Constify variable.
6999         * real.c (get_real_const): New.
7000         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7001         dconstsqrt2, dconste): Delete.
7002         (real_value_const, get_real_const): New.
7003
7004 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7005
7006         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7007
7008         * config/i386/i386.c (ix86_function_arg_boundary): Check
7009         BIGGEST_ALIGNMENT instead of 128.
7010         (setup_incoming_varargs_64): Likewise.
7011
7012 2008-03-26  Tom Tromey  <tromey@redhat.com>
7013
7014         * Makefile.in (DEPFILES): Add missing '/'.
7015
7016 2008-03-26  Richard Guenther  <rguenther@suse.de>
7017
7018         * fold-const.c (target.h): Include.
7019         (fold_comparison): Fold comparison of addresses of two decls
7020         that bind locally.  Consolidate address folding code.
7021
7022 2008-03-26  Nick Clifton  <nickc@redhat.com>
7023
7024         PR target/31232
7025         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7026         not allow INT+INT as a legitimate addressing mode.
7027
7028 2008-03-26  Richard Guenther  <rguenther@suse.de>
7029
7030         * tree-flow.h (widen_bitfield): Remove declaration.
7031         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7032         (widen_bitfield): Remove function.
7033         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7034         code.
7035
7036 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7037
7038         PR target/31558
7039         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7040         error_mark_node's.
7041
7042 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7043
7044         PR rtl-optimization/35232
7045         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7046         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7047         reg_reloaded_call_part_clobbered here.
7048         (reload_regs_reach_end_p): New function.
7049         (reload_reg_rtx_for_input): New variable.
7050         (reload_reg_rtx_for_output): Likewise.
7051         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7052         when reassigning a pseudo register.  Load reloadreg from 
7053         reload_reg_rtx_for_input, moving the mode and register
7054         calculation to...
7055         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7056         instead of the original when deciding whether an input reload
7057         would be a no-op or whether an output reload can be deleted.
7058         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7059         when setting up new_spill_reg_store.  Load it from
7060         reload_reg_rtx_for_output, moving the mode and register
7061         calculation to...
7062         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7063         instead of the original when deciding whether an output reload
7064         would be a no-op.  Do the same when modifying insn notes.
7065         Use rtx_equal_p instead of == to compare the registers.
7066         (inherit_piecemeal_p): Take a mode and two register numbers
7067         as argument.
7068         (emit_reload_insns): Clear new_spill_reg_store for every hard
7069         register in the reload register.  Remove spill registers
7070         from reg_reloaded_valid before considering whether to record
7071         inheritance information for them.  Use reload_reg_rtx_for_output
7072         instead of reg_rtx when recording output reloads.  Use
7073         reload_reg_rtx_for_input instead of reg_rtx when recording
7074         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7075         at the same time as setting reg_reloaded_valid.
7076         (delete_output_reload): Add a new_reload_reg parameter and use it
7077         instead of rld[j].reg_rtx.
7078         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7079         calls accordingly.
7080
7081 2008-03-25  Tom Tromey  <tromey@redhat.com>
7082
7083         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7084         (build/genattr.o): Likewise.
7085         (build/genattrtab.o): Likewise.
7086         (build/gencodes.o): Likewise.
7087         (build/genconfig.o): Likewise.
7088         (build/genconstants.o): Likewise.
7089         (build/genemit.o): Likewise.
7090         (build/genextract.o): Likewise.
7091         (build/genflags.o): Likewise.
7092
7093 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7094         
7095         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7096         instead of size_int for integer types.
7097         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7098         to match type of MINUS_EXPR.
7099         
7100 2008-03-25  Tom Tromey  <tromey@redhat.com>
7101
7102         * configure: Rebuilt.
7103         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7104         Makefile.
7105
7106 2008-03-25  Tom Tromey  <tromey@redhat.com>
7107
7108         * config/x-solaris (host-solaris.o): Update.
7109         * config/x-linux (host-linux.o): Update.
7110         * config/x-hpux (host-hpux.o): Update.
7111         * config/x-darwin (host-darwin.o): Update.
7112         * config/v850/t-v850e (v850-c.o): Update.
7113         * config/v850/t-v850 (v850-c.o): Update.
7114         * config/t-vxworks (vxworks.o): Update.
7115         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7116         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7117         * config/spu/t-spu-elf (spu-c.o): Update.
7118         (spu.o): Remove.
7119         * config/sh/t-symbian (sh-c.o): Update.
7120         (symbian.o): Update.
7121         * config/sh/t-sh (sh-c.o): Update.
7122         * config/score/t-score-elf (score7.o, score3.o): Update.
7123         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7124         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7125         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7126         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7127         (rs6000.o): Remove.
7128         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7129         * config/m32c/t-m32c (m32c-pragma.o): Update.
7130         * config/ia64/t-ia64 (ia64-c.o): Update.
7131         * config/i386/x-mingw32 (host-mingw32.o): Update.
7132         * config/i386/x-i386 (driver-i386.o): Update.
7133         * config/i386/x-darwin (host-i386-darwin.o): Update.
7134         * config/i386/x-cygwin (host-cygwin.o): Update.
7135         * config/i386/t-nwld (nwld.o): Update.
7136         * config/i386/t-netware (netware.o): Update.
7137         * config/i386/t-interix (winnt.o): Update.
7138         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7139         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7140         msformat-c.o): Update.
7141         * config/bfin/t-bfin-linux (generated_files): Add
7142         linux-sysroot-suffix.h.
7143         * config/arm/t-wince-pe (pe.o): Update.
7144         * config/arm/t-strongarm-pe (pe.o): Update.
7145         * config/arm/t-pe (pe.o): Update.
7146         * config/arm/t-arm (arm-c.o): Update.
7147         * doc/install.texi (Prerequisites): Require make 3.80.
7148         * Makefile.in: Remove .o targets.
7149         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7150         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7151         (simple_generated_h, simple_generated_c): Move earlier.
7152         (generated_files): New variable.
7153         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7154         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7155         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7156         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7157         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7158         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7159         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7160         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7161         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7162         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7163         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7164         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7165         (.c.o): Remove.
7166         (COMPILE.base, COMPILE): New variables.
7167         (%.o): New pattern rule.
7168         (ALL_HOST_OBJS): New variable.
7169         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7170         (dummy-checksum.o, cc1-checksum.o): Remove.
7171         (DRIVER_SHLIB): New variable.
7172         (DRIVER_DEFINES): Use it.
7173         (gencondmd.c): Move out of build/.
7174         (s-conditions): Update.
7175         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7176         (ALL_BUILD_OBJS): Likewise.
7177         (build/%.o): Use BUILDCOMPILE.
7178         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7179         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7180         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7181         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7182         build/genconfig.o, build/genconstants.o, build/genemit.o,
7183         build/genextract.o, build/genflags.o, build/genmddeps.o,
7184         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7185         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7186         build/gen-protos.o, build/scan.o, build/fix-header.o,
7187         build/scan-decls.o): Simplify.
7188         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7189         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7190         prefix.o, toplev.o): Reduce to variable setting.
7191         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7192         ($(out_object_file), gcc-options.o): New targets.
7193         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7194         * configure: Rebuilt.
7195         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7196         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7197
7198 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7199
7200         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7201         complain when we hit an error, return ERROR_MARK_NODE.
7202
7203 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7204
7205         * config/sh/constraints.md (Pso, Psz): New constraints.
7206         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7207         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7208
7209 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7210
7211         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7212         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7213
7214 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7215
7216         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7217         (prefetch_sh2a): New.   
7218
7219 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7220             Naveen.H.S  <naveen.hs@kpitcummins.com>
7221
7222         * config/sh/constraints.md (I28): New constraint.
7223         * config/sh/sh.c (broken_move): Add support for movi20s.
7224         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7225
7226 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7227             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7228             Naveen.H.S  <naveen.hs@kpitcummins.com>
7229
7230         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7231         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7232         (print_operand): Handle resbank in %@ operand code.
7233         (sh_encode_section_info): New.
7234         (push_regs): Add conditions for resbank.
7235         (sh_expand_epilogue): Likewise.
7236         (sh_insert_attributes): Likewise.
7237         (sh_attribute_table): Likewise.
7238         (sh_handle_resbank_handler_attribute): New.
7239         (sh2a_handle_function_vector_handler_attribute): New.
7240         (sh2a_is_function_vector_call): New.
7241         (sh2a_get_function_vector_number): New.
7242         (sh2a_function_vector_p): New.
7243         (sh_cfun_resbank_handler_p): New.
7244         * config/sh/sh.md (calli): Emit jsr/n if possible.
7245         (calli_tbr_rel): New.
7246         (calli_pcrel): Emit jsr/n if possible.
7247         (return_i): Emit rts/n if possible.
7248         (call_valuei_tbr_rel): New.
7249         (call_valuei_pcrel): Add condition for SH2A target.
7250         (call_value): Likewise.
7251         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7252         (sh2a_get_function_vector_number): Likewise.
7253         (sh2a_is_function_vector_call): Likewise.
7254         * doc/extend.texi: Document TBR relative addressing of SH2A.
7255         (resbank): Add description for SH2A.
7256
7257 2008-03-24  Richard Guenther  <rguenther@suse.de>
7258
7259         PR c/22371
7260         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7261         pointer assignments change conversions according to middle-end rules.
7262         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7263         * configure.ac: Include type checking in yes.
7264         * configure: Regenerate.
7265
7266 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7267
7268         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7269         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7270         
7271 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7272
7273         * gthr-vxworks.h (UNUSED): Define.
7274
7275 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7276
7277         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7278
7279 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7280
7281         * doc/extend.texi (Function Attributes): Add missing comma in the
7282         example of the "alloc_size" attribute.
7283         
7284 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7285
7286         Revert:
7287         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7288
7289         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7290         32bit host.
7291
7292         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7293
7294         PR target/35496
7295         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7296         of the underlying type of a MS bitfield layout to the natural
7297         alignment of the type.
7298
7299         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7300
7301         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7302         to their natural alignment to avoid store forwarding stalls.
7303
7304 2008-03-22  Richard Guenther  <rguenther@suse.de>
7305
7306         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7307         For PHI nodes verify the address is invariant.
7308         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7309         (get_symbol_constant_value): Use is_gimple_min_invariant.
7310         (maybe_fold_stmt_indirect): Likewise.
7311
7312 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7313
7314         PR rtl-optimization/33927
7315         * Makefile.in (dse.o): Depend on $(TM_P_H).
7316         * expr.h (extract_low_bits): Declare.
7317         * expmed.c (extract_low_bits): New function.
7318         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7319         * dse.c: Include tm_p.h.
7320         (find_shift_sequence): Remove the read_reg argument and return the
7321         read value.  Emit the instructions instead of returning them.
7322         Iterate on new_mode rather than calculating it each time.
7323         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7324         source to NEW_MODE and extract_low_bits to convert the shifted
7325         value to READ_MODE.
7326         (replace_read): Allow the load and store to have different mode
7327         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7328         or extraction instructions before trying the replacement.  Update
7329         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7330
7331 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7332
7333         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7334         to their natural alignment to avoid store forwarding stalls.
7335
7336 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7337
7338         PR target/27946
7339         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7340         encouraging but not allowing gprs for input;
7341         change the input constraint to !f#r.
7342         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7343         gprs for output;
7344         change the output constraint to !f#r.
7345
7346 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7347
7348         PR target/13958
7349         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7350         corresponding post-reload splitters.
7351         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7352         when x87 FP math is selected.
7353         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7354         New function prototype.
7355         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7356         unreachable function to ease macroization of insn patterns.
7357
7358 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7359
7360         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7361         reference dumps if ddr is NULL or dependence is unknown.
7362
7363 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7364
7365         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7366         unsigned extension into account.
7367         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7368         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7369         Do computations on a scratch register.
7370
7371 2008-03-21  Richard Guenther  <rguenther@suse.de>
7372
7373         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7374         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7375         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7376         * tree-ssa-dom.c (record_equality): Likewise.
7377         * tree-inline.c (copy_body_r): Likewise.
7378         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7379         TREE_INVARIANT.
7380
7381 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7382
7383         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7384         as 'delete_unused' argument.
7385
7386 2008-03-20  Richard Guenther  <rguenther@suse.de>
7387
7388         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7389         special casing of constant qualifiers.
7390         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7391         care about them in general.
7392         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7393         regardless of their type.
7394         (fold_stmt_r): Forcefully fold *& if we end up with that.
7395
7396 2008-03-20  Paul Brook  <paul@codesourcery.com>
7397
7398         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7399         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7400         linker flags.
7401         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7402         definition.
7403         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7404         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7405
7406 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7407
7408         * common.opt (Wmudflap): New option.
7409         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7410         (mx_register_decls): Likewise.
7411         (mudflap_finish_file): Likewise.
7412         * doc/invoke.texi: Document -Wno-mudflap.
7413
7414 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7415
7416         * c-format.c (replace_format_name_to_system_name): New.
7417         (cmp_attribs): New.
7418         (convert_format_name_to_system_name): New.
7419         (decode_format_attr): Add use of convert_format_name_to_system_name.
7420         (format_types_orig): Add gnu_ prefix to names.
7421         (check_format_info_main): Special treating of \0 escaped names for
7422         supporting multi-character format specifiers as I32, I64.
7423         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7424         (gnu_target_overrides_format_attributes): New.
7425         * c-format.h: Add structure target_ovr_attr to hold
7426         system specific formatter names.
7427         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7428         msformat-c.o file to c_target_objs and cxx_target_objs.
7429         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7430         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7431         (TARGET_N_FORMAT_TYPES): New.
7432         * config/i386/msformat-c.c: New.
7433         * config/i386/t-cygming: Add build rule for msformat-c.o.
7434         * doc/extend.texi: Add new format names gnu_* and ms_* and
7435         further details.
7436         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7437
7438 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7439
7440         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7441         optimizations turned on under -O3.
7442         (ftree-vectorize): Add that the flag is turned on with -O3.
7443
7444 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7445
7446         * regmove.c (try_auto_increment): Fix spelling error in comment.
7447         * final.c (final_scan_insn): Likewise.
7448
7449 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7450
7451         PR target/14552
7452         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7453         allocator preferences for "y" and "r" class registers.
7454         ("*mov<mode>_internal"): Ditto.
7455         ("*movv2sf_internal_rex64"): Ditto.
7456         ("*movv2sf_internal"): Ditto.
7457
7458 2008-03-19  Michael Matz  <matz@suse.de>
7459
7460         PR middle-end/35616
7461         * calls.c (expand_call): Check overlap of arguments with call
7462         address for sibcalls.
7463
7464 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7465
7466         PR target/35496
7467         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7468         of the underlying type of a MS bitfield layout to the natural
7469         alignment of the type.
7470
7471 2008-03-19  Jan Hubicka  <jh@suse.cz>
7472
7473         PR other/35094
7474         * toplev.c (decode_d_option): Handle all CPP flags.
7475         * tree-vrp.c: Update tree_pass descriptors.
7476         * regrename.c: Update tree_pass descriptors.
7477         * fwprop.c: Update tree_pass descriptors.
7478         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7479         * tree-into-ssa.c: Update tree_pass descriptors.
7480         * tree-dump.c: Update tree_pass descriptors.
7481         * tree-complex.c: Update tree_pass descriptors.
7482         * tree-dump.h: Update tree_pass descriptors.
7483         * see.c: Update tree_pass descriptors.
7484         * cgraphbuild.c: Update tree_pass descriptors.
7485         * tracer.c: Update tree_pass descriptors.
7486         * tree-loop-distribution.c: Update tree_pass descriptors.
7487         * cgraph.c: Update tree_pass descriptors.
7488         * postreload-gcse.c: Update tree_pass descriptors.
7489         * postreload.c: Update tree_pass descriptors.
7490         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7491         * tree-tailcall.c: Update tree_pass descriptors.
7492         * tree-pass.h (tree_opt_pass): Rename to ...
7493         (opt_pass) ... this one; add "type" field and remove letter field.
7494         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7495         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7496         all_lowering_passes): Update declaration.
7497         * ipa-cp.c: Update tree_pass descriptors.
7498         * final.c: Update tree_pass descriptors.
7499         * omp-low.c: Update tree_pass descriptors.
7500         * tree-ssa-dse.c: Update tree_pass descriptors.
7501         * ipa-reference.c: Update tree_pass descriptors.
7502         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7503         * auto-inc-dec.c: Update tree_pass descriptors.
7504         * reorg.c: Update tree_pass descriptors.
7505         * cgraphunit.c: Update tree_pass descriptors.
7506         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7507         * tree-ssa-ccp.c: Update tree_pass descriptors.
7508         * df-core.c: Update tree_pass descriptors.
7509         * mode-switching.c: Update tree_pass descriptors.
7510         * tree-nomudflap.c: Update tree_pass descriptors.
7511         * modulo-sched.c: Update tree_pass descriptors.
7512         * ipa-pure-const.c: Update tree_pass descriptors.
7513         * cse.c: Update tree_pass descriptors.
7514         * web.c: Update tree_pass descriptors.
7515         * tree-stdarg.c: Update tree_pass descriptors.
7516         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7517         * tree-ssa-dom.c: Update tree_pass descriptors.
7518         * tree-nrv.c: Update tree_pass descriptors.
7519         * tree-ssa-alias.c: Update tree_pass descriptors.
7520         * loop-init.c: Update tree_pass descriptors.
7521         * gimple-low.c: Update tree_pass descriptors.
7522         * ipa-inline.c: Update tree_pass descriptors.
7523         * tree-ssa-sink.c: Update tree_pass descriptors.
7524         * global.c: Update tree_pass descriptors.
7525         * ifcvt.c: Update tree_pass descriptors.
7526         * jump.c: Update tree_pass descriptors.
7527         * predict.c: Update tree_pass descriptors.
7528         * tree-ssa-loop.c: Update tree_pass descriptors.
7529         * recog.c: Update tree_pass descriptors.
7530         * dse.c: Update tree_pass descriptors.
7531         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7532         * tree-eh.c: Update tree_pass descriptors.
7533         * regmove.c: Update tree_pass descriptors.
7534         * local-alloc.c
7535         * function.c: Update tree_pass descriptors.
7536         * tree-vectorizer.c: Update tree_pass descriptors.
7537         * gcse.c: Update tree_pass descriptors.
7538         * ipa-type-escape.c: Update tree_pass descriptors.
7539         * tree-if-conv.c: Update tree_pass descriptors.
7540         * init-regs.c: Update tree_pass descriptors.
7541         * ipa.c: Update tree_pass descriptors.
7542         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7543         * rtl-factoring.c: Update tree_pass descriptors.
7544         * lower-subreg.c: Update tree_pass descriptors.
7545         * bt-load.c: Update tree_pass descriptors.
7546         * tree-dfa.c: Update tree_pass descriptors.
7547         * except.c: Update tree_pass descriptors.
7548         * emit-rtl.c: Update tree_pass descriptors.
7549         * cfgexpand.c: Update tree_pass descriptors.
7550         * tree-cfgcleanup.c: Update tree_pass descriptors.
7551         * cfgcleanup.c: Update tree_pass descriptors.
7552         * tree-ssa-pre.c: Update tree_pass descriptors.
7553         * tree-sra.c: Update tree_pass descriptors.
7554         * tree-mudflap.c: Update tree_pass descriptors.
7555         * tree-ssa-copy.c: Update tree_pass descriptors.
7556         * cfglayout.c: Update tree_pass descriptors.
7557         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7558         * tree-ssa-dce.c: Update tree_pass descriptors.
7559         * tree-ssa.c: Update tree_pass descriptors.
7560         * regclass.c: Update tree_pass descriptors.
7561         * integrate.c: Update tree_pass descriptors.
7562         * tree-optimize.c: Update tree_pass descriptors.
7563         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7564         * tree-object-size.c: Update tree_pass descriptors.
7565         * combine.c: Update tree_pass descriptors.
7566         * tree-outof-ssa.c: Update tree_pass descriptors.
7567         * bb-reorder.c: Update tree_pass descriptors.
7568         * stack-ptr-mod.c: Update tree_pass descriptors.
7569         * var-tracking.c: Update tree_pass descriptors.
7570         * tree-profile.c: Update tree_pass descriptors.
7571         * tree-vect-generic.c: Update tree_pass descriptors.
7572         * reg-stack.c: Update tree_pass descriptors.
7573         * sched-rgn.c: Update tree_pass descriptors.
7574         * tree-ssa-structalias.c: Update tree_pass descriptors.
7575         * tree-cfg.c: Update tree_pass descriptors.
7576         * passes.c (current_pass): Update declaration.
7577         (finish_optimization_passes): Update.
7578         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7579         (register_one_dump_file, register_dump_files_1, next_pass_1):
7580         Update arguments.
7581         (init_optimization_passes): Update handling of new types.
7582         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7583         * ipa-struct-reorg.c: Update tree_pass descriptors.
7584         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7585         * combine-stack-adj.c: Update tree_pass descriptors.
7586         * cfgrtl.c: Update tree_pass descriptors.
7587         * dce.c: Update tree_pass descriptors.
7588         * tree-ssanames.c: Update tree_pass descriptors.
7589
7590 2008-03-19  Richard Guenther  <rguenther@suse.de>
7591
7592         PR middle-end/35609
7593         * tree-ssa.c (walk_data): New structure.
7594         (warn_uninitialized_var): If not always_executed warn with "maybe"
7595         instead of "is".
7596         (execute_early_warn_uninitialized): Compute post-dominators.
7597         Initialize always_executed before processing each basic block.
7598
7599 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7600
7601         PR target/35504
7602         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7603         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7604
7605 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7606
7607         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7608
7609 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7610
7611         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7612         is true.
7613         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7614         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7615         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7616         target after ignore has been set, and move there also the commputation
7617         of subtarget and original_target.
7618         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7619         (LANG_HOOKS_INITIALIZER): Remove it.
7620         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7621
7622 2008-03-18  Richard Guenther  <rguenther@suse.de>
7623
7624         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7625         found an expression with constants, note that in the VN for the lhs.
7626         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7627         fold them to constants if possible.  Run cleanup_cfg if done so.
7628         (execute_pre): Return todo.
7629         (do_pre): Likewise.
7630         (execute_fre): Likewise.
7631         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7632         of constants.
7633         (get_prop_source_stmt): Look through pointer conversions.
7634
7635 2008-03-18  Jan Hubicka  <jh@suse.cz>
7636
7637         * tree-pretty-print.c: Include predict.h.
7638         (dump_generic_node): Dump predictor.
7639         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7640         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7641         * gimple-low.c (lower_stmt): Likewise.
7642         * expr.c (expand_expr_real): Likewise.
7643         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7644         them.
7645         (build_predict_expr, build_predict_expr): New.
7646         * predict.h (predictor_name, build_predict_expr): Update.
7647         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7648         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7649         * predict.def (PRED_CONTINUE): Update hitrate.
7650         * tree.def (PREDICT_EXPR): Define.
7651         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7652         do not handle BIND_EXPR.
7653         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7654         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7655         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7656         operands.
7657
7658 2008-03-18  Michael Matz  <matz@suse.de>
7659
7660         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7661
7662 2008-03-18  Richard Guenther  <rguenther@suse.de>
7663
7664         * tree-gimple.h (is_gimple_invariant_address): Declare.
7665         (is_gimple_constant): Likewise.
7666         * tree-gimple.c (is_gimple_constant): New function.
7667         (is_gimple_invariant_address): Likewise.
7668         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7669         and is_gimple_invariant_address.
7670         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7671         previous change.
7672         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7673         an addressable base.
7674
7675 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7676
7677         PR middle-end/35611
7678         * gimplify.c (gimplify_expr): Gimplify second operand of
7679         OMP_ATOMIC_LOAD.
7680
7681 2008-03-17  Richard Guenther  <rguenther@suse.de>
7682
7683         PR tree-optimization/19637
7684         * fold-const.c (fold_unary): Remove restrictions of removing
7685         intermediate pointer-conversions (P2)(P1)P0.
7686         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7687         conversion to void pointer.
7688         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7689
7690 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7691
7692         PR debug/31510
7693         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7694         emulated thread local variables.
7695
7696 2008-03-16  Richard Guenther  <rguenther@suse.de>
7697
7698         PR middle-end/35607
7699         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7700         expand TREE_INVARIANT operations that are not gimple invariant.
7701
7702 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7703
7704         * doc/extend.texi (Alignment): Say that the ABI controls
7705         the __alignof__ for non-strict-alignment targets rather
7706         than being a recommendation.
7707
7708 2008-03-15  Paul Brook  <paul@codesourcery.com>
7709
7710         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7711         annotations.
7712         (arm_output_fn_unwind): Mark functions that can not be unwound.
7713
7714 2008-03-15  Paul Brook  <paul@codesourcery.com>
7715
7716         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7717         extension instructions.
7718
7719 2008-03-15  Richard Guenther  <rguenther@suse.de>
7720
7721         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7722         and fold constant aggregate refs.
7723         (fold_const_aggregate_ref): Handle string constants
7724         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7725         (evaluate_stmt): Simplify now that ccp_fold folds constant
7726         aggregate refs.
7727
7728 2008-03-15  Paul Brook  <paul@codesourcery.com>
7729
7730         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7731         (extzv): Use gen_extzv_t2.
7732         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7733
7734 2008-03-15  Richard Guenther  <rguenther@suse.de>
7735
7736         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7737         (fold_const_aggregate_ref): Likewise.
7738         (get_value): Return NULL if we don't have any values.
7739         (ccp_finalize): Set const_val to NULL after freeing it.
7740         * tree-flow.h (get_symbol_constant_value): Declare.
7741         (fold_const_aggregate_ref): Likewise.
7742         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7743
7744 2008-03-15  Richard Guenther  <rguenther@suse.de>
7745
7746         PR middle-end/35593
7747         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7748         to not produce negative array indices if not allowed.  Add
7749         parameter to indicate that.
7750         (maybe_fold_offset_to_component_ref): Allow negative array
7751         indices only for the first member of a structure.
7752         (maybe_fold_offset_to_reference): Allow negative array indices.
7753         (maybe_fold_stmt_addition): Likewise.
7754
7755 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7756             Anatoly Sokolov <aesok@post.ru>
7757
7758         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7759         (avr_arch): Add ARCH_AVR6.
7760         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7761         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7762         instead of fixed value 2.
7763         (print_operand_address): Use gs() asm specifier instead of pm().
7764         (avr_assemble_integer): (Ditto.).
7765         (avr_output_addr_vec_elt): (Ditto.).
7766         (print_operand): Handle "!" code.
7767         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7768         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7769         (AVR_HAVE_EIJMP_EICALL): Define.
7770         (AVR_3_BYTE_PC): Redefine.
7771         (AVR_2_BYTE_PC): (Ditto.).
7772         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7773         (LINK_SPEC): Add atmega2560 and atmega2561.
7774         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7775         (crtm2561.o).
7776         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7777         for 3 byte PC devices.
7778         (call_value_insn): (Ditto.).
7779         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7780         (indirect_jump): Use only for for 2 byte PC devices.
7781         (*tablejump): (Ditto.).
7782         (*indirect_jump_avr6): Add insn.
7783         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7784         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7785         instead of ijmp for 3 byte PC devices.
7786         (__tablejump2__): (Ditto.).
7787         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7788         (MULITLIB_DIRNAMES): (Ditto.). 
7789         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7790
7791 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7792
7793         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7794         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7795         ("mmx_psadbw"): Use V1DI mode for operand 0.
7796         * config/i386/i386-modes.def (V1SI): New vector mode.
7797         * config/i386/i386.c (struct builtin_description)
7798         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7799         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7800         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7801         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7802         v1di_ftype_v8qi_v8qi type.
7803         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7804
7805         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7806         __builtin_ia32_pmuludq]: Fix the mode of return value.
7807
7808 2008-03-15  Richard Guenther  <rguenther@suse.de>
7809
7810         PR middle-end/35595
7811         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7812         being a PHI_NODE.
7813
7814 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7815         
7816         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7817         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7818         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7819         unless TARGET_SERIALIZE_VOLATILE is enabled.
7820         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7821         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7822         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7823
7824 2008-03-14  Richard Guenther  <rguenther@suse.de>
7825
7826         PR tree-optimization/34172
7827         * tree-flow.h (refs_may_alias_p): Declare.
7828         (get_single_def_stmt): Likewise.
7829         (get_single_def_stmt_from_phi): Likewise.
7830         (get_single_def_stmt_with_phi): Likewise.
7831         * tree-dfa.c (refs_may_alias_p): New function.
7832         (get_single_def_stmt): Likewise.
7833         (get_single_def_stmt_from_phi): Likewise.
7834         (get_single_def_stmt_with_phi): Likewise.
7835         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7836         (vn_reference_lookup_1): New helper function.
7837         (vn_reference_lookup): Walk the virtual use-def chain to
7838         continue searching for a match if the def does not alias the
7839         reference we are looking for.
7840
7841 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7842
7843         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7844         archive and Perzl.  Update The Written Word listing.
7845
7846 2008-03-14  Richard Guenther  <rguenther@suse.de>
7847
7848         PR tree-optimization/34043
7849         PR tree-optimization/33989
7850         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7851         when doing FRE.
7852         (bitmap_find_leader): Use extra argument to verify dominance
7853         relationship inside a basic-block.
7854         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7855         (find_leader_in_sets): Adjust.
7856         (create_component_ref_by_pieces): Take extra argument for
7857         dominance check, handle lookup failures.
7858         (find_or_generate_expression): Likewise.
7859         (create_expression_by_pieces): Likewise.
7860         (insert_into_preds_of_block): Adjust.
7861         (create_value_expr_from): If asked for, verify all operands
7862         are in the blocks AVAIL_OUT set.
7863         (make_values_for_stmt): Check for SSA_NAMEs that are life
7864         over an abnormal edge.
7865         (compute_avail): Remove such check.
7866         (do_SCCVN_insertion): New function.
7867         (eliminate): If we do not find a leader suitable for replacement
7868         insert a replacement expression from SCCVN if available.
7869         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7870         (struct vn_ssa_aux): Add needs_insertion flag.
7871         * tree-ssa-sccvn.c (may_insert): New global flag.
7872         (copy_reference_ops_from_ref): Value-number union member access
7873         based on its size, not type and member if insertion is allowed.
7874         (visit_reference_op_load): For a weak match from union type
7875         punning lookup a view-converted value and insert a SSA_NAME
7876         for that value if that is not found.
7877         (visit_use): Make dumps shorter.  Do not disallow value numbering
7878         SSA_NAMEs that are life over an abnormal edge to constants.
7879         (free_scc_vn): Release inserted SSA_NAMEs.
7880         (run_scc_vn): New flag to specify whether insertion is allowed.
7881         Process SSA_NAMEs in forward order.
7882         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7883         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7884         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7885         pointer type to/from integral types that do not change the
7886         precision to regular conversions.
7887
7888 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7889
7890         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7891         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7892         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7893         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7894         input arguments and the mode of return value.  Built-in functions
7895         that operate on whole 64-bit MMX register now use V1DI mode.
7896
7897 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7898             Olga Golovanevsky  <olga@il.ibm.com>
7899
7900         PR tree-optimization/35041
7901         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7902         to locate the right position in a statement.
7903
7904 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7905
7906         PR target/34000
7907         PR target/35553
7908         * config/i386/xmmintrin.h:  Change all static inline functions to
7909         extern inline and add __gnu_inline__ attribute.
7910         * config/i386/bmintrin.h: Ditto.
7911         * config/i386/smmintrin.h: Ditto.
7912         * config/i386/tmmintrin.h: Ditto.
7913         * config/i386/mmintrin-common.h: Ditto.
7914         * config/i386/ammintrin.h: Ditto.
7915         * config/i386/emmintrin.h: Ditto.
7916         * config/i386/pmmintrin.h: Ditto.
7917         * config/i386/mmintrin.h: Ditto.
7918         * config/i386/mm3dnow.h: Ditto.
7919
7920 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7921
7922         PR middle-end/35185
7923         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7924         (lower_omp_2): New function.
7925         (lower_omp_1, lower_omp): Rewritten.
7926
7927 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7928
7929         PR 35054
7930         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7931         with the phrase "Microsoft Windows compilers".
7932         (Push/Pop Macro Pragmas): New subsection. Document
7933         #pragma push_macro and pragma pop_macro.
7934
7935 2008-03-12  Paul Brook  <paul@codesourcery.com>
7936
7937         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7938
7939 2008-03-12  Paul Brook  <paul@codesourcery.com>
7940
7941         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7942         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7943         (thumb2_addsi_shortim): Rename ...
7944         (thumb2_addsi_short): ... to this.  Allow register operands.
7945         (thumb2_subsi_short): New pattern.
7946         (thumb2_one_cmplsi2_short,
7947         thumb2_negsi2_short): New patterns and peepholes.
7948
7949 2008-03-12  Paul Brook  <paul@codesourcery.com>
7950
7951         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7952
7953 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7954
7955         * config/i386/i386.md (int_cond): New code iterator.
7956         (fp_cond): Ditto.
7957         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7958         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7959         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7960         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7961         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7962         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7963         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7964         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7965
7966 2008-03-12  Paul Brook  <paul@codesourcery.com>
7967
7968         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7969         instead of {arm,thumb}_compute_save_reg_mask.
7970         (output_return_instruction): Ditto.
7971         (thumb_unexpanded_epilogue): Ditto.
7972         (thumb1_expand_prologue): Ditto.
7973         (thumb1_output_function_prologue): Ditto.
7974         (arm_set_return_address): Ditto.
7975         (thumb_set_return_address): Ditto.
7976         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7977         regs to achieve stack alignment.
7978         (thumb1_compute_save_reg_mask): Fix compiler warning.
7979         (arm_output_epilogue): Use offsets->saved_regs_mask.
7980         Adjust stack pointer by poping call clobered registers.
7981         (arm_expand_prologue): Use offsets->saved_regs_mask.
7982         Adjust stack pointer by pushing extra registers.
7983         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7984
7985 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7986
7987         PR tree-opt/35422
7988         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7989         conversion to the operands of a multiplication.
7990
7991 2008-03-12  Richard Guenther  <rguenther@suse.de>
7992
7993         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7994         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7995         * timevar.def (TV_TREE_PHIPROP): Add.
7996         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7997         pass description.  Use TV_TREE_PHIPROP.
7998         * tree-ssa-forwprop.c: Remove phiprop code.
7999
8000 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8001
8002         PR middle-end/35549
8003         * omp-low.c (maybe_lookup_decl): Constify first argument.
8004         (use_pointer_for_field): Change last argument from bool to
8005         omp_context *.  Disallow shared copy-in/out in nested
8006         parallel if decl is shared in outer parallel too.
8007         (build_outer_var_ref, scan_sharing_clauses,
8008         lower_rec_input_clauses, lower_copyprivate_clauses,
8009         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8010
8011 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8012             Ira Rosen  <irar@il.ibm.com>
8013
8014         * tree-vectorizer.c (free_stmt_vec_info): New function.
8015         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8016         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8017         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8018         * tree-vect-transform.c (vectorizable_conversion): Free
8019         vec_oprnds0 if it was allocated.
8020         (vect_permute_store_chain): Remove unused VECs.
8021         (vectorizable_store): Free VECs that are allocated in the..
8022         function.
8023         (vect_transform_strided_load, vectorizable_load): Likewise.
8024         (vect_remove_stores): Simplify the code.
8025         (vect_transform_loop): Move code to vect_remove_stores().
8026         Call vect_remove_stores() and free_stmt_vec_info().
8027
8028 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8029
8030         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8031         TARGET_HPUX.  Revise comment.
8032         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8033         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8034         Use sr4 variant of `be' instruction when not generating PIC code.
8035         (attr_length_call): Adjust for above change.
8036
8037 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8038
8039         * ipa-reference.c (static_execute): Remove module_statics_const and
8040         associated setting code.
8041
8042 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8043
8044         PR target/35540
8045         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8046         predicate for operand 1.
8047         (paritysi2_cmp): Use register_operand predicate for operand 2.
8048         Use earlyclobber modifier for operand 1.  Remove support for
8049         memory operands.
8050         (paritydi2_cmp): Use register_operand predicate for operand 3.
8051         Use earlyclobber modifier for operand 1.  Remove support for
8052         memory operands.
8053
8054 2008-03-11  Paul Brook  <paul@codesourcery.com>
8055             Vladimir Prus  <vladimir@codesourcery.com>
8056
8057         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8058         (arm_compute_save_reg0_reg12_mask): Always
8059         check if register 11 must be saved.  Always safe hard frame pointer
8060         when frame_pointer_needeed.
8061         (arm_compute_save_reg_mask): Save IP and PC
8062         only with apcs frames.
8063         (arm_output_epilogue): Adjust Thumb2 codepath to
8064         be also invoked and work for ARM non-apcs frames.
8065         (arm_expand_prologue): Don't bother saving IP
8066         for non-apcs frame, since it's not clobbered by
8067         prologue code.  Implement non-apcs frame
8068         layout.
8069
8070 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8071
8072         PR rtl-optimization/35281
8073         * expr.c (convert_move): Use a new pseudo for the intermediate
8074         from_mode->word_mode result.
8075
8076 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8077
8078         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8079         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8080         * toplev.c (compile_file): Don't call it.
8081
8082 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8083
8084         PR middle-end/35526
8085         * expr.c (store_expr): Call emit_block_move if the mode
8086         of "temp" RTX is BLKmode.
8087
8088 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8089             Richard Guenther  <rguenther@suse.de>
8090
8091         PR tree-optimization/31358
8092         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8093         the step with a NULL_TREE.
8094         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8095         to sizetype if type is a pointer type.
8096         (add_candidate_1): Don't convert the base and step to
8097         the generic type if the orginal type is a pointer type.
8098         (add_iv_value_candidates): Use sizetype for the step
8099         if type is a pointer type.
8100         (cand_value_at): Likewise.
8101         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8102         for pointer types.
8103         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8104         Don't convert the tem affine to the type.
8105         (add_elt_to_tree): Use sizetype for the step if a pointer.
8106         Use POINTER_PLUS_EXPR for pointers.
8107         (aff_combination_to_tree): Use sizetype for the step if a
8108         pointer.
8109
8110 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8111
8112         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8113         Remove commutativity hint.
8114
8115 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8116
8117         PR c/35438
8118         PR c/35439
8119         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8120         errorneous type.  Check that v is a VAR_DECL.
8121
8122         PR middle-end/35099
8123         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8124
8125 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8126
8127         PR tree-optimization/35494
8128         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8129         may be overriden at link and run time.
8130
8131 2008-03-10  Richard Guenther  <rguenther@suse.de>
8132
8133         PR tree-optimization/34677
8134         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8135         (poolify_tree): Likewise.
8136         (modify_expr_template): Likewise.
8137         (poolify_modify_stmt): Likewise.
8138         (insert_fake_stores): Handle all component-ref style stores
8139         in addition to INDIRECT_REF.  Also handle complex types.
8140         Do not poolify the inserted load.
8141         (realify_fake_stores): Do not rebuild the tree but only
8142         make it a SSA_NAME copy.
8143         (init_pre): Remove initialzation of modify_expr_template.
8144         Do not allocate modify_expr_node_pool.
8145         (fini_pre): Do not free modify_expr_node_pool.
8146
8147 2008-03-10  Paul Brook  <paul@codesourcery.com>
8148
8149         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8150         to avoid conflicts.
8151
8152 2008-03-10  Paul Brook  <paul@codesourcery.com>
8153             Mark Shinwell  <shinwell@codesourcery.com>
8154
8155         * config/arm/cortex-r4.md: New.
8156         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8157         insn attributes.
8158         * config/arm/arm.md: Include cortex-r4.md.
8159         (insn): Add smmls, sdiv and udiv values.
8160         (generic_sched): Don't use generic scheduling for Cortex-R4.
8161         (arm_issue_rate): New function.
8162         (TARGET_SCHED_ISSUE_RATE): Define.
8163
8164 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8165
8166         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8167
8168 2008-03-10  Richard Guenther  <rguenther@suse.de>
8169
8170         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8171         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8172
8173 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8174
8175         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8176         Set default to true.
8177
8178 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8179
8180         * c.opt (Wsynth): Deprecate.
8181         * doc/invoke.texi (Option Summary, Warning Options): Document
8182         -Wno-format-contains-nul.
8183
8184 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8185
8186         PR target/35496
8187         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8188         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8189
8190 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8191
8192         * config/rs6000/rs6000.c (builtin_description): Rename vector
8193         left shift operations.
8194         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8195         (altivec_vsl<VI_char>): Rename to ...
8196         (ashl<mode>3): ... new name.
8197         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8198         gen_ashlv4si3.
8199         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8200
8201 2008-03-08  Richard Guenther  <rguenther@suse.de>
8202
8203         * coverage.h (tree_coverage_counter_addr): Declare.
8204         * coverage.c (tree_coverage_counter_addr): New function.
8205         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8206         before using again.
8207         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8208         (tree_gen_one_value_profiler): Likewise.
8209         (tree_gen_ic_profiler): Likewise.
8210         (tree_gen_average_profiler): Likewise.
8211         (tree_gen_ior_profiler): Likewise.
8212
8213 2008-03-08  Richard Guenther  <rguenther@suse.de>
8214
8215         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8216         (vn_binary_op_insert): Likewise.
8217         (vn_unary_op_lookup): Likewise.
8218         (vn_unary_op_insert): Likewise.
8219         (vn_nary_op_lookup): Declare.
8220         (vn_nary_op_insert): Likewise.
8221         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8222         and binary hashes, use a single obstack for unary_op_pool
8223         and binary_op_pool.
8224         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8225         a single struct vn_nary_op_s.  Store tree code length and
8226         a variable number of operands.
8227         (struct vn_reference_op_struct): Remove unused op2.
8228         (vn_reference_op_eq): Do not compare op2.
8229         (vn_reference_op_compute_hash): Do not compute hash of op2.
8230         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8231         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8232         with vn_nary_op_compute_hash.
8233         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8234         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8235         vn_nary_op_lookup.
8236         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8237         vn_nary_op_insert.
8238         (visit_unary_op): Call nary functions.
8239         (visit_binary_op): Likewise.
8240         (process_scc): Adjust for struct vn_tables_s changes.
8241         (allocate_vn_table): Likewise.
8242         (free_vn_table): Likewise.
8243         * tree-vn.c (vn_add): Call nary functions.
8244         (vn_lookup): Likewise.
8245
8246 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8247
8248         PR target/35498
8249         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8250         wdst back after sync_compare_and_swapqhi_internal.
8251
8252 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8253
8254         PR target/22152
8255         * config/i386/i386-modes.def (V1DI): New vector mode.
8256         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8257         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8258         (MMXMODE248): Ditto.
8259         (MMXMODE): Add V1DI mode.
8260         (mmxvecsize): Change DI mode to V1DI mode.
8261         ("mov<mode>): Use MMXMODEI8 mode iterator.
8262         ("*mov<mode>_internal_rex64"): Ditto.
8263         ("*mov<mode>_internal"): Ditto.
8264         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8265         ("mmx_sub<mode>3"): Ditto.
8266         ("mmx_adddi3"): Remove insn pattern.
8267         ("mmx_subdi3"): Ditto.
8268         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8269         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8270         ("mmx_ashl<mode>3"): Ditto.
8271         ("mmx_lshrdi3"): Remove insn pattern.
8272         ("mmx_ashldi3"): Ditto.
8273         * config/i386/i386.c (classify_argument): Handle V1DImode.
8274         (function_arg_advance_32): Ditto.
8275         (function_arg_32): Ditto.
8276         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8277         mmx_addv1di3 insn pattern.
8278         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8279         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8280         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8281         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8282         Remove definitions of built-in functions.
8283         (V1DI_type_node): New node.
8284         (v1di_ftype_v1di_int): Ditto.
8285         (v1di_ftype_v1di_v1di): Ditto.
8286         (v2si_ftype_v2si_si): Ditto.
8287         (v4hi_ftype_v4hi_di): Remove node.
8288         (v2si_ftype_v2si_di): Ditto.
8289         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8290         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8291         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8292         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8293         Add new builtins using def_builtin_const.
8294         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8295         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8296         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8297         * config/i386/mmintrin.h (__v1di): New typedef.
8298         (_mm_add_si64): Cast arguments to __v1di type.
8299         (_mm_sub_si64): Ditto.
8300         (_mm_sll_pi16): Cast __count to __v4hi type.
8301         (_mm_sll_pi32): Cast __count to __v2si type.
8302         (_mm_sll_si64): Cast arguments to __v1di type.
8303         (_mm_srl_pi16): Cast __count to __v4hi type.
8304         (_mm_srl_pi32): Cast __count to __v2si type.
8305         (_mm_srl_si64): Cast arguments to __v1di type.
8306         (_mm_sra_pi16): Cast __count to __v4hi type.
8307         (_mm_sra_pi32): Cast __count to __v2si type.
8308         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8309         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8310         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8311         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8312         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8313         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8314         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8315         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8316         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8317         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8318         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8319         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8320
8321 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8322
8323         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8324
8325 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8326
8327         PR target/35373
8328         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8329         reg+const addressing for Altivec modes.  Don't generate reg+reg
8330         addressing for TFmode or TDmode quantities.
8331
8332 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8333
8334         * c-common.c (vector_types_convertible_p): Call langhook
8335         instead of comptypes.
8336
8337 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8338
8339         PR tree-opt/35402
8340         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8341         integral and scalar float variables which have a
8342         NULL DECL_INITIAL.
8343
8344 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8345
8346         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8347         dwarf_register_span hook when emitting unwind information for
8348         register-to-memory saves.
8349         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8350         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8351
8352 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8353
8354         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8355         for the same VAR_DECL.
8356
8357 2008-03-06  Tom Tromey  <tromey@redhat.com>
8358
8359         * treelang: Delete.
8360         * doc/standards.texi (Standards): Don't mention treelang.
8361         * doc/invoke.texi (Overall Options): Don't mention treelang.
8362         * doc/install.texi (Prerequisites): Don't mention bison or
8363         treelang.
8364         (Configuration): Don't mention treelang.
8365         (Building): Likewise.
8366         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8367
8368 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8369
8370         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8371         word-extractions out of a multi-word object.
8372
8373 2008-03-06  Richard Guenther  <rguenther@suse.de>
8374
8375         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8376         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8377         result type and precision.
8378         * expr.c (get_inner_reference): Set unsignedp based on the result
8379         type of BIT_FIELD_REF.
8380         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8381         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8382         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8383         for BIT_FIELD_REF.
8384         (sra_build_assignment): Likewise.
8385         (sra_build_elt_assignment): Likewise.
8386         (sra_explode_bitfield_assignment): Likewise.
8387         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8388         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8389         set BIT_FIELD_REF_UNSIGNED.
8390         (vectorizable_load): Likewise.
8391
8392 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8393
8394         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8395         at bb start.
8396
8397 2008-03-06  Richard Guenther  <rguenther@suse.de>
8398
8399         * alias.c (struct alias_set_entry): Move has_zero_child field
8400         to pack with alias_set.
8401
8402 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8403
8404         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8405         32bit host.
8406
8407 2008-03-05  Ian Lance Taylor  <iant@google.com>
8408
8409         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8410
8411 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8412
8413         * fwprop.c (update_df): Support width and offset parameters of
8414         df_ref_create.
8415         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8416         global_conflicts): Change DF_REF_EXTRACT to either
8417         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8418         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8419         * df-scan.c (df_ref_record, df_defs_record,
8420         df_ref_create_structure, df_def_record_1, df_uses_record,
8421         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8422         df_bb_refs_collect, df_entry_block_defs_collect,
8423         df_exit_block_uses_collect): Support new width and offset fields.
8424         (ref_extract_pool): New storage pool.
8425         (df_free_ref): New function.
8426         (df_reg_chain_unlink, df_free_collection_rec,
8427         df_sort_and_compress_refs): Call df_free_ref.
8428         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8429         of df_ref_extract.
8430         (df_ref_create_structure): Allocate df_ref_extract if offset and
8431         width fields are used.
8432         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8433         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8434         and SIGN_EXTRACT.
8435         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8436         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8437         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8438         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8439         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8440         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8441         (df_ref_extract): New structure.
8442         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8443         (df_ref_create): Add width and offset parameters.
8444         
8445 2008-03-05  Richard Guenther  <rguenther@suse.de>
8446
8447         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8448         Use ranges_overlap_p.
8449         (offset_overlaps_with_access): Rename
8450         to ranges_overlap_p and move ...
8451         * tree-flow-inline.h (ranges_overlap_p): ... here.
8452
8453         * tree.h (get_inner_reference, handled_component_p): Update
8454         comments.
8455
8456         * tree.h (record_component_aliases, get_alias_set,
8457         alias_sets_conflict_p, alias_sets_must_conflict_p,
8458         objects_must_conflict_p): Move declarations ...
8459         * alias.h (record_component_aliases, get_alias_set,
8460         alias_sets_conflict_p, alias_sets_must_conflict_p,
8461         objects_must_conflict_p): ... here.
8462         Include coretypes.h.
8463         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8464
8465 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8466
8467         * cfg.c: Include tree-flow.h.
8468         (remove_edge_raw): Call redirect_edge_var_map_clear.
8469         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8470         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8471         (redirect_edge_var_map_result): New.
8472         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8473         PENDING_STMT use with redirect_edge_var_map_*.
8474         * tree-ssa.c (edge_var_maps): New definition.
8475         (redirect_edge_var_map_add): New.
8476         (redirect_edge_var_map_clear): New.
8477         (redirect_edge_var_map_dup): New.
8478         (redirect_edge_var_map_vector): New.
8479         (redirect_edge_var_map_destroy): New.
8480         (ssa_redirect_edge): Replace PENDING_STMT use with
8481         redirect_edge_var_map_*.
8482         (flush_pending_stmts): Same.
8483         (delete_tree_ssa): Destroy edge var map.
8484         * tree-flow.h (struct _edge_var_map): New.
8485         Define edge_var_map vector type.
8486         Declare redirect_edge_var_map_* prototypes.
8487         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8488         * tree-cfg.c (reinstall_phi_args): Replace
8489         PENDING_STMT use with redirect_edge_var_map_*.
8490
8491 2008-03-05  Richard Guenther  <rguenther@suse.de>
8492
8493         PR tree-optimization/35472
8494         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8495         whose single use_stmt has a overlapping set of loaded and
8496         stored symbols as that use_stmt might be a noop assignment then.
8497
8498 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8499
8500         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8501
8502 2008-03-05  Richard Guenther  <rguenther@suse.de>
8503
8504         PR c++/35336
8505         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8506         should be constants.
8507         * tree-cfg.c (verify_expr): Verify it.
8508         * fold-const.c (fold_truthop): Remove code generating
8509         BIT_FIELD_REFs of structure bases.
8510         (fold_binary): Likewise.
8511         (fold_ternary): Position and size of BIT_FIELD_REFs are
8512         always host integers.
8513         (make_bit_field_ref): Remove.
8514         (optimize_bit_field_compare): Remove.
8515         (all_ones_mask_p): Remove.
8516
8517 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8518
8519         PR gcc/33009
8520         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8521         (split_block_and_df_analyze): New. Split basic block and rebuild
8522         dataflow.
8523         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8524         SPLIT_BLOCK.
8525         (split_pattern_seq): Likewise.
8526         (erase_matching_seqs): Likewise.
8527         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8528
8529 2008-03-04  Geoff Keating  <geoffk@apple.com>
8530
8531         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8532         declaration and code.
8533         (tree_invalid_nonnegative_warnv_p): Likewise.
8534
8535 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8536
8537         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8538         examples.  Truncate option-names then causing overfull hbox.
8539
8540 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8541
8542         PR target/35222
8543         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8544         on hpux10.
8545         * configure: Rebuilt.
8546
8547 2008-03-04  Rafael Espindola  <espindola@google.com>
8548
8549         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8550         (tree_unary_nonnegative_warnv_p): New.
8551         (tree_binary_nonnegative_warnv_p): New.
8552         (tree_single_nonnegative_warnv_p): New.
8553         (tree_invalid_nonnegative_warnv_p): New.
8554         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8555
8556 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8557
8558         PR 28322
8559         * opts.c (handle_option): Postpone 'unknown option' errors only for
8560         warning options.
8561
8562 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8563
8564         PR target/35453
8565         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8566         (_SIDD_XXX): This.
8567
8568 2008-03-04  Rafael Espindola  <espindola@google.com>
8569
8570         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8571         (tree_binary_nonzero_warnv_p): New.
8572         (tree_single_nonzero_warnv_p): New.
8573         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8574
8575 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8576
8577         PR middle-end/35456
8578         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8579         transformations for modes that have signed zeros.
8580         * ifcvt.c (noce_try_abs): Ditto.
8581
8582 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8583
8584         * config/i386/i386.c (override_options): Force
8585         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8586
8587 2008-03-04  Jan Hubicka  <jh@suse.cz>
8588
8589         PR c++/35262
8590         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8591         in last commit.
8592
8593 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8594
8595         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8596         label to probe the stack.
8597
8598 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8599
8600         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8601         (__gthr_win32_mutex_destroy): Declare.
8602         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8603         __gthr_win32_mutex_destroy.
8604         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8605
8606 2008-03-03  Jan Hubicka  <jh@suse.cz>
8607
8608         PR c++/35262
8609         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8610         aggressive on inlining cold calls.
8611
8612 2008-03-03  Richard Guenther  <rguenther@suse.de>
8613
8614         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8615         struct copies into the expression table.
8616         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8617         (try_to_simplify): Likewise.
8618         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8619         integral and pointer arguments which do not change the
8620         precision to NOP_EXPRs.
8621         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8622         VIEW_CONVERT_EXPR case.
8623
8624 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8625
8626         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8627         defined in a loop at depth 0 is invariant.
8628         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8629         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8630         be called at loop depth 0.
8631
8632 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8633
8634         PR driver/35420
8635         * gcc.c (process_command): Update copyright notice dates.
8636         * gcov.c (print_version): Likewise.
8637         * gcov-dump.c (print_version): Likewise.
8638         * mips-tfile.c (main): Likewise.
8639         * mips-tdump.c (main): Likewise.
8640
8641 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8642
8643         PR 24924
8644         * c-common.c (flag_permissive): Delete.
8645         (constant_expression_warnings): Check flags first.
8646         (constant_expression_error): New.
8647         * c-common.h (flag_permissive): Delete.
8648         (constant_expression_error): Declare.
8649         * flags.h (flag_permissive): Declare. Update description.
8650         * diagnostic.c (pedwarn): Update.
8651         (permerror): New.
8652         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8653         (permissive_error_kind): New.
8654         * toplev.c (flag_permissive): Define. Update description.
8655         * toplev.h (permissive_error_kind): Declare.
8656         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8657         (pedwarn_c90): Use pedantic_warning_kind.
8658         * c-opts.c (c_common_post_options): flag_permissive does not affect
8659         flag_pedantic_errors.
8660
8661 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8662
8663         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8664         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8665         __absvsi2, __absvDI2): Use unsigned arithmetic.
8666
8667 2008-03-02  Andi Kleen  <ak@suse.de>
8668             Richard Guenther  <rguenther@suse.de>
8669
8670         * struct-equiv.c: Remove file.
8671         * cfg_cleanup.c (condjump_equiv_p): Remove.
8672         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8673         (struct-equiv.o): Remove rule.
8674         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8675         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8676         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8677
8678 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8679
8680         * ifcvt.c (noce_process_if_block): Try to handle only the then
8681         block if the else block exists but isn't suitable.
8682
8683 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8684
8685         PR gcc/35063
8686         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8687         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8688         regression from previous patch.
8689
8690 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8691
8692         PR gcc/35063
8693         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8694         implemented.
8695         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8696         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8697         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8698         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8699         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8700         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8701         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8702         (__gthread_mutex_destroy_function): Rename to
8703         __gthread_mutex_destroy.
8704         * gthr-dce.h (__gthread_mutex_destroy): Call
8705         pthread_mutex_destroy.
8706         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8707         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8708         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8709
8710 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8711
8712         * df-scan.c (df_ref_chain_change_bb): Simplify.
8713         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8714         set_block_for_insn if there's any change.
8715         * df.h ((df_insn_change_bb): Fix prototype.
8716         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8717         df_insn_change_bb, don't call set_block_for_insn.
8718         * emit-rtl.c (reorder_insns): Likewise.
8719         * haifa-sched.c (move_insn): Likewise.
8720
8721 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8722
8723         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8724
8725 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8726
8727         * tree-flow-inline.h (next_readonly_imm_use): Return
8728         NULL_USE_OPERAND_P after the end.
8729
8730 2008-03-01  Richard Guenther  <rguenther@suse.de>
8731
8732         PR tree-optimization/35411
8733         * tree-sra.c (sra_build_assignment): Split conversion to
8734         final type to a separate statement if we are not assigning
8735         to a register.
8736
8737 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8738
8739         * fold-const.c (fold_convertible_p): Correct the logic to follow
8740         that in fold_convert().
8741
8742 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8743
8744         PR c++/35315
8745         * tree-inline.c (build_duplicate_type): When we make a
8746         duplicate type, make it unique in the canonical types system.
8747
8748 2008-02-29  Tom Tromey  <tromey@redhat.com>
8749
8750         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8751         input_file_stack_history, input_file_stack_restored): Remove.
8752         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8753         * input.h (struct file_stack): Remove.
8754         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8755         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8756         Likewise.
8757         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8758         type.
8759         (diagnostic_last_module_changed): Add 'map' argument.
8760         (diagnostic_set_last_function): Likewise.
8761         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8762         line map, not input_file_stack.
8763         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8764
8765 2008-02-29  Paul Brook  <paul@codesourcery.com>
8766
8767         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8768
8769 2008-02-29  Paul Brook  <paul@codesourcery.com>
8770
8771         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8772
8773 2008-02-29  Richard Guenther  <rguenther@suse.de>
8774
8775         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8776         vn_lookup_or_add.
8777         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8778         value for comparing for a store match.
8779         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8780         (try_to_simplify): Do not do a full-blown reference lookup.
8781
8782 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8783
8784         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8785         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8786
8787         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8788
8789 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8790
8791         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8792         strides against cache sizes.
8793
8794 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8795
8796         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8797         constant to fpul.
8798
8799 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8800
8801         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8802         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8803         is smaller than the original promoted value.
8804         (simplify_subreg): If OP is a SUBREG, try to preserve its
8805         SUBREG_PROMOTED_VAR_P information.
8806
8807 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8808
8809         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8810         (VN_INFO_GET): Allocate new objects on the obstack.
8811         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8812         for rpo_numbers_temp, for consistency.
8813         (free_scc_vn): Free the obstack.
8814
8815 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8816
8817         * doc/invoke.texi: Document -ftree-loop-distribution.
8818         * tree-loop-distribution.c: New.
8819         * tree-pass.h (pass_loop_distribution): New.
8820         * graphds.h (struct graph): Add htab_t indices.
8821         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8822         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8823         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8824         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8825         * tree-data-ref.c (debug_data_dependence_relations): New.
8826         (dump_data_dependence_relation): Also print data references.
8827         (free_data_ref): Extern.
8828         (same_access_functions): Moved...
8829         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8830         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8831         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8832         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8833         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8834         (stmts_from_loop): Skip LABEL_EXPR.
8835         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8836         New.
8837         (build_rdg): Initialize rdg->indices htab.
8838         (free_rdg, stores_from_loop, ref_base_address,
8839         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8840         have_similar_memory_accesses_1, ref_base_address_1,
8841         remove_similar_memory_refs): New.
8842         * tree-data-ref.h: Depend on tree-chrec.h.
8843         (debug_data_dependence_relations, free_data_ref): Declared.
8844         (same_access_functions): ... here.
8845         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8846         New.
8847         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8848         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8849         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8850         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8851         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8852         rdg_vertex_for_stmt): Declared.
8853         (struct rdg_edge): Add level.
8854         (RDGE_LEVEL): New.
8855         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8856         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8857         Declared.
8858         (rdg_has_similar_memory_accesses): New.
8859         * tree-vect-analyze.c: Remove unused static decls.
8860         * lambda.h (dependence_level): New.
8861         * common.opt (ftree-loop-distribution): New.
8862         * tree-flow.h (mark_virtual_ops_in_bb, 
8863         slpeel_tree_duplicate_loop_to_edge_cfg,
8864         rename_variables_in_loop): Declared.
8865         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8866         (OBJS-common): Add tree-loop-distribution.o.
8867         (tree-loop-distribution.o): New rule.
8868         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8869         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8870         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8871
8872 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8873
8874         PR target/33963
8875         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8876         other than structures and unions.
8877
8878 2008-02-28  Richard Guenther  <rguenther@suse.de>
8879
8880         Revert:
8881         2008-02-26  Richard Guenther  <rguenther@suse.de>
8882
8883         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8884         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8885         (lookup_decl_from_uid): Declare.
8886         (remove_decl_from_map): Likewise.
8887         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8888         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8889         (decl_for_uid_map): New global hashtable mapping DECL_UID
8890         to the decl tree.
8891         (init_ttree): Allocate it.
8892         (insert_decl_to_uid_decl_map): New helper function.
8893         (make_node_stat): Insert new decls into the map.
8894         (copy_node_stat): Likewise.
8895         (lookup_decl_from_uid): New function.
8896         (remove_decl_from_map): Likewise.
8897         (print_decl_for_uid_map_statistics): New helper.
8898         (dump_tree_statistics): Call it.
8899
8900         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8901         (referenced_var_iterator): Adjust.
8902         (FOR_EACH_REFERENCED_VAR): Adjust.
8903         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8904         (num_referenced_vars): Adjust.
8905         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8906         (first_referenced_var): Remove.
8907         (end_referenced_vars_p): Likewise.
8908         (next_referenced_var): Likewise.
8909         (referenced_var_iterator_set): New helper function.
8910         * tree-dfa.c (referenced_var_lookup): Adjust.
8911         (referenced_var_check_and_insert): Likewise.
8912         (remove_referenced_var): Likewise.
8913         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8914         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8915         (verify_call_clobbering): Likewise.
8916         (verify_memory_partitions): Likewise.
8917         (init_tree_ssa): Allocate bitmap instead of hashtable for
8918         referenced_vars.
8919         (delete_tree_ssa): Adjust.
8920         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8921         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8922         (compute_tag_properties): Likewise.
8923         (set_initial_properties): Likewise.
8924         (find_partition_for): Likewise.
8925         (update_reference_counts): Likewise.
8926         (dump_may_aliases_for): Likewise.
8927         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8928         (add_call_clobber_ops): Likewise.
8929         (add_call_read_ops): Likewise.
8930         (get_asm_expr_operands): Likewise.
8931         * tree-into-ssa.c (dump_decl_set): Likewise.
8932         (update_ssa): Likewise.
8933         * tree-sra.c (scan_function): Likewise.
8934         (decide_instantiations): Likewise.
8935         (scalarize_parms): Likewise.
8936         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8937         (dsa_named_for): Likewise.
8938         * tree-ssa-structalias.c (update_alias_info): Likewise.
8939         (merge_smts_into): Likewise.
8940
8941 2008-02-27  David Daney  <ddaney@avtrex.com>
8942
8943         PR target/34409
8944         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8945         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8946         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8947         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8948         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8949
8950 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8951
8952         PR target/25477
8953         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8954         (BUILT_IN_NEXTTOWARD): Remove.
8955         (BUILT_IN_NEXTTOWARDF): Ditto.
8956         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8957         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8958
8959 2008-02-27  Tom Tromey  <tromey@redhat.com>
8960
8961         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8962         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8963
8964 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8965
8966         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8967         update the respective field on newdecl.
8968
8969 2008-02-27  Revital Eres  <eres@il.ibm.com>
8970
8971         PR rtl-optimization/34999
8972         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8973         crossing edges that ends with a call insn.
8974         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8975         call insn and clear the EDGE_CROSSING flag of the crossing edge
8976         when fixing fallthru edges.
8977
8978 2008-02-27  Richard Guenther  <rguenther@suse.de>
8979
8980         PR middle-end/35390
8981         * fold-const.c (fold_unary): Return the correct argument,
8982         converted to the result type.
8983
8984 2008-02-27  Richard Guenther  <rguenther@suse.de>
8985
8986         PR middle-end/34971
8987         * expr.c (expand_expr_real_1): Assert on rotates that operate
8988         on partial modes.
8989         * fold-const.c (fold_binary): Use the types precision, not the
8990         bitsize of the mode if folding rotate expressions.  Build rotates
8991         only for full modes.
8992
8993 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8994
8995         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8996         and CPP_PRAGMA_EOL.
8997         * c-pragma.c (pragma_ns_name): New typedef.
8998         (registered_pp_pragmas): New variable.
8999         (c_pp_lookup_pragma): New function.
9000         (c_register_pragma_1): If flag_preprocess_only, do nothing
9001         for non-expanded pragmas, for expanded ones push pragma's
9002         namespace and name into registered_pp_pragmas vector.
9003         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9004         flag_preprocess_only, don't register GCC pch_preprocess
9005         pragma if flag_preprocess_only.
9006         * c-opts.c (c_common_init): Call init_pragma even if
9007         flag_preprocess_only.
9008         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9009         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9010         cpp_register_pragma if flag_preprocess_only.
9011
9012 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9013
9014         PR c/28800
9015         * c-parser.c (c_parser_translation_unit): Warn for empty
9016         translation unit, not empty source file.
9017
9018 2008-02-26  Paul Brook  <paul@codesourcery.com>
9019
9020         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9021         operand for Thumb-2.
9022         * config/arm/arm.h (reg_class): Add CORE_REGS.
9023         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9024         (BASE_REG_CLASS): Use CORE_REGS.
9025         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9026         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9027         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9028         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9029         ARM_REGNO_OK_FOR_INDEX_P.
9030         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9031         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9032         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9033         (ldm/stm peepholes): Ditto.
9034         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9035         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9036         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9037         * config/arm/constraints.md: Enable "k" constraint on ARM.
9038
9039 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9040
9041         * config/rs6000/rs6000.c: Annotate cache line size field in all
9042         instances of struct processor_costs.
9043
9044 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9045
9046         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9047         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9048         jump_bypass): New counters.
9049         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9050         * dce.c (gate_ud_dce): Same.
9051         (gate_fast_dce): Same.
9052         * dse.c (gate_dse1): New function.
9053         (gate_dse2): New function.
9054         (gate_dse): Merge results of new gate functions.
9055         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9056         (gate_handle_jump_bypass): Add dbg_cnt.
9057         (gate_handle_gcse): Add dbg_cnt.
9058         * ifcvt.c (gate_handle_if_conversion): Same.
9059         (gate_handle_if_after_combine): Same.
9060         (gate_handle_if_after_reload): Same.
9061         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9062
9063 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9064
9065         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9066         line sizes.
9067         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9068
9069 2008-02-26  Jason Merrill  <jason@redhat.com>
9070
9071         PR c++/35315
9072         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9073         alone if it's the naming decl for the type's main variant.
9074
9075 2008-02-26  Tom Tromey  <tromey@redhat.com>
9076
9077         * system.h (USE_MAPPED_LOCATION): Poison.
9078         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9079         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9080         (make_goto_expr_edges): Likewise.
9081         (remove_bb): Likewise.
9082         (execute_warn_function_return): Likewise.
9083         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9084         location_t.
9085         * c-common.c (fname_decl): Remove old location code.
9086         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9087         location code.
9088         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9089         variant.
9090         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9091         (gen_rtx_ASM_INPUT): Likewise.
9092         (gen_rtx_ASM_INPUT_loc): Likewise.
9093         (get_rtx_asm_OPERANDS): Remove.
9094         * cfglayout.c (insn_locators_alloc): Remove old location code.
9095         (set_curr_insn_source_location): Likewise.
9096         (curr_insn_locator): Likewise.
9097         * print-tree.c (print_node): Remove old location code.
9098         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9099         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9100         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9101         location_from_locus.
9102         (construct_exit_block): Remove old location code.
9103         * emit-rtl.c (force_next_line_note): Remove old location code.
9104         * profile.c (branch_prob): Remove old location code.
9105         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9106         LOC_LINE): Remove old-location variants.
9107         * langhooks.c (lhd_print_error_function): Remove old location
9108         code.
9109         * configure, config.in: Rebuilt.
9110         * configure.ac (--enable-mapped-location): Remove.
9111         * c-decl.c (c_init_decl_processing): Remove old location code.
9112         (finish_function): Likewise.
9113         * recog.c (decode_asm_operands): Remove old location code.
9114         * c-pch.c (c_common_read_pch): Remove old location code.
9115         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9116         variants.
9117         * gimple-low.c (lower_function_body): Remove old location code.
9118         * toplev.c (unknown_location): Remove.
9119         (push_srcloc): Remove old-location variant.
9120         (process_options): Remove old location code.
9121         (lang_dependent_init): Likewise.
9122         * input.h (UNKNOWN_LOCATION): Move definition.
9123         (location_t): Undeprecate.
9124         (source_locus): Remove.
9125         (location_from_locus): Remove.
9126         (struct location_s): Remove.
9127         Remove all old-location code.
9128         (input_line, input_filename): Remove.
9129         * final.c (final_scan_insn): Remove old location code.
9130         * diagnostic.c (diagnostic_build_prefix): Remove
9131         USE_MAPPED_LOCATION test.
9132         * tree.h (gimple_stmt) <locus>: Now a location_t.
9133         (tree_exp) <locus>: Likewise.
9134         (DECL_IS_BUILTIN): Remove old-location variant.
9135         (annotate_with_file_line, annotate_with_locus): Likewise.
9136         (expr_locus, set_expr_locus): Update.
9137         * tree.c (build1_stat): Remove old location code.
9138         (last_annotated_node): Remove.
9139         (annotate_with_file_line): Remove old-location variant.
9140         (annotate_with_locus): Likewise.
9141         (expr_location): Remove old location code.
9142         (set_expr_location): Likewise.
9143         (expr_has_location): Likewise.
9144         (expr_locus): Likewise.
9145         (set_expr_locus): Likewise.
9146         (expr_filename): Don't use location_from_locus.
9147         (expr_lineno): Likewise.
9148         * rtl-error.c (location_for_asm): Remove old location code.
9149         * c-lex.c (cb_line_change): Remove old location code.
9150         (fe_file_change): Likewise.
9151         (cb_def_pragma): Likewise.
9152         (c_lex_with_flags): Likewise.
9153         * gengtype.c (do_typedef): Don't special-case location types.
9154         (define_location_structures): Remove.
9155         (main): Don't call define_location_structures.
9156         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9157         code.
9158
9159 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9160
9161         PR 26264
9162         * builtins.def (BUILT_IN_STDARG_START): Remove.
9163         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9164         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9165         * tree-inline.c (inline_forbidden_p_1): Likewise.
9166         
9167 2008-02-26  Richard Guenther  <rguenther@suse.de>
9168
9169         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9170         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9171         (lookup_decl_from_uid): Declare.
9172         (remove_decl_from_map): Likewise.
9173         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9174         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9175         (decl_for_uid_map): New global hashtable mapping DECL_UID
9176         to the decl tree.
9177         (init_ttree): Allocate it.
9178         (insert_decl_to_uid_decl_map): New helper function.
9179         (make_node_stat): Insert new decls into the map.
9180         (copy_node_stat): Likewise.
9181         (lookup_decl_from_uid): New function.
9182         (remove_decl_from_map): Likewise.
9183         (print_decl_for_uid_map_statistics): New helper.
9184         (dump_tree_statistics): Call it.
9185
9186         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9187         (referenced_var_iterator): Adjust.
9188         (FOR_EACH_REFERENCED_VAR): Adjust.
9189         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9190         (num_referenced_vars): Adjust.
9191         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9192         (first_referenced_var): Remove.
9193         (end_referenced_vars_p): Likewise.
9194         (next_referenced_var): Likewise.
9195         (referenced_var_iterator_set): New helper function.
9196         * tree-dfa.c (referenced_var_lookup): Adjust.
9197         (referenced_var_check_and_insert): Likewise.
9198         (remove_referenced_var): Likewise.
9199         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9200         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9201         (verify_call_clobbering): Likewise.
9202         (verify_memory_partitions): Likewise.
9203         (init_tree_ssa): Allocate bitmap instead of hashtable for
9204         referenced_vars.
9205         (delete_tree_ssa): Adjust.
9206         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9207         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9208         (compute_tag_properties): Likewise.
9209         (set_initial_properties): Likewise.
9210         (find_partition_for): Likewise.
9211         (update_reference_counts): Likewise.
9212         (dump_may_aliases_for): Likewise.
9213         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9214         (add_call_clobber_ops): Likewise.
9215         (add_call_read_ops): Likewise.
9216         (get_asm_expr_operands): Likewise.
9217         * tree-into-ssa.c (dump_decl_set): Likewise.
9218         (update_ssa): Likewise.
9219         * tree-sra.c (scan_function): Likewise.
9220         (decide_instantiations): Likewise.
9221         (scalarize_parms): Likewise.
9222         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9223         (dsa_named_for): Likewise.
9224         * tree-ssa-structalias.c (update_alias_info): Likewise.
9225         (merge_smts_into): Likewise.
9226
9227 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9228
9229         PR 34351
9230         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9231         * c-opts.c (c_common_handle_option): Wall enables
9232         Wvolatile-register-var.
9233         * common.opt: Move Wvolatile-register-var to...
9234         * c.opt: ...here.
9235         
9236 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9237
9238         * common.opt (Wlarger-than=): New.
9239         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9240         -Wlarger-than=.
9241         * opts.c (common_handle_option): Handle -Wlarger-than=.
9242         * optc-gen.awk: Likewise.
9243         * opth-gen.awk: Likewise.
9244         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9245         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9246         
9247 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9248
9249         * c-common.c (match_case_to_enum_1): Add appropriate
9250         OPT_W* parameter to warning.
9251         (c_do_switch_warnings): Likewise.
9252         * c-typeck.c (warning_init): Add one more parameter following
9253         'warning' function.
9254         (push_init_level): Update call to warning_init.
9255         (pop_init_level): Likewise.
9256         (add_pending_init): Likewise.
9257         (output_init_element: Likewise.
9258
9259 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9260
9261         PR 28322
9262         * toplev.c (toplev_main): If there are warnings or error, print
9263         errors for ignored options.
9264         * opts.c (ignored_options): New static variable.
9265         (postpone_unknown_option_error): New.
9266         (print_ignored_options): New.
9267         (handle_option): Postpone errors for unknown -Wno-* options.
9268         * opts.h (print_ignored_options): Declare.
9269         
9270 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9271
9272         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9273         to "ghost".
9274
9275 2008-02-25  Richard Guenther  <rguenther@suse.de>
9276
9277         Revert:
9278         2008-02-25  Richard Guenther  <rguenther@suse.de>
9279
9280         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9281         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9282         (lookup_decl_from_uid): Declare.
9283         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9284         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9285         (decl_for_uid_map): New global hashtable mapping DECL_UID
9286         to the decl tree.
9287         (init_ttree): Allocate it.
9288         (insert_decl_to_uid_decl_map): New helper function.
9289         (make_node_stat): Insert new decls into the map.
9290         (copy_node_stat): Likewise.
9291         (lookup_decl_from_uid): New function.
9292         (print_decl_for_uid_map_statistics): New helper.
9293         (dump_tree_statistics): Call it.
9294
9295         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9296         (referenced_var_iterator): Adjust.
9297         (FOR_EACH_REFERENCED_VAR): Adjust.
9298         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9299         (num_referenced_vars): Adjust.
9300         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9301         (first_referenced_var): Remove.
9302         (end_referenced_vars_p): Likewise.
9303         (next_referenced_var): Likewise.
9304         (referenced_var_iterator_set): New helper function.
9305         * tree-dfa.c (referenced_var_lookup): Adjust.
9306         (referenced_var_check_and_insert): Likewise.
9307         (remove_referenced_var): Likewise.
9308         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9309         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9310         (verify_call_clobbering): Likewise.
9311         (verify_memory_partitions): Likewise.
9312         (init_tree_ssa): Allocate bitmap instead of hashtable for
9313         referenced_vars.
9314         (delete_tree_ssa): Adjust.
9315         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9316         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9317         (compute_tag_properties): Likewise.
9318         (set_initial_properties): Likewise.
9319         (find_partition_for): Likewise.
9320         (update_reference_counts): Likewise.
9321         (dump_may_aliases_for): Likewise.
9322         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9323         (add_call_clobber_ops): Likewise.
9324         (add_call_read_ops): Likewise.
9325         (get_asm_expr_operands): Likewise.
9326         * tree-into-ssa.c (dump_decl_set): Likewise.
9327         (update_ssa): Likewise.
9328         * tree-sra.c (scan_function): Likewise.
9329         (decide_instantiations): Likewise.
9330         (scalarize_parms): Likewise.
9331         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9332         (dsa_named_for): Likewise.
9333         * tree-ssa-structalias.c (update_alias_info): Likewise.
9334         (merge_smts_into): Likewise.
9335
9336 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9337
9338         PR fortran/29549
9339         * doc/invoke.texi (-fcx-limited-range): Document new option.
9340         * toplev.c (process_options): Handle -fcx-fortran-rules.
9341         * common.opt: Add documentation for -fcx-fortran-rules.
9342
9343 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9344
9345         PR c/35162
9346         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9347         actual behaviour and C99.
9348         
9349 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9350
9351         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9352         (ASM_CPU_POWER6_SPEC): Likewise.
9353         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9354         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9355         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9356
9357 2008-02-25  Richard Guenther  <rguenther@suse.de>
9358
9359         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9360         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9361         (lookup_decl_from_uid): Declare.
9362         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9363         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9364         (decl_for_uid_map): New global hashtable mapping DECL_UID
9365         to the decl tree.
9366         (init_ttree): Allocate it.
9367         (insert_decl_to_uid_decl_map): New helper function.
9368         (make_node_stat): Insert new decls into the map.
9369         (copy_node_stat): Likewise.
9370         (lookup_decl_from_uid): New function.
9371         (print_decl_for_uid_map_statistics): New helper.
9372         (dump_tree_statistics): Call it.
9373
9374         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9375         (referenced_var_iterator): Adjust.
9376         (FOR_EACH_REFERENCED_VAR): Adjust.
9377         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9378         (num_referenced_vars): Adjust.
9379         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9380         (first_referenced_var): Remove.
9381         (end_referenced_vars_p): Likewise.
9382         (next_referenced_var): Likewise.
9383         (referenced_var_iterator_set): New helper function.
9384         * tree-dfa.c (referenced_var_lookup): Adjust.
9385         (referenced_var_check_and_insert): Likewise.
9386         (remove_referenced_var): Likewise.
9387         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9388         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9389         (verify_call_clobbering): Likewise.
9390         (verify_memory_partitions): Likewise.
9391         (init_tree_ssa): Allocate bitmap instead of hashtable for
9392         referenced_vars.
9393         (delete_tree_ssa): Adjust.
9394         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9395         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9396         (compute_tag_properties): Likewise.
9397         (set_initial_properties): Likewise.
9398         (find_partition_for): Likewise.
9399         (update_reference_counts): Likewise.
9400         (dump_may_aliases_for): Likewise.
9401         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9402         (add_call_clobber_ops): Likewise.
9403         (add_call_read_ops): Likewise.
9404         (get_asm_expr_operands): Likewise.
9405         * tree-into-ssa.c (dump_decl_set): Likewise.
9406         (update_ssa): Likewise.
9407         * tree-sra.c (scan_function): Likewise.
9408         (decide_instantiations): Likewise.
9409         (scalarize_parms): Likewise.
9410         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9411         (dsa_named_for): Likewise.
9412         * tree-ssa-structalias.c (update_alias_info): Likewise.
9413         (merge_smts_into): Likewise.
9414
9415 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9416
9417         PR target/35258
9418         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9419         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9420         * alias.h (nonoverlapping_memrefs_p): Likewise.
9421
9422 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9423
9424         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9425         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9426         __emultls_get_address, __emultls_register_common,
9427         __floatundi?f, and _Unwind_GetIPInfo.
9428         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9429         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9430         (gen_regparm_prefix): Likewise.
9431         (i386_nlm_encode_section_info): Sync with
9432         config/i386/winnt.c:i386_pe_encode_section_info().
9433         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9434         i386_nlm_mangle_decl_assembler_name): New.
9435         (netware_override_options): New.
9436         * config/i386/netware.h (netware_override_options): Declare.
9437         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9438         (i386_nlm_mangle_decl_assembler_name): Declare.
9439         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9440
9441 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9442
9443         PR other/32948
9444         * c-decl.c (grokdeclarator): Remove unused local variables
9445         `typedef_type' and `type_as_written'.
9446         * bb-reorder.c
9447         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9448         unused local variable `has_hot_blocks'.
9449         (fix_crossing_conditional_branches): Remove unused local variable
9450         `prev_bb'.
9451         
9452 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9453
9454         PR middle-end/19984
9455         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9456         using DEF_C99_BUILTIN.
9457         (BUILT_IN_NANF): Ditto.
9458         (BUILT_IN_NANL): Ditto.
9459
9460 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9461             Revital Eres  <eres@il.ibm.com>
9462
9463         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9464         regarding the order of two dependent insns in the same row.
9465
9466 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9467
9468         * stor-layout.c (layout_decl): Do not bump the alignment of a
9469         bit-field to more than byte alignment if it is packed.
9470
9471 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9472
9473         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9474         e300c2 and e300c3.
9475
9476 2008-02-24  Diego Novillo  <dnovillo@google.com>
9477
9478         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9479
9480         PR 33738
9481         * tree-vrp.c (vrp_evaluate_conditional): With
9482         -Wtype-limits, emit a warning when comparing against a
9483         constant outside the natural range of OP0's type.
9484         * c.opt (Wtype-limits): Move ...
9485         * common.opt (Wtype-limits): ... here.
9486
9487 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9488
9489         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9490         * config/rs6000/e300c2c3.md: New file.
9491         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9492         e300c2 and e300c3.
9493         (rs6000_override_options): Add e300c2 and e300c3 cases to
9494         processor_target_table. Do not allow usage of Altivec or Spe
9495         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9496         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9497         * config/rs6000/rs6000.h (processor_type): Add
9498         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9499         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9500         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9501         and ppce300c3. Include e300c2c3.md.
9502
9503 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9504
9505         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9506         instead of TARGET_STRICT_ALIGN.
9507
9508 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9509
9510         * explow.c (memory_address): Assert that the generated address is
9511         valid.
9512
9513 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9514
9515         PR target/25477
9516         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9517         * config/darwin-ppc-ldouble-patch.def: New file.
9518         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9519         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9520         SUBTARGET_INIT_BUILTINS if defined.
9521         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9522         New functions.
9523
9524 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9525
9526         PR rtl-opt/33512
9527         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9528         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9529
9530 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9531
9532         PR pch/35027
9533         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9534         file" warning condtional on -Winvalid-PCH.
9535
9536 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9537
9538         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9539
9540 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9541
9542         PR target/22076
9543         PR target/34256 
9544         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9545         prevent reload from using MMX registers.
9546         (*mov<mode>_internal): Ditto.
9547         (*movv2sf_internal_rex64): Ditto.
9548         (*movv2sf_internal): Ditto.
9549
9550 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9551
9552         PR documentation/31569
9553         * doc/install.texi2html: Use makeinfo --no-number-sections.
9554
9555 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9556
9557         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9558         ensure that we can address an entire entity > 8 bytes.  Don't
9559         generate reg+reg addressing for such data.
9560
9561 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9562
9563         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9564         strings when optimizing for size, unless the target cares about
9565         alignment.
9566
9567 2008-02-22  Tom Tromey  <tromey@redhat.com>
9568
9569         * regclass.c (current_pass): Remove declaration.
9570
9571 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9572
9573         * config/avr/libgcc.S (__RAMPZ__): Define.
9574         (__do_copy_data): Add for devices with 128KB code memory.
9575
9576 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9577
9578         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9579         Use spe_abi.
9580         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9581
9582 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9583
9584         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9585         GENNONACR_REGS.
9586
9587 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9588
9589         PR c/19999
9590         * c-typeck.c (build_binary_op): Warn about floating point
9591         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9592
9593 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9594
9595         PR target/34526
9596         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9597         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9598         add vrsave.
9599         (rs6000_override_options): Set altivec_abi as default, not override,
9600         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9601         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9602         is used; use new member spe_abi.
9603         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9604         spe_abi and altivec_abi.
9605
9606 2008-02-22  Tomas Bily  <tbily@suse.cz>
9607
9608         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9609
9610 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9611
9612         PR bootstrap/35273
9613         * config.build (build_file_translate): Set to `CMD //c' only if
9614         it works.
9615         * Makefile.in (build_file_translate): Improve comment.
9616
9617 2008-02-21  Jan Hubicka  <jh@suse.cz>
9618
9619         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9620         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9621         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9622
9623 2008-02-21  Michael Matz  <matz@suse.de>
9624
9625         PR target/35264
9626         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9627
9628 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9629
9630         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9631         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9632         as insn constraint.
9633         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9634         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9635         SSE_VEC_FLOAT_MODE_P as insn constraint.
9636         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9637         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9638         sse4a_movntdf using MODEF mode iterator.
9639         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9640         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9641         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9642         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9643         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9644         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9645         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9646
9647 2008-02-21  Richard Guenther  <rguenther@suse.de>
9648
9649         * tree.def (PAREN_EXPR): New tree code.
9650         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9651         and PAREN_EXPR.
9652         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9653         * expr.c (expand_expr_real_1): Likewise.
9654         * tree-inline.c (estimate_num_insns_1): Likewise.
9655         * tree-complex.c (expand_complex_move): Likewise.
9656         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9657         as plain x.
9658
9659 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9660
9661         PR target/35225
9662         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9663
9664 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9665
9666         PR target/35190
9667         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9668
9669         * config/sh/sh.c (find_barrier): Don't go past
9670         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9671
9672 2008-02-20  DJ Delorie  <dj@redhat.com>
9673
9674         * config/h8300/h8300.md (insv): Force source operand to be a register.
9675
9676         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9677         as a jump, not as a plain insn.
9678         
9679 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9680
9681         * doc/invoke.texi (Warning Options): Add new option
9682         -Wframe-larger-than=.
9683         (-Wframe-larger-than): Document.
9684
9685         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9686         Add declarations for new option variables.
9687
9688         * final.c (final_start_function): Check the frame size
9689         before emission and issue a Wframe-larger-than warning.
9690
9691         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9692         Add definitions for new option variables.
9693         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9694
9695         * common.opt (Wframe-larger-than=): New option.
9696
9697 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9698
9699         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9700         (<sse>_div<mode>3): Ditto.
9701         (<sse>_vmdiv<mode>3): Ditto.
9702         (<sse>_vmsqrt<mode>2): Ditto.
9703         (*smax<mode>3): Ditto.
9704         (sse5_frcz<mode>2): Ditto.
9705         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9706         as insn constraint.
9707
9708 2008-02-20  Richard Guenther  <rguenther@suse.de>
9709
9710         PR middle-end/35265
9711         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9712         be happy with INTEGRAL_TYPE_P.
9713
9714 2008-02-20  Richard Guenther  <rguenther@suse.de>
9715
9716         * fold-const.c (split_tree): Associate floatig-point expressions
9717         if flag_associative_math is set.
9718
9719 2008-02-20  Richard Guenther  <rguenther@suse.de>
9720
9721         * tree.h (fold_real_zero_addition_p): Declare.
9722         * fold-const.c (fold_real_zero_addition_p): Export.
9723         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9724         floating-point operations with zero and one.
9725
9726 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9727
9728         * doc/install.texi: Correct references to CFLAGS, replacing them
9729         with BOOT_CFLAGS.  Document flags used during bootstrap for
9730         target libraries.
9731                                 
9732 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9733
9734         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9735         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9736         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9737         insn constraint.
9738         (smin<mode>3): Ditto from similar patterns.
9739         (smax<mode>3): Ditto.
9740         (*ieee_smin<mode>3): Ditto.
9741         (*ieee_smax<mode>3): Ditto.
9742         * config/i386/sse.md (sse): New mode attribute.
9743         (mov<mode>): Macroize expander from movv4sf and movv2df using
9744         SSEMODEF2P mode iterator.
9745         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9746         SSE_VEC_FLOAT_MODE_P as insn constraint.
9747         (storent<mode>): Ditto.
9748         (storent<mode>): Macroize expander from storentsf and storentdf using
9749         MODEF mode iterator.
9750         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9751         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9752         (abs<mode>2): Ditto from similar patterns.
9753         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9754         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9755         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9756         (<sse>_vmsqrt<mode>2): Ditto.
9757         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9758         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9759         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9760         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9761         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9762         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9763         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9764         insn constraint.
9765         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9766         iterator and SSE_FLOAT_MODE_P as insn constraint.
9767         (<sse>_ucomi): Ditto from similar patterns.
9768         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9769         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9770         SSE_VEC_FLOAT_MODE_P as insn constraint.
9771         (vcond<mode>): Ditto from similar patterns.
9772         (and<mode>3, *and<mode>3): Ditto.
9773         (<sse>_nand<mode>3): Ditto.
9774         (ior<mode>3, *ior<mode>3): Ditto.
9775         (xor<mode>3, *xor<mode>3): Ditto.
9776         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9777         iterator and SSE_FLOAT_MODE_P as insn constraint.
9778         (*nand<mode>3): Ditto from similar patterns.
9779         (*ior<mode>3): Ditto.
9780         (*xor<mode>3): Ditto.
9781
9782 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9783
9784         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9785         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9786         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9787
9788 2008-02-19  Jan Hubicka  <jh@suse.cz>
9789
9790         * predict.c (tree_bb_level_predictions): Remove variable next
9791         mistakely introduced by previous commit.
9792
9793 2008-02-19  Jan Hubicka  <jh@suse.cz>
9794
9795         * predict.c (predict_paths_leading_to): Rewrite.
9796         (predict_paths_for_bb): New.
9797         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9798
9799 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9800
9801         PR bootstrap/35218
9802         * Makefile.in (build_file_translate): New.
9803         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9804         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9805         * configure.ac (build_file_translate): Substitute it.
9806         * configure: Regenerate.
9807
9808 2008-02-19  Jan Hubicka  <jh@suse.cz>
9809
9810         PR rtl-optimization/34408
9811         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9812         invalid sharing.
9813
9814 2008-02-19  Jan Hubicka  <jh@suse.cz>
9815
9816         PR middle-end/28779
9817         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9818         call_expr.
9819
9820 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9821
9822         PR Ada/35186
9823         * config/i386/i386-modes.def: Revert the last DI alignment
9824         change until Ada people can look into it.
9825
9826 2008-02-19  Nick Clifton  <nickc@redhat.com>
9827
9828         * opts.c (print_specific_help): Fix typo in --help text.
9829
9830 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9831
9832         PR target/35239
9833         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9834         32-bit inline asm without asm alternatives for host GCC < 3.0.
9835
9836 2008-02-19  Richard Guenther  <rguenther@suse.de>
9837
9838         PR tree-optimization/34989
9839         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9840         Allow propagation to INDIRECT_REF if we can simplify only.
9841
9842 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9843
9844         * c-common.c (warn_for_collisions_1): Use appropriate option when
9845         warning.
9846
9847 2008-02-19  Nick Clifton  <nickc@redhat.com>
9848
9849         PR other/31349
9850         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9851         (handle_options): Fix indentation.
9852         (print_filtered_help): If no language-specific options were
9853         displayed tell the user how to list all the options supported by
9854         the language's front-end.
9855         (print_specific_help): Fix indentation and remove duplicate line.
9856         (common_handle_option): Handle the -v option.
9857         For --help enable the display of undocumented options if the -v
9858         switch has been included on the command line.
9859         For --help= check for overlaps in the arguments between the option
9860         classes and the language names and issue a warning when they
9861         cannot be disambiguated.
9862         * c.opt (v): Pass on to the common option handler.
9863
9864 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9865
9866         * modulo-sched.c (sms_schedule): Change dump message when
9867         create_ddg function fails.
9868         (try_scheduling_node_in_cycle): Rename row to cycle.
9869         (print_partial_schedule): Rename CYCLE to ROW.
9870
9871 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9872             Zdenek Dvorak  <ook@ucw.cz>
9873
9874         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9875
9876 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9877
9878         PR target/33555
9879         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9880         (*x86_movdicc_0_m1_se): Ditto.
9881
9882 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9883
9884         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9885         (CMPtype): Define as __gcc_CMPtype.
9886         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9887         (CMPtype): Define as __gcc_CMPtype.
9888
9889 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9890
9891         Support valgrind 3.3 for --enable-checking=valgrind.
9892         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9893         here.
9894         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9895         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9896         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9897         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9898         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9899         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9900         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9901         respectively.
9902         * ggc-zone.c: Similar.
9903         * ggc-page.c: Similar.
9904
9905 2008-02-19  Paul Brook  <paul@codesourcery.com>
9906
9907         PR target/35071
9908         * config/arm/ieee754-df.S: Fix do_it typo.
9909         * config/arm/ieee754-sf.S: Fix do_it typo.
9910
9911 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9912
9913         PR target/35189
9914         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9915         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9916         (OPTION_MASK_ISA_SSE_SET): Likewise.
9917         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9918         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9919         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9920         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9921         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9922         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9923         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9924         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9925         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9926         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9927         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9928         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9929         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9930         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9931         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9932         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9933         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9934         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9935         (OPTION_MASK_ISA_SSE4): Removed.
9936         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9937         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9938         (override_options): Don't turn on implied SSE/MMX bits in
9939         ix86_isa_flags.
9940
9941 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9942
9943         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9944         32bit host.
9945
9946 2008-02-18  Joey Ye  <joey.ye@intel.com>
9947
9948         PR middle-end/34921
9949         * tree-nested.c (insert_field_into_struct): Set type alignment
9950         to field alignment if the former is less than the latter.
9951
9952 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9953
9954         * BASE-VER: Set to 4.4.0.
9955
9956 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9957
9958         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9959         * doc/cfg.texi: Likewise.
9960         * doc/extend.texi: Likewise.
9961         * doc/gty.texi: Likewise.
9962         * doc/invoke.texi: Likewise.
9963         * doc/loop.texi: Likewise.
9964         * doc/md.texi: Likewise.
9965         * doc/passes.texi: Likewise.
9966         * doc/rtl.texi: Likewise.
9967         * doc/sourcebuild.texi: Likewise.
9968         * doc/tm.texi: Likewise.
9969         * doc/tree-ssa.texi: Likewise.
9970
9971 2008-02-17  Richard Guenther  <rguenther@suse.de>
9972
9973         PR middle-end/35227
9974         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9975         without default definition.
9976
9977 2008-02-17  Richard Guenther  <rguenther@suse.de>
9978
9979         PR tree-optimization/35231
9980         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9981         if A | B != 1.
9982
9983 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9984
9985         Revert:
9986         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9987         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9988         libgcc_cmp_return mode.
9989
9990 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9991
9992         PR c/28368
9993         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9994
9995 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9996
9997         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9998         multilibs.
9999
10000 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10001
10002         * doc/c-tree.texi: Use `@.' where appropriate.
10003         * doc/extend.texi: Likewise.
10004         * doc/install.texi: Likewise.
10005         * doc/invoke.texi: Likewise.
10006         * doc/loop.texi: Likewise.
10007         * doc/makefile.texi: Likewise.
10008         * doc/md.texi: Likewise.
10009         * doc/passes.texi: Likewise.
10010         * doc/standards.texi: Likewise.
10011         * doc/tm.texi: Likewise.
10012
10013 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10014
10015         PR middle-end/35196
10016         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10017         in entry_bb.
10018         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10019         rather than in entry_bb.
10020
10021 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10022
10023         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10024         libgcc_cmp_return mode.
10025
10026 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10027
10028         PR middle-end/35130
10029         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10030         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10031
10032 2008-02-15  Richard Guenther  <rguenther@suse.de>
10033             Zdenek Dvorak  <ook@ucw.cz>
10034
10035         PR tree-optimization/35164
10036         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10037         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10038         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10039         Only propagate addresses which do not have abnormal SSA_NAMEs
10040         in their operands.
10041
10042 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10043
10044         PR target/35088
10045         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10046
10047 2008-02-15  Jan Hubicka  <jh@suse.cz>
10048
10049         PR middle-end/35149
10050         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10051
10052 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10053
10054         PR middle-end/34621
10055         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10056         when calculating alignment_pad.
10057
10058 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10059
10060         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10061         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10062         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10063         and STACK_BOUNDARY define.
10064
10065 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10066
10067         PR preprocessor/35061
10068         * c-pragma.c (handle_pragma_pop_macro): Check that
10069         pushed_macro_table has been allocated.
10070
10071 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10072
10073         PR middle-end/35136
10074         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10075         (force_gimple_operand): Likewise.
10076         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10077         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10078         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10079         (find_interesting_uses_address): Check addressability and alignment
10080         of the base expression only after substituting bases of IVs into it.
10081
10082 2008-02-14  Michael Matz  <matz@suse.de>
10083
10084         PR target/34930
10085         * function.c (instantiate_virtual_regs_in_insn): Reload address
10086         before falling back to reloading the whole operand.
10087
10088 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10089
10090         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10091         before the first section switch note.
10092
10093 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10094
10095         * doc/bugreport.texi: Update copyright years.
10096         * doc/c-tree.texi: Likewise.
10097         * doc/cfg.texi: Likewise.
10098         * doc/cpp.texi: Likewise.
10099         * doc/cppinternals.texi: Likewise.
10100         * doc/fragments.texi: Likewise.
10101         * doc/frontends.texi: Likewise.
10102         * doc/gcc.texi: Likewise.
10103         * doc/gty.texi: Likewise.
10104         * doc/hostconfig.texi: Likewise.
10105         * doc/implement-c.texi: Likewise.
10106         * doc/libgcc.texi: Likewise.
10107         * doc/loop.texi: Likewise.
10108         * doc/makefile.texi: Likewise.
10109         * doc/options.texi: Likewise.
10110         * doc/passes.texi: Likewise.
10111         * doc/rtl.texi: Likewise.
10112         * doc/sourcebuild.texi: Likewise.
10113         * doc/standards.texi: Likewise.
10114         * doc/tree-ssa.texi: Likewise.
10115         * doc/trouble.texi: Likewise.
10116
10117         * doc/extend.texi: Use @: or add comma where appropriate.
10118         * doc/invoke.texi: Likewise.
10119         * doc/tm.texi: Likewise.
10120
10121 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10122
10123         PR target/34393
10124         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10125         to a reg.
10126
10127 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10128
10129         * doc/md.texi (clz, ctz): Add reference.
10130         * doc/rtl.texi (clz, ctz): Likewise.
10131
10132 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10133
10134         PR other/35148
10135         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10136         srcdir.
10137
10138 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10139
10140         * config/s390/s390.c (struct constant_pool): New field
10141         emit_pool_after added.
10142         (s390_mainpool_start): Set the emit_pool_after flag according
10143         to the section switch notes.
10144         (s390_mainpool_finish): Consider emit_pool_after when emitting
10145         the literal pool at the end of the function.
10146         (s390_chunkify_start): Force literal pool splits at section
10147         switch notes.
10148
10149 2008-02-13  Michael Matz  <matz@suse.de>
10150
10151         PR debug/35065
10152         * var-tracking.c (clobber_variable_part): Correctly traverse the
10153         list.
10154
10155 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10156
10157         PR 29673
10158         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10159         Add -fdump-ipa-inline.
10160         * tree-dump.c (dump_files): Remove tree-inlined dump.
10161         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10162         
10163 2008-02-12  Richard Guenther  <rguenther@suse.de>
10164
10165         PR tree-optimization/35171
10166         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10167         default defs.
10168
10169 2008-02-12  Richard Guenther  <rguenther@suse.de>
10170
10171         PR middle-end/35163
10172         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10173         value-preserving mode.  Disallow final truncation.
10174
10175 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10176
10177         PR middle-end/35136
10178         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10179         code from here to...
10180         (force_gimple_operand): ...here.
10181
10182 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10183
10184         PR c++/35144
10185         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10186         non-compatible pointers.
10187         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10188         different FIELD_DECLs, try harder by comparing field offsets, sizes
10189         and types.
10190
10191         PR inline-asm/35160
10192         * function.c (match_asm_constraints_1): Don't replace the same input
10193         multiple times.
10194
10195 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10196
10197         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10198         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10199         (expand_epilogue): Restore RAMPZ register.
10200         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10201
10202 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10203
10204         * config/i386/cygwin.asm: (__alloca): Correct calling
10205         convention and alignment.
10206         (__chkstk): Force 8 byte stack alignment.
10207
10208 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10209             Richard Guenther  <rguenther@suse.de>
10210
10211         PR tree-optimization/33992
10212         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10213         the zero we compare against.
10214
10215 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10216
10217         PR libfortran/35063
10218         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10219         to CloseHandle after unlocking to prevent accumulation of handle
10220         count.
10221
10222 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10223
10224         PR middle_end/34150
10225         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10226         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10227         and update LABEL_NUSES during and after reload.
10228
10229 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10230
10231         PR middle-end/34627
10232         * combine.c (simplify_if_then_else): Make sure the comparison is
10233         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10234
10235 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10236
10237         PR bootstrap/35051
10238         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10239         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10240         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10241         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10242         * tree.h (get_type_static_bounds): Likewise.
10243
10244 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10245
10246         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10247         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10248         Make -Wfoo language annotations match what the compiler outputs.
10249
10250 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10251
10252         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10253         intrinsics spu_convts, spu_convtu, spu_convtf.
10254
10255 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10256
10257         * doc/extend.texi (Function Attributes) <noinline>: Mention
10258         asm ("") as method to keep calls.
10259
10260 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10261
10262         PR other/32754
10263         * doc/options.texi (Options): Replace references to opts.sh with
10264         optc-gen.awk.
10265         * opts-common.c: Likewise.
10266         * optc-gen.awk: Likewise.
10267         
10268 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10269
10270         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10271
10272 2008-02-07  Richard Henderson  <rth@redhat.com>
10273
10274         PR rtl-opt/33410
10275         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10276         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10277         funny mode.
10278
10279 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10280
10281         PR tree-optimization/35085
10282         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10283         for operand entry oe2 in addition to operand entry oe3 in order to
10284         expose more opportunities for vectorizer sum reduction.
10285
10286 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10287
10288         PR other/35107
10289         * Makefile.in (LIBS): Remove $(GMPLIBS).
10290         (cc1-dummy, cc1): Add $(GMPLIBS).
10291
10292 2008-02-06  Jan Hubicka  <jh@suse.cz>
10293
10294         PR target/23322
10295         * i386.md (moddf_integer): Do not produce partial memory stalls for
10296         targets where it hurts.
10297
10298 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10299
10300         PR target/35083
10301         * optabs.c (expand_float): Do not check for decimal modes when
10302         expanding unsigned integer through signed conversion.
10303
10304 2008-02-06  Nick Clifton  <nickc@redhat.com>
10305
10306         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10307         inside the clobber with a match_operand and duplicated operand
10308         number in the constraint.
10309         (ineqbranchsi): Delete redundant comment.
10310
10311 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10312
10313         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10314         builtin_define ("__USE_INIT_FINI__").
10315         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10316         -msx multilibs.
10317         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10318
10319 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10320
10321         PR documentation/30330
10322         * doc/invoke.texi (C++ Dialect Options)
10323         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10324         For each warning option -Wfoo that allows -Wno-foo, ensure both
10325         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10326         entry of -Wswitch-default, index -Wnormalized= including the
10327         `=', and -Wlarger-than-@var{len} including @var{len}.
10328
10329 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10330
10331         * config/i386/i386.md (floatunssisf2): Use
10332         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10333         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10334         Macroize expander using MODEF mode iterator.
10335
10336 2008-02-05  Diego Novillo  <dnovillo@google.com>
10337
10338         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10339
10340         PR 33738
10341         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10342
10343 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10344
10345         PR other/35070
10346         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10347
10348 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10349
10350         PR target/35084
10351         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10352         to indicate if a message should be generated.
10353         (init_cumulative_args): Updated.
10354         (function_value_32): Likewise.
10355
10356 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10357
10358         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10359
10360 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10361
10362         PR target/35083
10363         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10364         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10365
10366 2008-02-04  Diego Novillo  <dnovillo@google.com>
10367
10368         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10369
10370         PR 33738
10371         * tree-vrp.c (vrp_evaluate_conditional): With
10372         -Wtype-limits, emit a warning when comparing against a
10373         constant outside the natural range of OP0's type.
10374
10375 2008-02-04  Richard Guenther  <rguenther@suse.de>
10376
10377         PR middle-end/33631
10378         * expr.c (count_type_elements): Give for unions instead of
10379         guessing.
10380
10381 2008-02-04  Richard Guenther  <rguenther@suse.de>
10382
10383         PR middle-end/35043
10384         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10385         to TYPE_DOMAINs base type instead of using bitsizetype here.
10386
10387 2008-02-03  Jason Merrill  <jason@redhat.com>
10388
10389         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10390
10391 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10392
10393         PR other/29972
10394         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10395         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10396         (RS/6000 and PowerPC Options): Fix typos and markup.
10397         * doc/passes.texi (Tree-SSA passes): Likewise.
10398
10399 2008-02-02  Michael Matz  <matz@suse.de>
10400
10401         PR target/35045
10402         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10403         from record_last_reg_set_info.
10404         (record_last_reg_set_info): Take an RTX argument, iterate over all
10405         constituent hardregs.
10406         (record_last_set_info, record_opr_changes): Change calls to
10407         new signature or to record_last_reg_set_info_regno.
10408
10409 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10410
10411         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10412
10413 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10414
10415         PR rtl-optimization/34773
10416         * reg-notes.def (EQUAL): Mention significance of combination of
10417         REG_EQUAL and REG_RETVAL.
10418         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10419         insn that has a REG_RETVAL.
10420
10421 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10422
10423         PR bootstrap/33781
10424         * configure.ac (--enable-fixed-point): Disable unless explicitly
10425         requested on IRIX.
10426         * configure: Regenerate.
10427
10428 2008-02-01  Richard Guenther  <rguenther@suse.de>
10429
10430         PR other/35042
10431         * invoke.texi (-finline-limit): Remove no longer true parts
10432         of the documentation.  Note that there is no default value.
10433
10434 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10435             Mark Mitchell  <mark@codesourcery.com>
10436             Ben Elliston  <bje@au.ibm.com>
10437
10438         PR c/29326
10439         * doc/extend.texi (Other Builtins): Document.
10440
10441 2008-01-31  Tom Browder <tom.browder@gmail.com>
10442
10443         * doc/c-tree.texi (Types): Fix grammar.
10444         (Expression trees): Ditto.
10445         * doc/passes.texi (Tree-SSA passes): Ditto.
10446         
10447         * doc/configterms.texi (Configure Terms): Fix typo.
10448         * doc/cpp.texi (Common Predefined Macros): Ditto.
10449         * doc/md.texi (Machine Constraints): Ditto.
10450         
10451         * doc/makefile.texi (Makefile): Add comma.
10452
10453 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10454             Gerald Pfeifer  <gerald@pfeifer.com>
10455         
10456         * doc/sourcebuild.texi (Front End): Remove references to CVS
10457         and CVSROOT/modules.
10458         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10459         (Back End): Remove reference to CVS.
10460
10461 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10462
10463         PR target/34900
10464         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10465         comment from...
10466         (mips16_gp_pseudo_reg): ...here.
10467         * config/mips/mips.md (load_const_gp): Replace with...
10468         (load_const_gp_<mode>): ...this :P-based insn.
10469
10470 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10471
10472         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10473         options. Minor fixes.
10474         (-std): Move reference to standards closer to where language
10475         standards are first mentioned.
10476         
10477 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10478
10479         PR rtl-optimization/34995
10480         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10481         parameter and return a bool.  If the rtx parameter is nonnull,
10482         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10483         (find_reloads): Update call accordingly.  Pass the new operand
10484         if it needed no address reloads, otherwise pass null.
10485
10486 2008-01-30  Richard Henderson  <rth@redhat.com>
10487
10488         PR c/34993
10489         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10490         for unbounded arrays.
10491
10492 2008-01-30  Silvius Rus  <rus@google.com>
10493
10494         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10495
10496 2008-01-30  Jan Hubicka  <jh@suse.cz>
10497
10498         PR target/34982
10499         * i386.c (init_cumulative_args): Use real function declaration when
10500         calling locally.
10501
10502 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10503
10504         PR rtl-optimization/34998
10505         * global.c (build_insn_chain): Treat non-subreg_lowpart
10506         SUBREGs of pseudos as clobbering all the words covered by the
10507         SUBREG, not just all the bytes.
10508         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10509         original df_ref rather than an extract parameter.
10510         (global_conflicts): Update call accordingly.
10511
10512 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10513
10514         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10515         the overflow check to make it easier to read.
10516         (__fixtfdi): Change the type of the ll member in union
10517         long_double to UDItype_x.
10518
10519 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10520
10521         PR middle-end/34969
10522         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10523         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10524         * tree-inline.c (fold_marked_statements): Call
10525         cgraph_update_edges_for_call_stmt if folding a call statement.
10526         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10527         debug_generic_stmt calls, reset it back afterwards.
10528
10529         PR c/35017
10530         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10531         static decls.
10532         * c-typeck.c (build_external_ref): Don't pedwarn about
10533         static vars in current function's scope.
10534
10535 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10536
10537         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10538
10539 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10540
10541         PR c/35002
10542         * ipa-struct-reorg.c: Fix spelling.
10543         * params.def: Ditto.
10544
10545 2008-01-29  Richard Guenther  <rguenther@suse.de>
10546
10547         PR middle-end/35006
10548         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10549         field.
10550         * tree-inline.c (remap_type): Increment remapping_type_depth
10551         around remapping types.
10552         (copy_body_r): Only add referenced variables if they are referenced
10553         from code, not types.
10554
10555 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10556
10557         PR c++/34055
10558         PR c++/34103
10559         PR c++/34219
10560         PR c++/34606
10561         PR c++/34753
10562         PR c++/34754
10563         PR c++/34755
10564         PR c++/34919
10565         PR c++/34961
10566         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10567         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10568
10569 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10570
10571         PR target/34412
10572         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10573         pointer for tiny stack.
10574
10575 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10576
10577         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10578
10579 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10580
10581         * config/vx-common.h: Fix typo in comment.
10582
10583 2008-01-28  Ian Lance Taylor  <iant@google.com>
10584
10585         PR c++/34862
10586         PR c++/33407
10587         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10588         coalesce pointers if they have different DECL_NO_TBAA_P values.
10589         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10590         between variables with different DECL_NO_TBAA_P values.
10591
10592 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10593
10594         PR 31535
10595         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10596         are not legitimate small data references on SPE targets.
10597
10598 2008-01-28  David Daney  <ddaney@avtrex.com>
10599
10600         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10601
10602 2008-01-28  David Daney  <ddaney@avtrex.com>
10603
10604         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10605
10606 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10607
10608         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10609         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10610         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10611         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10612         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10613         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10614         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10615         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10616
10617 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10618
10619         * basic-block.h (condjump_equiv_p): Fix comment.
10620
10621 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10622
10623         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10624         print_generic_stmt_indented): Fix comment.
10625
10626 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10627
10628         * configure.ac (__stack_chk_fail): Add detecion for availability
10629         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10630         * configure: Regenerate.
10631
10632 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10633
10634         PR middle-end/34688
10635         * final.c (output_addr_const): Handle TRUNCATE.
10636
10637 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10638
10639         PR target/34711
10640         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10641         (zero_cost, infinite_cost): New constants.
10642         (struct cost_pair): Change type of cost to comp_cost.
10643         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10644         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10645         New functions.
10646         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10647         split_address_cost, ptr_difference_cost, difference_cost,
10648         get_computation_cost_at, get_computation_cost,
10649         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10650         determine_use_iv_cost_condition, determine_use_iv_costs,
10651         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10652         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10653         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10654         Change type of cost to comp_cost.
10655         (determine_iv_cost): Increase cost of non-original ivs, instead
10656         of decreasing the cost of original ones.
10657         (get_address_cost): Indicate the complexity of the addressing mode 
10658         in comp_cost.
10659         (try_add_cand_for): Prefer using ivs not specific to some object.
10660         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10661
10662 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10663             Janis Johnson  <janis187@us.ibm.com>
10664
10665         PR target/34814
10666         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10667         (TARGET_INSTANTIATE_DECLS): Likewise.
10668         * target.h (expand_to_rtl_hook): New target hook.
10669         (instantiate_decls): Likewise.
10670         * function.c (instantiate_decl): Make non-static.  Rename to...
10671         (instantiate_decl_rtl): ... this.
10672         (instantiate_expr): Use instantiate_decl_rtl.
10673         (instantiate_decls_1): Likewise.
10674         (instantiate_decls): Likewise.
10675         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10676         * function.h (instantiate_decl_rtl): Add prototype.
10677         * cfgexpand.c (target.h): New include.
10678         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10679         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10680         (TARGET_INSTANTIATE_DECLS): Likewise.
10681         (TARGET_INITIALIZER): New target hooks added.
10682         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10683         New prototype.
10684         * config/rs6000/rs6000.c (tree-flow.h): New include.
10685         (machine_function): Add sdmode_stack_slot field.
10686         (rs6000_alloc_sdmode_stack_slot): New function.
10687         (rs6000_instantiate_decls): Likewise.
10688         (rs6000_secondary_memory_needed_rtx): Likewise.
10689         (rs6000_check_sdmode): Likewise.
10690         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10691         (TARGET_INSTANTIATE_DECLS): Likewise.
10692         (rs6000_hard_regno_mode_ok): Allow SDmode.
10693         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10694         (rs6000_emit_move): Handle SDmode.
10695         (function_arg_advance): Likewise.
10696         (function_arg): Likewise.
10697         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10698         SDmode var args for 32-bit compiles.
10699         (rs6000_secondary_reload_class): Handle SDmode.
10700         (rs6000_output_function_epilogue): Likewise.
10701         (rs6000_function_value): Simplify if statement.
10702         (rs6000_libcall_value): Likewise.
10703         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10704         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10705         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10706         (movsd_hardfloat): New define_insn.
10707         (movsd_softfloat): Likewise.
10708         (movsd_store): Likewise.
10709         (movsd_load): Likewise.
10710         (extendsddd2): Likewise.
10711         (extendsdtd2): Likewise.
10712         (truncddsd2): Likewise.
10713         (movdd_hardfloat64): Fixup comment.
10714         (UNSPEC_MOVSD_LOAD): New constant.
10715         (UNSPEC_MOVSD_STORE): Likewise.
10716
10717 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10718
10719         PR c++/34965
10720         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10721         TRUTH_XOR_EXPR.
10722         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10723         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10724         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10725         and TRUTH_XOR_EXPR.
10726
10727 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10728
10729         PR target/34794
10730         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10731         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10732         __LONGDOUBLE128 too.
10733         * config/rs6000/aix61.h: New file.
10734
10735 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10736
10737         PR rtl-optimization/34959
10738         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10739         popcount and parity rtxes the same mode as their operand.
10740         Truncate or extend the result to the return value's mode
10741         if necessary.
10742
10743 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10744
10745         PR target/34981
10746         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10747         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10748         to GOT_VERSION_REGNUM.
10749         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10750         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10751         * config/mips/mips.c (mips_emit_call_insn): New function.
10752         (mips_call_tls_get_addr): Call mips_expand_call directly.
10753         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10754         emit_call_insn.
10755         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10756         (mips_expand_call): Update the call to mips16_build_call_stub
10757         accordingly and a remove redundant condition.  Assert that MIPS16
10758         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10759         the call insn.
10760         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10761         TARGET_USE_GOT.
10762         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10763         (mips_avoid_hazard): Remove hazard_set handling.
10764         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10765         (UNSPEC_RESTORE_GP): ...this.
10766         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10767         (FAKE_CALL_REGNO): Rename to...
10768         (GOT_VERSION_REGNUM): ...this.
10769         (type): Add "ghost" value.  Add an associated insn reservation.
10770         (hazard_set): Remove.
10771         (exception_receiver): Rename to...
10772         (restore_gp): ...this and update the unspec identifier accordingly.
10773         (exception_receiver, nonlocal_got_receiver): New expanders.
10774         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10775         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10776         (set_got_version, update_got_version): New patterns.
10777
10778 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10779
10780         PR target/34970
10781         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10782
10783 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10784
10785         PR other/31955
10786         * doc/install.texi2html: Generate gcc-vers.texi.
10787
10788 2008-01-25  DJ Delorie  <dj@redhat.com>
10789
10790         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10791
10792 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10793
10794         * config/c4x: Remove directory.
10795         * config.gcc (crx-*, mt-*): Mark obsolete.
10796         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10797         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10798         sh-*-rtemscoff*): Remove cases.
10799         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10800         * real.c (encode_c4x_single, decode_c4x_single,
10801         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10802         c4x_extended_format): Remove.
10803         * real.h (c4x_single_format, c4x_extended_format): Remove.
10804         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10805         on C4x.
10806         (Pragmas): Remove comment about c4x pragmas.
10807         * doc/install.texi (c4x): Remove target-specific instructions.
10808         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10809         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10810         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10811         refer to C4x source files as examples.
10812         (C4X_FLOAT_FORMAT): Remove documentation.
10813
10814 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10815
10816         * config/bfin/bfin.c (override_options): Reorder tests so that
10817         flag_pic gets enabled for -msep-data.
10818
10819 2008-01-25  Richard Guenther  <rguenther@suse.de>
10820
10821         PR middle-end/32244
10822         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10823         to its bitfield precision if required.
10824
10825 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10826
10827         PR middle-end/33880
10828         * tree-nested.c (walk_omp_for): New function.
10829         (convert_nonlocal_reference, convert_local_reference): Call
10830         walk_omp_for on OMP_FOR.
10831         (convert_call_expr): Call walk_body on OMP_FOR's
10832         OMP_FOR_PRE_INIT_BODY.
10833
10834 2008-01-25  Richard Guenther  <rguenther@suse.de>
10835
10836         PR tree-optimization/34966
10837         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10838         default defs and PHI_NODEs we have to insert after the
10839         defining statement.
10840
10841 2008-01-24  Nick Clifton  <nickc@redhat.com>
10842
10843         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10844         Provide a default definition.
10845         (LIBGCC2_UNITS_PER_WORD): Likewise.
10846
10847         * config/stormy16/stormy16.c: Include df.h for the prototype
10848         for df_regs_ever_live_p.
10849         (xstormy16_expand_builtin_va_start): Convert the stack offset
10850         into a component_ref and then use POINTER_PLUS_EXPR to add it
10851         to the incoming_virtual_args_rtx.
10852         (xstormy16_gimplify_va_arg_expr): Rename to
10853         xstormy16_gimplify_va_arg_expr.
10854         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10855         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10856         xstormy16_gimplify_va_arg_expr.
10857         Fix up some formatting issues.
10858
10859         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10860         Move to predicates.md.
10861         (xs_hi_general_operand): Likewise.
10862         (xs_hi_nonmemory_operand): Likewise.
10863         * config/stormy16/predicates.md:
10864         (xstormy16_carry_plus_operand): New predicate.
10865         (xs_hi_general_operand): New predicate.
10866         (xs_hi_nonmemory_operand): New predicate.
10867         * config/stormy16/stormy16-protos.h:
10868         (xstormy16_carry_plus_operand): Delete prototype.
10869         (xs_hi_general_operand): Likewise.
10870         (xs_hi_nonmemory_operand): Likewise.
10871
10872         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10873         modifiers as they are no longer needed and they can trigger
10874         reload spill failures.
10875
10876         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10877         with a match_operand in order to help reload.
10878
10879         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10880         constraint with 'e' for the 8th alternative as this version of
10881         the mov.w instruction only accepts the lower 8 registers.
10882
10883 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10884
10885         PR target/34856
10886         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10887         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10888         vector elements.
10889
10890 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10891
10892         PR middle-end/33333
10893         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10894
10895 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10896
10897         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10898         New functions.
10899         (remove_structure): Update allocations list before removing structure.
10900         
10901 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10902
10903         * ipa-struct-reorg.c (is_safe_cond_expr, 
10904         create_new_stmts_for_cond_expr): Use integer_zerop function,
10905         that recognize not only zero-pointer, but zero-integer too.
10906
10907 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10908
10909         PR other/22232
10910         * fixproto: Escape "." in sed expression that strips leading "./".
10911
10912 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10913
10914         PR driver/34904
10915         * gcc.c (SWITCH_OK): Removed.
10916         (SWITCH_LIVE): Changed to bit.
10917         (SWITCH_FALSE): Likewise.
10918         (SWITCH_IGNORE): Likewise.
10919         (switchstr): Change live_cond to unsigned int.
10920         (process_command): Replace SWITCH_OK with 0.
10921         (do_self_spec): Likewise.
10922         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10923         (give_switch): Likewise.
10924         (used_arg): Likewise.
10925         (do_spec_1): Set the SWITCH_IGNORE bit.
10926         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10927         bits.  Set the SWITCH_LIVE bit.
10928
10929 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10930
10931         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10932
10933 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10934
10935         PR tree-optimization/34472
10936         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10937         parameter to a "bool *" and set *DATA to false if there is
10938         an unsafe access.  Do not delete the structure here.
10939         (check_cond_exprs): Delete it here instead.
10940         (check_cond_exprs, exclude_cold_structs): Do not increase
10941         I when removing a structure.
10942
10943 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10944
10945         PR target/34856
10946         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10947         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10948
10949 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10950
10951         PR middle-end/34934
10952         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10953         a fixed vector for stack.
10954
10955 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10956
10957         PR c++/25701
10958         * doc/gcc.texi (Software development): Add a direntry for g++.
10959         
10960 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10961
10962         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10963         stale and straggling -fforce-addr comments above.
10964
10965         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10966         define.
10967         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10968         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10969
10970 2008-01-23  Michael Matz  <matz@suse.de>
10971
10972         PR debug/34895
10973         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10974         gen_type_die.
10975
10976 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10977
10978         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10979         malloc result type.
10980
10981 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10982
10983         * config/avr/avr.c (avr_current_arch): New variable.
10984         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10985         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10986         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10987         (avr_override_options): Init 'avr_current_arch'. 
10988         (base_arch_s): Move from here...
10989         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10990         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10991         'mega' to 'have_jmp_call'.
10992         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10993         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10994         macros.
10995         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10996         architectures.
10997         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10998         MULTILIB_MATCHES): (Ditto.).
10999
11000 2008-01-23  Richard Guenther  <rguenther@suse.de>
11001
11002         PR middle-end/31529
11003         * cgraphunit.c (cgraph_reset_node): Always mark the node
11004         not reachable if it is not queued already.
11005
11006 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11007
11008         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11009         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11010         (cputype_selected): New static variable.
11011         (bfin_handle_option): Set it if -mcpu is used.
11012         (override_option): Select default set of workarounds if no cpu type
11013         selected on the command line.
11014         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11015
11016         From  Michael Frysinger  <michael.frysinger@analog.com>
11017         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11018         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11019
11020         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11021         for bf547, bf523, bf524, and bf526.
11022         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11023         bf526.
11024         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11025         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11026         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11027         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11028         * doc/invoke.texi (Blackfin Options): Document that
11029         -mcpu now accept bf547, bf523, bf524, and bf526.
11030
11031 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11032
11033         PR rtl-optimization/34628
11034         * combine.c (try_combine): Stop and undo after the first combination
11035         if an autoincrement side-effect on the first insn has effectively
11036         been lost.
11037
11038 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11039
11040         PR target/34529
11041         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11042         Offset addresses are not valid for Altivec or paired float modes.
11043
11044 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11045
11046         PR c++/34607
11047         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11048         if DECL_INITIAL (decl) is error_mark_node.
11049
11050         PR c++/34914
11051         * c-common.c (handle_vector_size_attribute): Only allow
11052         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11053         the same way as pointer, array etc. types.
11054         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11055
11056         PR c++/34917
11057         * tree.c (build_type_attribute_qual_variant): Call
11058         build_qualified_type if attributes are equal, but quals are not.
11059
11060 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11061
11062         PR 32102
11063         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11064         * flags.h (warn_strict_aliasing): Remove.
11065         (warn_strict_overflow): Remove.
11066         * opts.c (warn_strict_aliasing): Remove.
11067         (warn_strict_overflow): Remove.
11068         * c-opts.c (c_common_handle_option): -Wall only sets
11069         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11070         (c_common_post_options): Give default values to -Wstrict-aliasing
11071         and -Wstrict-overflow if they are uninitialized.
11072         * common.opt (Wstrict-aliasing): Specify Var and Init.
11073         (Wstrict-overflow): Likewise.
11074
11075 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11076
11077         PR rtl-optimization/26854
11078         PR rtl-optimization/34400
11079         PR rtl-optimization/34884
11080         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11081         DF_RD->gen.
11082         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11083         (df_rd_bb_info.expanded_lr_out): Deleted
11084         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11085         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11086         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11087         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11088         Removed code to allocate, initialize or free expanded_lr_out.
11089         (df_rd_bb_local_compute_process_def): Restructured to make more
11090         understandable.
11091         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11092         sets if the sets are being trimmed.
11093
11094 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11095
11096         PR bootstrap/32287
11097         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11098         (as_vers): Likewise.
11099         * configure: Regenerated.
11100
11101 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11102
11103         PR middle-end/33092
11104         * tree-pass.h (pass_build_alias): New pass.
11105         * tree-ssa-alias.c (gate_build_alias): New.
11106         (pass_build_alias): New.
11107         * passes.c (init_optimization_passes): Add pass_build_alias after
11108         pass_create_structure_vars.
11109
11110 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11111
11112         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11113         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11114         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11115         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11116         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11117         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11118         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11119         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11120         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11121         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11122         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11123         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11124         * config/s390/s390.md (FP_ALL): New mode iterator.
11125         (_d): New mode attribute.
11126         ("*signbit<mode>2>"): Changed mode of first operand.
11127         ("isinf<mode>2"): Changed mode of first operand.
11128         ("*TDC_insn"): Adaptation for DFP modes.
11129
11130 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11131
11132         * tree.c (check_qualified_type): Improve function description.
11133
11134 2008-01-21  Jason Merrill  <jason@redhat.com>
11135
11136         PR c++/34196
11137         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11138         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11139         if it is set.
11140
11141 2008-01-21  DJ Delorie  <dj@redhat.com>
11142
11143         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11144         return zero.
11145
11146 2008-01-21  Richard Guenther  <rguenther@suse.de>
11147
11148         PR middle-end/34856
11149         * tree-cfg.c (verify_expr): Allow all invariant expressions
11150         instead of just constant class ones as reference argument.
11151         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11152         like any other constant.
11153         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11154
11155 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11156
11157         * regmove.c (fixup_match_1): Update call crossed frequencies.
11158
11159 2008-01-21  Richard Guenther  <rguenther@suse.de>
11160
11161         PR c/34885
11162         * tree-inline.c (setup_one_parameter): Deal with mismatched
11163         types using a VIEW_CONVERT_EXPR.
11164
11165 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11166             Olga Golovanevsky  <olga@il.ibm.com>
11167         
11168         PR tree-optimization/34701
11169         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11170         when the structure size is not a power of 2.
11171
11172 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11173
11174         * doc/install.texi: Add doc for --enable-checking=df.
11175         
11176 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11177
11178         PR rtl-optimization/34808
11179         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11180
11181 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11182
11183         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11184         input.
11185
11186 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11187
11188         PR rtl-optimization/26854
11189         PR rtl-optimization/34400
11190         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11191         DF_RD->gen.
11192         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11193         (df_rd_bb_info.expanded_lr_out): New.
11194         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11195         * loop_iv.c (iv_analysis_loop_init): Ditto.
11196         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11197         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11198         Added code to allocate, initialize or free expanded_lr_out.
11199         (df_rd_bb_local_compute_process_def): Restructured to make
11200         more understandable.
11201         (df_rd_confluence_n): Add code to do nothing with fake edges and
11202         code to no apply invalidate_by_call sets if the sets are being trimmed.
11203         (df_lr_local_finalize): Renamed to df_lr_finalize.
11204         (df_live_local_finalize): Renamed to df_live_finalize.
11205
11206 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11207
11208         PR target/34831
11209         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11210         deciding whether to use reciprocal instructions.
11211
11212 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11213
11214         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11215         dwarf2out_note_section_used if cold_text_section is NULL.
11216
11217 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11218
11219         PR gcov-profile/34610
11220         * tree-cfg.c (make_edges): Mark both outgoing edges from
11221         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11222         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11223         from OMP_FOR and OMP_CONTINUE outgoing edges.
11224
11225         * tree-profile.c (tree_profiling): Return early if
11226         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11227         at the end.
11228         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11229         from cfun to child_cfun.
11230         * function.h (struct function): Add after_tree_profile bit.
11231
11232 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11233
11234         * config/avr/avr.S (_exit): Disable interrupt.
11235
11236 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11237             Steven Bosscher  <stevenb.gcc@gmail.com>
11238
11239         PR rtl-optimization/26854
11240         PR rtl-optimization/34400
11241         * df-problems.c (df_live_scratch): New scratch bitmap.
11242         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11243         (df_live_reset): Clear the proper bitmaps.
11244         (df_live_bb_local_compute): Only process the artificial defs once
11245         since the order is not important.
11246         (df_live_init): Init the df_live sets only with the variables
11247         found live by df_lr.
11248         (df_live_transfer_function): Use the df_lr sets to prune the
11249         df_live sets as they are being computed.  
11250         (df_live_free): Free df_live_scratch.
11251
11252 2008-01-18  Ian Lance Taylor  <iant@google.com>
11253
11254         * common.opt: Add fmerge-debug-strings.
11255         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11256         flag_merge_debug_strings rather than flag_merge_constants.
11257         * doc/invoke.texi (Option Summary): Mention
11258         -fmerge-debug-strings.
11259         (Debugging Options): Document -fmerge-debug-strings.
11260
11261 2008-01-18  Ian Lance Taylor  <iant@google.com>
11262
11263         PR c++/33407
11264         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11265         (struct tree_function_decl): Add new field operator_new_flag.
11266         * tree-inline.c (expand_call_inline): When inlining a call to
11267         operator new, force the return value to go into a variable, and
11268         set DECL_NO_TBAA_P on that variable.
11269         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11270
11271 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11272
11273         PR debug/34484
11274         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11275         DWARF2_DEBUGGING_INFO.
11276         (dwarf2out_note_section_used): Ditto.  Add prototype.
11277         (have_multiple_function_sections, text_section_used,
11278         cold_text_section_used, *cold_text_sections): Move declarations
11279         before their uses.
11280
11281 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11282
11283         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11284         field and add signal_ra.
11285         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11286         assignments to frame state pc.  Move end of stack check after
11287         MD_FALLBACK_FRAME_STATE_FOR.
11288         (uw_update_context_1): Use frame state signal_regs if set, instead
11289         of checking signal_frame flag.
11290         (uw_update_context): Use frame state signal_ra if set.
11291         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11292         * config/xtensa/linux-unwind.h: New file.
11293
11294 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11295
11296         * modulo-sched.c (get_sched_window): Fix comment typo.
11297
11298 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11299
11300         PR tree-optimization/34648
11301         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11302
11303 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11304
11305         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11306         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11307
11308 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11309
11310         PR rtl-optimization/34400
11311         * df-core.c (df_worklist_dataflow_overeager,
11312         df_worklist_dataflow_doublequeue): New functions.
11313         (df_worklist_dataflow): Two different worklist solvers.
11314         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11315         New param.
11316
11317 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11318
11319         PR testsuite/34821
11320         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11321         and ftree-parallelize-loops.
11322
11323 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11324
11325         PR rtl-optimization/34826
11326         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11327
11328 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11329
11330         * global.c (find_reg): Mark the eh regs as used if necessary.
11331         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11332         * ra.h (struct allocno): no_eh_reg field added.  Changed
11333         no_stack_reg type to bitfield.
11334
11335 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11336
11337         * tree.c (substitute_in_expr): Add missing 'break'.
11338
11339 2008-01-17  Richard Guenther  <rguenther@suse.de>
11340
11341         PR tree-optimization/34825
11342         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11343         x / x as division to handle.
11344
11345 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11346
11347         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11348         "-pthread" is specified.
11349         * pa-hpux11.h (LIB_SPEC): Likewise.
11350
11351 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11352             Peter Bergner  <bergner@vnet.ibm.com>
11353
11354         PR rtl-optimization/33796
11355         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11356
11357 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11358
11359         PR libgfortran/34699
11360         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11361         static links.
11362         * pa-hpux10.h (LINK_SPEC): Likewise.
11363         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11364
11365 2008-01-16  Richard Guenther  <rguenther@suse.de>
11366
11367         PR middle-end/32628
11368         * fold-const.c (fold_convert_const_int_from_int): Do not
11369         set overflow if that occured only because of a sign extension
11370         change when converting from/to a sizetype with the same
11371         precision and signedness.
11372
11373 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11374
11375         PR debug/34249
11376         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11377         location address to the correct place.  Update copyright year.
11378
11379 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11380
11381         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11382         no dependences in the dependence_relations vector.
11383
11384 2008-01-16  Jan Hubicka  <jh@suse.cz>
11385
11386         PR rtl-optimization/31396
11387         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11388         * cfg.c (dump_reg_info): Print it.
11389         * regs.h (struct reg_info_t): add freq_calls_crossed.
11390         (REG_FREQ_CALLS_CROSSED): New macro.
11391         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11392         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11393         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11394         regmove_optimize): Update call crossed frequencies.
11395         * local-alloc.c (struct qty): Add freq_calls_crossed.
11396         (alloc_qty): Copute freq_calls_crossed.
11397         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11398         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11399         * ra.h (struct allocno): Add freq_calls_crossed.
11400
11401 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11402
11403         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11404         libgomp when compiling with ftree-parallelize-loops.
11405         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11406
11407 2008-01-16  Richard Guenther  <rguenther@suse.de>
11408
11409         PR tree-optimization/34769
11410         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11411         * tree.c (int_cst_value): Instead make this function more
11412         permissive in what it accepts as valid input.  Document this
11413         function always sign-extends the value.
11414
11415 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11416             Richard Guenther  <rguenther@suse.de>
11417
11418         PR c/34668
11419         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11420         (gimple_fold_indirect_ref_rhs): ... this.
11421         (gimple_fold_indirect_ref): New function with foldings
11422         that preserve lvalueness.
11423         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11424         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11425         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11426         to fold an INDIRECT_REF, fall back to the old use of
11427         fold_indirect_ref_1.
11428
11429 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11430
11431         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11432         free_conflict_function.
11433         (compute_self_dependence): Same.
11434
11435 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11436
11437         PR debug/34249
11438         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11439         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11440         function global.
11441         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11442         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11443         for DWARF2_UNWIND_INFO targets.
11444
11445 2008-01-16  Richard Guenther  <rguenther@suse.de>
11446
11447         PR c/34768
11448         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11449         type qualifiers for function types.
11450
11451 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11452
11453         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11454         loop_iterator li from previous commit.
11455
11456 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11457
11458         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11459
11460 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11461
11462         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11463         (parallelize_loops): Don't parallelize irreducible components.
11464
11465 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11466
11467         PR c++/24924
11468         * c-opts (c_common_post_options): Do not enable CPP
11469         flag_pedantic_errors by default.
11470         
11471 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11472
11473         PR rtl-optimization/31944
11474         * cse.c (remove_pseudo_from_table): New function.
11475         (merge_equiv_classes): Use above function to remove pseudo-registers.
11476         (invalidate): Likewise.
11477
11478 2008-01-13  Richard Guenther  <rguenther@suse.de>
11479
11480         PR middle-end/34601
11481         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11482         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11483
11484 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11485
11486         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11487         validate_change to unshare the source of the PC set.
11488
11489 2008-01-12  Jan Hubicka  <jh@suse.cz>
11490
11491         PR middle-end/32135
11492         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11493         references above array bounds.  This might trigger bounds checks for
11494         pointers to arrays.
11495
11496 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11497
11498         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11499         new_replaceable_dependencies.
11500
11501 2008-01-12  Doug Kwan  <dougkwan@google.com>
11502
11503         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11504         instead of OPT_Wreturn_type in warning due to ignored return type
11505         qualifiers.
11506         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11507         options included in -Wextra.
11508         * c.opt: New option -Wignored_qualifiers.
11509         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11510         -Wignore_qualifiers.
11511         (-Wignored-qualifiers): Document.
11512         (-Wreturn-type): Remove description of functionality now handled
11513         by -Wignored-qualifiers.
11514
11515 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11516
11517         PR ada/33788
11518         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11519         NOP_EXPR if it is between integral types with the same precision.
11520
11521 2008-01-12  Jan Hubicka  <jh@suse.cz>
11522
11523         PR other/28023
11524         * invoke.texi (max-inline-recursive-depth): Fix default value.
11525
11526 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11527
11528         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11529         correct type.
11530
11531 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11532         
11533         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11534         
11535 2008-01-11  James E. Wilson  <wilson@specifix.com>
11536
11537         PR target/26015
11538         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11539
11540 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11541
11542         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11543         save/restore frame pointer register and don't use 'call-prologues' 
11544         optimization in function with "OS_task" attribute.
11545
11546 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11547
11548         PR middle-end/31309
11549         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11550         when copying to memory.
11551
11552 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11553
11554         PR rtl-optimization/30905
11555         * cfgcleanup.c: Include dce.h
11556         (crossjumps_occured): New global variable.
11557         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11558         If something changed, set crossjumps_occured to true.
11559         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11560         Don't add/remove fake edges to exit here...
11561         (cleanup_cfg): ...but do it here, when crossjumping.
11562         Run a fast DCE when successful crossjumps occured in the latest
11563         iteration of try_optimize_cfg.
11564
11565 2008-01-11  Richard Guenther  <rguenther@suse.de>
11566
11567         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11568         (struct vn_unary_op_s): Likewise.
11569         (vn_reference_insert): Free old reference on hash collision.
11570
11571 2008-01-10  Raksit Ashok  <raksit@google.com>
11572
11573         PR rtl-optimization/27971
11574         * combine.c (find_split_point): Split PLUS expressions which are
11575         inside a MEM rtx, and whose first operand is complex.
11576
11577 2008-01-10  DJ Delorie  <dj@redhat.com>
11578
11579         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11580         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11581         (m32c_hard_regno_ok): Call the underlying function.
11582
11583 2008-01-10  Richard Guenther  <rguenther@suse.de>
11584
11585         PR middle-end/34683
11586         * tree-cfg.c (tree_merge_blocks): Do not go through the
11587         full-blown folding and stmt updating path if we just deal
11588         with virtual operands.
11589         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11590         test for abnormal SSA_NAMEs.
11591
11592 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11593
11594         PR middle-end/34641
11595         * reload.c (push_reload): Add assertions.  All constants from
11596         reg_equiv_constant should have been used for replacing the respective
11597         pseudo earlier.
11598         (find_reloads_address): Invoke find_reloads_address_part for
11599         constant taken from the reg_equiv_constant array.
11600
11601 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11602
11603         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11604         field (valnum) the first in the struct.  Replace bools with
11605         unit bit fields.
11606
11607 2008-01-10  Richard Guenther  <rguenther@suse.de>
11608
11609         PR tree-optimization/34651
11610         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11611         types and ordering for masking and converting.
11612
11613 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11614
11615         PR tree-optimization/34017
11616         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11617         also for PHI_NODE expressions.
11618
11619 2008-01-09  Jan Hubicka  <jh@suse.cz>
11620
11621         PR tree-optimization/34708
11622         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11623         based on number of case labels.
11624         (init_inline_once): Remove switch_cost.
11625         * tree-inline.h (eni_weights_d): Remove switch_cost.
11626
11627 2008-01-09  Richard Guenther  <rguenther@suse.de>
11628         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11629
11630         PR middle-end/30132
11631         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11632         temporary if an rvalue is ok or an lvalue is not required.
11633
11634 2008-01-09  Richard Guenther  <rguenther@suse.de>
11635
11636         PR middle-end/34458
11637         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11638         adjust return type.
11639
11640 2008-01-09  Richard Guenther  <rguenther@suse.de>
11641
11642         PR middle-end/34679
11643         * tree.c (host_integerp): Check for sizetype only if the
11644         type is an integer type.
11645
11646 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11647
11648         PR debug/26364
11649         * opts.c (decode_options): Disable inlining of functions called
11650         once if not in unit-at-a-time mode.
11651
11652 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11653
11654         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11655
11656 2008-01-08  Richard Guenther  <rguenther@suse.de>
11657
11658         PR middle-end/31863
11659         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11660         out early if the result will be unused.
11661
11662 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11663
11664         PR target/34709
11665         Revert:
11666
11667         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11668         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11669         for TARGET_RECIP.       
11670         
11671 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11672         
11673         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11674         for vectorization tuned.
11675         
11676 2008-01-08  Richard Guenther  <rguenther@suse.de>
11677
11678         PR tree-optimization/34683
11679         * tree-ssa-operands.c (operand_build_cmp): Export.
11680         * tree-ssa-operands.h (operand_build_cmp): Declare.
11681         * tree-vn.c (vuses_compare): Remove.
11682         (sort_vuses): Use operand_build_cmp.
11683         (sort_vuses_heap): Likewise.
11684         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11685         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11686         (vdefs_to_vec): Do not sort already sorted VDEFs.
11687
11688 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11689
11690         PR middle-end/34694
11691         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11692
11693 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11694
11695         PR target/34702
11696         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11697         limitations of reciprocal sequences on x86 targets.
11698
11699 2008-01-08  Richard Guenther  <rguenther@suse.de>
11700
11701         PR tree-optimization/34683
11702         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11703
11704 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11705
11706         PR target/34622
11707         * config/darwin.c (darwin_mergeable_string_section): Don't use
11708         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11709
11710 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11711
11712         PR target/34682
11713         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11714         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11715         predicates of op0 and op1 to register_operand.
11716         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11717         expander using X87MODEF mode iterator.  Change predicates of
11718         op0 and op1 to register_operand.
11719         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11720         corresponding patterns and macroize using MODEF macro.  Change
11721         predicates of op0 and op1 to register_operand and remove
11722         "m" constraint. Disparage "r" alternative with "!".
11723         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11724         macroize using X87MODEF macro.  Change predicates of op0 and op1
11725         to register_operand and remove "m" constraint.  Disparage "r"
11726         alternative with "!".
11727         (absneg splitter with memory operands): Remove.
11728         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11729         patterns and macroize using X87MODEF mode iterator.
11730         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11731         Change predicate of op1 to register_operand.
11732         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11733         for memory operands.
11734
11735 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11736
11737         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11738
11739 2008-01-07  Richard Guenther  <rguenther@suse.de>
11740
11741         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11742         fields.
11743
11744 2008-01-07  Richard Guenther  <rguenther@suse.de>
11745
11746         PR tree-optimization/34683
11747         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11748         VOPs of the needed size to save memory.  Use VEC_quick_push
11749         to save compile-time.
11750         (vdefs_to_vec): Likewise.
11751
11752 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11753
11754         * config/spu/spu.md (divdf3): Genetate inline code for double
11755         division.  The implementation doesn't handle INF or NAN, therefore it
11756         only applies when -ffinite-math-only is given.
11757
11758 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11759
11760         PR libstdc++/34680
11761         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11762         * doc/cpp.texi ([Common Predefined Macros]): Document.
11763
11764 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11765
11766         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11767         order to use commutative addition instead of subtraction.
11768
11769 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11770             Mircea Namolaru  <namolaru@il.ibm.com>
11771             Vladimir Yanovsky  <yanov@il.ibm.com>
11772             Revital Eres  <eres@il.ibm.com>
11773
11774         PR tree-optimization/34263
11775         * tree-outof-ssa.c (process_single_block_loop_latch,
11776         contains_tree_r): New functions.
11777         (analyze_edges_for_bb): Call process_single_block_loop_latch
11778         function to empty single-basic-block latch block if possible.
11779
11780 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11781
11782         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11783         for TARGET_RECIP.
11784         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11785
11786 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11787
11788         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11789
11790 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11791
11792         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11793
11794 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11795
11796         PR tree-optimization/34618
11797         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11798         flag from T.
11799
11800 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11801
11802         PR target/34673
11803         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11804         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11805         Update copyright year.
11806
11807         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11808         Update copyright year.
11809         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11810         using NR fixup.
11811
11812 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11813
11814         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11815         edge does not point to current bb before changing need_assert.
11816
11817 2008-01-04  Richard Guenther  <rguenther@suse.de>
11818
11819         PR middle-end/34029
11820         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11821         for verifying purposes if they are is_gimple_min_invariant.
11822
11823 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11824
11825         PR tree-optimization/34448
11826         PR tree-optimization/34465
11827         * gimplify.c (gimplify_init_constructor): Add new parameter
11828         notify_temp_creation.  Use it.
11829         (gimplify_modify_expr_rhs): Take volatiles into account when
11830         optimizing constructors.
11831         Do not optimize constructors if gimplify_init_constructor will dump to
11832         memory.
11833         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11834         * gcc.c-torture/compile/pr34448.c: New.
11835
11836 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11837
11838         PR gcov-profile/34609
11839         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11840         return_slot if result is TREE_ADDRESSABLE.
11841
11842 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11843
11844         * config/mips/mips.md (sqrt_condition): Tweak comment.
11845         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11846
11847 2008-01-03  Tom Tromey  <tromey@redhat.com>
11848
11849         PR c/34457
11850         * c-common.c (c_type_hash): Handle VLAs.
11851
11852 2008-01-03  Jan Hubicka  <jh@suse.cz>
11853
11854         PR tree-optimization/31081
11855         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11856         0 when inlining and not inlining to first basic block.
11857         (remap_decl): When var is initialized to 0, don't set default_def.
11858         (expand_call_inline): Set entry_bb.
11859         * tree-inline.h (copy_body_data): Add entry_bb.
11860
11861 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11862
11863         PR c++/34619
11864         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11865         before returning.
11866
11867         PR tree-optimization/29484
11868         * tree-inline.c (inline_forbidden_p_2): New function.
11869         (inline_forbidden_p): Disallow inlining if some static var
11870         has an address of a local LABEL_DECL in its initializer.
11871         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11872         vs. inlining.
11873
11874 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11875
11876         PR tree-optimization/34635
11877         * tree-data-ref.c (add_other_self_distances): Make sure that the
11878         evolution step is constant.
11879
11880 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11881
11882         PR middle-end/34608
11883         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11884
11885 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11886
11887         * tree-sra.c (scalarize_init): Insert the generate_element_init
11888         statements after the generate_element_zero statements.
11889
11890 2008-01-02  Richard Guenther  <rguenther@suse.de>
11891
11892         PR middle-end/34093
11893         PR middle-end/31976
11894         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11895         for very large number of operands instead of ICEing.
11896
11897 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11898
11899         PR target/34013
11900         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11901         while stack probing.
11902
11903 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11904
11905         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11906         in C++0x mode.
11907
11908 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11909
11910         PR libmudflap/26442
11911         * tree-mudflap.c (mx_register_decls): Guard warning by
11912         !DECL_ARTIFICIAL check.
11913
11914 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11915
11916         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11917         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11918         sse5_perm<mode>): Fix constraints.