OSDN Git Service

* doc/install.texi: Update requirements to build the Ada compiler.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-09  Arnaud Charlet  <charlet@adacore.com
2
3         * doc/install.texi: Update requirements to build the Ada compiler.
4
5 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
6
7         * df-scan.c (struct df_scan_problem_data): Remove the
8         mw_link_pool alloc pool.
9         (df_scan_free_internal): Don't free it.
10         (df_scan_alloc): Don't allocate it.
11         * df.h (struct df_link): Update comment.
12
13 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
14
15         * except.h: Correct checks for when SJLJ exceptions must be used.
16
17 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18
19         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
20         default.
21         
22 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
23
24         PR tree-optimization/36218
25         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
26         configure for the build system.
27         (BUILD_LDFLAGS): Define.
28         * configure: Regenerate.
29         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
30
31 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
32
33         PR target/36424
34         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
35         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
36         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
37
38 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
39
40         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
41
42 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
43
44         * config.gcc (Obsolete configurations): Remove list of
45         configurations.
46         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
47         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
48         targets matched by those patterns.
49         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
50         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
51         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
52         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
53         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
54         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
55         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
56         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
57         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
58         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
59         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
60         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
61         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
62         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
63         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
64         Make code for Solaris 7 and greater unconditional for Solaris.
65         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
66         Remove --with-* handling.
67         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
68         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
69         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
70         LINK_OS_WINDISS_SPEC): Remove.
71         * config/rs6000/sysv4.opt (mwindiss): Remove.
72         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
73         * configure: Regenerate.
74         * doc/cpp.texi: Don't mention BeOS.
75         * doc/extend.texi (interrupt): Don't mention MS1.
76         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
77         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
78         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
79         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
80         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
81         Remove.
82         * doc/invoke.texi (MT Options): Remove.
83         (-mwindiss): Remove.
84         (CRIS Options): Remove cris-axis-aout references.
85         (HPPA Options): Don't mention hppa1.1-*-pro.
86         * doc/md.texi: (MorphoTech family): Remove.
87         * libgcc2.c: Don't handle UWIN.
88         * config/alpha/t-unicosmk: Remove.
89         * config/alpha/unicosmk.h: Remove.
90         * config/arm/kaos-arm.h: Remove.
91         * config/arm/kaos-strongarm.h: Remove.
92         * config/arm/strongarm-coff.h: Remove.
93         * config/arm/strongarm-elf.h: Remove.
94         * config/arm/strongarm-pe.h: Remove.
95         * config/arm/t-strongarm-pe: Remove.
96         * config/arm/t-xscale-coff: Remove.
97         * config/arm/t-xscale-elf: Remove.
98         * config/arm/xscale-coff.h: Remove.
99         * config/arm/xscale-elf.h: Remove.
100         * config/chorus.h: Remove.
101         * config/cris/aout.h: Remove.
102         * config/cris/aout.opt: Remove.
103         * config/cris/t-aout: Remove.
104         * config/i386/beos-elf.h: Remove.
105         * config/i386/kaos-i386.h: Remove.
106         * config/i386/ptx4-i.h: Remove.
107         * config/i386/sco5.h: Remove.
108         * config/i386/sco5.opt: Remove.
109         * config/i386/sysv4-cpp.h: Remove.
110         * config/i386/sysv5.h: Remove.
111         * config/i386/t-beos: Remove.
112         * config/i386/t-sco5: Remove.
113         * config/i386/t-uwin: Remove.
114         * config/i386/uwin.asm: Remove.
115         * config/i386/uwin.h: Remove.
116         * config/kaos.h: Remove.
117         * config/mips/windiss.h: Remove.
118         * config/mt: Remove directory.
119         * config/pa/pa-osf.h: Remove.
120         * config/pa/pa-pro-end.h: Remove.
121         * config/pa/t-pro: Remove.
122         * config/ptx4.h: Remove.
123         * config/rs6000/beos.h: Remove.
124         * config/rs6000/kaos-ppc.h: Remove.
125         * config/rs6000/t-beos: Remove.
126         * config/rs6000/windiss.h: Remove.
127         * config/sh/kaos-sh.h: Remove.
128         * config/sol2-6.h: Remove.
129         * config/sparc/sol26-sld.h: Remove.
130         * config/sparc/sysv4-only.h: Remove.
131         * config/vax/bsd.h: Remove.
132         * config/vax/t-memfuncs: Remove.
133         * config/vax/ultrix.h: Remove.
134         * config/vax/vaxv.h: Remove.
135         * config/windiss.h: Remove.
136
137 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
138
139         PR rtl-optimization/36438
140         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
141         for vector shifts with constant scalar shift operands.
142
143 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
144
145         * doc/invoke.texi: Document -march=xlr.
146         * config/mips/xlr.md: New file.
147         * config/mips/mips.md: Include it.
148         (cpu): Add "xlr".
149         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
150         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
151         (mips_rtx_cost_data): Likewise.
152
153 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
154
155         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
156         PRE_INC and PRE_DEC cases.
157
158 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
159
160         PR rtl-optimization/36419
161         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
162         the emitting jump insn.
163
164         PR target/36362
165         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
166         is not bool, boolify the whole *expr_p and convert to the desired type.
167
168 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
169
170         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
171         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
172         Add omp_private_outer_ref hook, add another argument to
173         omp_clause_default_ctor hook.
174         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
175         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
176         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
177         hook_tree_tree_tree_tree_null.
178         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
179         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
180         * hooks.c (hook_tree_tree_tree_tree_null): New function.
181         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
182         * tree.def (OMP_TASK): New tree code.
183         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
184         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
185         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
186         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
187         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
188         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
189         OMP_CLAUSE_COLLAPSE_EXPR): Define.
190         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
191         (OMP_DIRECTIVE_P): Add OMP_TASK.
192         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
193         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
194         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
195         and OMP_CLAUSE_UNTIED entries.
196         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
197         num_ops to 2.
198         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
199         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
200         * tree-pretty-print.c (dump_omp_clause): Handle
201         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
202         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
203         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
204         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
205         warning about unsigned iterators.  Change decl/init/cond/incr
206         arguments to TREE_VECs, check arguments for all collapsed loops.
207         (c_finish_omp_taskwait): New function.
208         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
209         ws_clauses.
210         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
211         default_function_array_conversion on init.  Add par_clauses argument.
212         If decl is present in parallel's lastprivate clause, change it to
213         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
214         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
215         collapse count in clauses.
216         (c_parser_omp_for, c_parser_omp_parallel): Adjust
217         c_parser_omp_for_loop callers.
218         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
219         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
220         (c_parser_omp_clause_name): Handle collapse and untied clauses.
221         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
222         functions.
223         (c_parser_omp_clause_schedule): Handle schedule(auto).
224         Include correct location in the error message.
225         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
226         and PRAGMA_OMP_CLAUSE_UNTIED.
227         (OMP_TASK_CLAUSE_MASK): Define.
228         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
229         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
230         * tree-nested.c (convert_nonlocal_omp_clauses,
231         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
232         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
233         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
234         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
235         OMP_CLAUSE_DECL.
236         (conver_nonlocal_reference, convert_local_reference,
237         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
238         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
239         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
240         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
241         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
242         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
243         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
244         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
245         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
246         OMP_CLAUSE_UNTIED.
247         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
248         * c-common.h (c_finish_omp_taskwait): New prototype.
249         * gimple-low.c (lower_stmt): Handle OMP_TASK.
250         * tree-parloops.c (create_parallel_loop): Create 1 entry
251         vectors for OMP_FOR_{INIT,COND,INCR}.
252         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
253         (make_edges): Handle OMP_TASK.
254         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
255         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
256         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
257         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
258         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
259         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
260         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
261         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
262         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
263         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
264         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
265         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
266         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
267         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
268         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
269         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
270         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
271         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
272         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
273         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
274         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
275         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
276         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
277         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
278         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
279         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
280         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
281         original iterator is present in lastprivate clause or if
282         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
283         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
284         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
285         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
286         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
287         if it is set, lookup var in outer contexts too.  Handle
288         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
289         to be implicitly determined firstprivate for task regions.
290         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
291         if it is set, lookup var in outer contexts too.  Set
292         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
293         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
294         OMP_CLAUSE_UNTIED.  Take region_type as last argument
295         instead of in_parallel and in_combined_parallel.
296         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
297         Adjust callers.
298         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
299         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
300         (new_omp_context): Set default_kind to
301         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
302         (omp_region_type): New enum.
303         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
304         fields, add region_type.
305         (new_omp_context): Take region_type as argument instead of is_parallel
306         and is_combined_parallel.
307         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
308         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
309         ctx->is_combined_parallel checks.
310         (gimplify_omp_task): New function.
311         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
312         OMP_CLAUSE_UNTIED.
313         * omp-low.c (extract_omp_for_data): Use schedule(static)
314         for schedule(auto).  Handle pointer and unsigned iterators.
315         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
316         Add loops argument.  Extract data for collapsed OMP_FOR loops.
317         (expand_parallel_call): Assert sched_kind isn't auto,
318         map runtime schedule to index 3.
319         (struct omp_for_data_loop): New type.
320         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
321         Add loop, loops, collapse and iter_type fields.
322         (workshare_safe_to_combine_p): Disallow combined for if
323         iter_type is unsigned long long.  Don't combine collapse > 1 loops
324         unless all bounds and steps are constant.  Adjust extract_omp_for_data
325         caller.
326         (expand_omp_for_generic): Handle pointer, unsigned and long long
327         iterators.  Handle collapsed OMP_FOR loops.  Adjust
328         for struct omp_for_data changes.  If libgomp function doesn't return
329         boolean_type_node, add comparison of the return value with 0.
330         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
331         pointer, unsigned and long long iterators.  Adjust for struct
332         omp_for_data changes.
333         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
334         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
335         unsigned long long.  Allocate loops array, pass it to
336         extract_omp_for_data.  For collapse > 1 loops use always
337         expand_omp_for_generic.
338         (omp_context): Add sfield_map and srecord_type fields.
339         (is_task_ctx, lookup_sfield): New functions.
340         (use_pointer_for_field): Use is_task_ctx helper.  Change first
341         argument's type from const_tree to tree.  Clarify comment.
342         In OMP_TASK disallow copy-in/out sharing.
343         (build_sender_ref): Call lookup_sfield instead of lookup_field.
344         (install_var_field): Add mask argument.  Populate both record_type
345         and srecord_type if needed.
346         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
347         in srecord_type.
348         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
349         and DECL_FIELD_OFFSET.
350         (scan_sharing_clauses): Adjust install_var_field callers.  For
351         firstprivate clauses on explicit tasks allocate the var by value in
352         record_type unconditionally, rather than by reference.
353         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
354         Use is_taskreg_ctx instead of is_parallel_ctx.
355         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
356         (create_omp_child_function_name): Add task_copy argument, use
357         *_omp_cpyfn* names if it is true.
358         (create_omp_child_function): Add task_copy argument, if true create
359         *_omp_cpyfn* helper function.
360         (scan_omp_parallel): Adjust create_omp_child_function callers.
361         Rename parallel_nesting_level to taskreg_nesting_level.
362         (scan_omp_task): New function.
363         (lower_rec_input_clauses): Don't run constructors for firstprivate
364         explicit task vars which are initialized by *_omp_cpyfn*.  
365         Pass outer var ref to omp_clause_default_ctor hook if
366         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
367         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
368         OMP_CLAUSE_REDUCTION_INIT.
369         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
370         avoid duplicate setting of fields.  Handle
371         OMP_CLAUSE_PRIVATE_OUTER_REF.
372         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
373         copy-out if TREE_READONLY, only copy-in.
374         (expand_task_copyfn): New function.
375         (expand_task_call): New function.
376         (struct omp_taskcopy_context): New type.
377         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
378         New functions.
379         (lower_omp_parallel): Rename to...
380         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
381         Call create_task_copyfn if srecord_type is needed.  Adjust
382         sender_decl type.
383         (task_shared_vars): New variable.
384         (check_omp_nesting_restrictions): Warn if work-sharing,
385         barrier, master or ordered region is closely nested inside OMP_TASK.
386         Add warnings for barrier if closely nested inside of work-sharing,
387         ordered, or master region.
388         (scan_omp_1): Call check_omp_nesting_restrictions even for
389         GOMP_barrier calls.  Rename parallel_nesting_level to
390         taskreg_nesting_level.  Handle OMP_TASK.
391         (lower_lastprivate_clauses): Even if some lastprivate is found on a
392         work-sharing construct, continue looking for them on parent parallel
393         construct.
394         (lower_omp_for_lastprivate): Add lastprivate clauses
395         to the beginning of dlist rather than end.  Adjust for struct
396         omp_for_data changes.
397         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
398         not after it.  Handle collapsed OMP_FOR loops, adjust for
399         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
400         (get_ws_args_for): Adjust extract_omp_for_data caller.
401         (scan_omp_for): Handle collapsed OMP_FOR
402         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
403         (lower_omp_single_simple): If libgomp function doesn't return
404         boolean_type_node, add comparison of the return value with 0.
405         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
406         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
407         (parallel_nesting_level): Rename to...
408         (taskreg_nesting_level): ... this.
409         (is_taskreg_ctx): New function.
410         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
411         of is_parallel_ctx.
412         (execute_lower_omp): Rename parallel_nesting_level to
413         taskreg_nesting_level.
414         (expand_omp_parallel): Rename to...
415         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
416         Call omp_task_call for OMP_TASK regions.
417         (expand_omp): Adjust caller, handle OMP_TASK.
418         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
419
420         * bitmap.c (bitmap_default_obstack_depth): New variable.
421         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
422         if argument is NULL and bitmap_default_obstack is already initialized.
423         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
424         at the end.
425         * matrix-reorg.c (matrix_reorg): Likewise.
426
427 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
428
429         * config/i386/i386.md (*indirect_jump): Macroize using P
430         mode iterator.  Remove !TARGET_64BIT from insn constraints.
431         (*tablejump_1): Ditto.
432         (*indirect_jump_rex64): Remove insn pattern.
433         (*tablejump_1_rex64): Ditto.
434         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
435         and eh_return_si insn patterns.
436
437 2008-06-06  Richard Guenther  <rguenther@suse.de>
438
439         * tree-ssa-structalias.c (merge_smts_into): Remove.
440         (find_what_p_points_to): Do not bother to compute the
441         points-to set for pt_anything pointers.
442         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
443         for pt_anything pointers is ok.
444
445 2008-06-06  Jan Hubicka  <jh@suse.cz>
446
447         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
448
449 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
450
451         * cgraph.c: Fix typos in comments.
452         (cgraph_availability_names): Fix string typo.
453         * fold-const.c: Fix typos in comments.
454         (fold_binary): Fix typo in warning.
455         * genautomata.c: Fix typos in comments.
456         (check_presence_pattern_sets): Fix typo in local variable.
457         (output_description): Fix typo in output.
458         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
459         * hwint.h: Likewise.
460         * matrix-reorg.c (check_allocation_function): Likewise.
461         * omega.c (smooth_weird_equations): Likewise.
462         * auto-inc-dec.c: Fix typos in comments.
463         * bb-reorder.c: Likewise.
464         * builtins.c: Likewise.
465         * c-common.c: Likewise.
466         * c-cppbuiltin.c: Likewise.
467         * c-parser.c: Likewise.
468         * c-pretty-print.c: Likewise.
469         * cfgcleanup.c: Likewise.
470         * cfgexpand.c: Likewise.
471         * cfghooks.c: Likewise.
472         * cfglayout.c: Likewise.
473         * cfgloopmanip.c: Likewise.
474         * cgraphunit.c: Likewise.
475         * coverage.c: Likewise.
476         * dbxout.c: Likewise.
477         * df-byte-scan.c: Likewise.
478         * df-core.c: Likewise.
479         * df-problems.c: Likewise.
480         * df-scan.c: Likewise.
481         * dfp.c: Likewise.
482         * dominance.c: Likewise.
483         * domwalk.c: Likewise.
484         * dse.c: Likewise.
485         * dwarf2out.c: Likewise.
486         * emit-rtl.c: Likewise.
487         * et-forest.c: Likewise.
488         * function.c: Likewise.
489         * function.h: Likewise.
490         * gcc.c: Likewise.
491         * gcov-io.c: Likewise.
492         * gcov.c: Likewise.
493         * gcse.c: Likewise.
494         * genattrtab.c: Likewise.
495         * ggc-page.c: Likewise.
496         * gimplify.c: Likewise.
497         * gthr-lynx.h: Likewise.
498         * haifa-sched.c: Likewise.
499         * ipa-cp.c: Likewise.
500         * ipa-inline.c: Likewise.
501         * ipa-prop.h: Likewise.
502         * ipa-pure-const.c: Likewise.
503         * ipa-struct-reorg.c: Likewise.
504         * ipa-struct-reorg.h: Likewise.
505         * ipa-type-escape.c: Likewise.
506         * ipa.c: Likewise.
507         * loop-doloop.c: Likewise.
508         * mips-tfile.c: Likewise.
509         * mkmap-flat.awk: Likewise.
510         * mkmap-symver.awk: Likewise.
511         * modulo-sched.c: Likewise.
512         * omp-low.c: Likewise.
513         * optabs.c: Likewise.
514         * optabs.h: Likewise.
515         * opts.c: Likewise.
516         * passes.c: Likewise.
517         * postreload-gcse.c: Likewise.
518         * postreload.c: Likewise.
519         * predict.c: Likewise.
520         * pretty-print.h: Likewise.
521         * profile.c: Likewise.
522         * protoize.c: Likewise.
523         * ra-conflict.c: Likewise.
524         * real.c: Likewise.
525         * recog.c: Likewise.
526         * regclass.c: Likewise.
527         * regs.h: Likewise.
528         * reload.c: Likewise.
529         * rtl-error.c: Likewise.
530         * rtlanal.c: Likewise.
531         * scan.h: Likewise.
532         * sched-rgn.c: Likewise.
533         * see.c: Likewise.
534         * stmt.c: Likewise.
535         * target.h: Likewise.
536         * tree-dfa.c: Likewise.
537         * tree-eh.c: Likewise.
538         * tree-flow-inline.h: Likewise.
539         * tree-inline.c: Likewise.
540         * tree-into-ssa.c: Likewise.
541         * tree-loop-distribution.c: Likewise.
542         * tree-nested.c: Likewise.
543         * tree-parloops.c: Likewise.
544         * tree-pass.h: Likewise.
545         * tree-pretty-print.c: Likewise.
546         * tree-profile.c: Likewise.
547         * tree-scalar-evolution.c: Likewise.
548         * tree-sra.c: Likewise.
549         * tree-ssa-alias-warnings.c: Likewise.
550         * tree-ssa-ccp.c: Likewise.
551         * tree-ssa-coalesce.c: Likewise.
552         * tree-ssa-dom.c: Likewise.
553         * tree-ssa-dse.c: Likewise.
554         * tree-ssa-forwprop.c: Likewise.
555         * tree-ssa-live.c: Likewise.
556         * tree-ssa-live.h: Likewise.
557         * tree-ssa-loop-im.c: Likewise.
558         * tree-ssa-loop-ivopts.c: Likewise.
559         * tree-ssa-loop-niter.c: Likewise.
560         * tree-ssa-loop-prefetch.c: Likewise.
561         * tree-ssa-phiopt.c: Likewise.
562         * tree-ssa-phiprop.c: Likewise.
563         * tree-ssa-sccvn.c: Likewise.
564         * tree-ssa-ter.c: Likewise.
565         * tree-ssa-threadupdate.c: Likewise.
566         * tree-ssa.c: Likewise.
567         * tree-vect-analyze.c: Likewise.
568         * tree-vect-transform.c: Likewise.
569         * tree-vectorizer.c: Likewise.
570         * tree-vn.c: Likewise.
571         * tree-vrp.c: Likewise.
572         * tree.c: Likewise.
573         * tree.def: Likewise.
574         * tree.h: Likewise.
575         * unwind-dw2-fde.c: Likewise.
576         * unwind.inc: Likewise.
577         * value-prof.c: Likewise.
578         * vmsdbgout.c: Likewise.
579
580 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
581
582         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
583         always place FP constants in the TOC for TARGET_POWERPC64.
584         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
585
586 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
587
588         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
589         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
590         enable for TARGET_E500_DOUBLE.
591         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
592         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
593         floating-point modes like integer modes for E500 double.
594         (rs6000_legitimate_offset_address_p): Likewise.
595         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
596         addressing for DDmode for E500 double.
597         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
598         modes as using 64-bits of registers for E500 double.
599         (spe_build_register_parallel): Do not handle DDmode or TDmode.
600         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
601         specially for E500 double.
602         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
603         TDmode for E500 double.
604         (rs6000_gimplify_va_arg): Only handle SDmode in registers
605         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
606         (rs6000_split_multireg_move): Do not handle TDmode specially for
607         E500 double.
608         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
609         using 64-bit registers for E500 double.
610         (emit_frame_save): Do not handle DDmode specially for E500 double.
611         (gen_frame_mem_offset): Likewise.
612         (rs6000_function_value): Do not call spe_build_register_parallel
613         for DDmode or TDmode.
614         (rs6000_libcall_value): Likewise.
615         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
616         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
617         for E500 double.
618
619 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
620
621         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
622         in comments.
623
624 2008-06-04  Junjie Gu <jgu@tensilica.com>
625
626         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
627         comparison for frame pointers.
628
629 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
630
631         PR target/27386
632         * config/avr/avr.h (PUSH_ROUNDING): Remove.
633
634 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
635
636         PR target/30243
637         * builtins.c (expand_builtin_signbit): Don't take lowpart when
638         register is already smaller or equal to required mode. 
639
640 2008-06-04  Xinliang David Li  <davidxl@google.com>
641
642         * tree-call-cdce.c: New file. 
643         (cond_dead_built_in_calls): New static variable.
644         (input_domain): New struct.
645         (check_pow): New function.
646         (check_builtin_call): Ditto.
647         (check_target_format): Ditto.
648         (is_call_dce_candidate): Ditto.
649         (gen_one_condition): Ditto.
650         (gen_conditions_for_domain): Ditto.
651         (get_domain): Ditto.
652         (gen_conditions_for_pow_cst_base): Ditto.
653         (gen_conditions_for_pow_int_base): Ditto.
654         (gen_conditions_for_pow): Ditto.
655         (get_no_error_domain): Ditto.
656         (gen_shrink_wrap_conditions): Ditto.
657         (shrink_wrap_one_built_in_call): Ditto.
658         (shink_wrap_conditional_dead_built_in_calls): Ditto.
659         (tree_call_cdce): Ditto.
660         (gate_call_cdce): Ditto.
661         (pass_call_cdce): New gimple pass.
662         * passes.c: (init_optimization_passes): New pass.
663         * tree-pass.h: New pass declaration.
664         * opts.c (decode_options): New flag setting.
665         * common.opt: Add -ftree-builtin-call-dce flag.
666         * Makefile.in: Add new source file.
667         * tempvar.def: New tv_id.
668         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
669
670 2008-06-04  Richard Guenther  <rguenther@suse.de>
671
672         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
673         (is_call_clobbered): Always check var_ann->call_clobbered.
674         (mark_call_clobbered): Always set var_ann->call_clobbered.
675         (clear_call_clobbered): Always clear var_ann->call_clobbered.
676         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
677         (reset_alias_info): Clear call clobbering info on MTAGs and
678         globals as well.
679         (set_pt_anything): Set pt_global_mem.
680         (create_tag_raw): Adjust comment.
681         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
682
683 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
684             Maxim Kuvyrkov  <maxim@codesourcery.com>
685
686         * config/m68k/m68k.opt (mxgot): New option.
687         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
688         (m68k_output_addr_const_extra): New.
689         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
690         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
691         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
692         * doc/invoke.texi (M680x0 Options): Document -mxgot.
693
694 2008-06-04  Richard Guenther  <rguenther@suse.de>
695
696         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
697         negative or non-representable offsets.
698
699 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
700
701         * config/i386/i386.c (ix86_gen_leave): New.
702         (ix86_gen_pop1): Likewise.
703         (ix86_gen_add3): Likewise.
704         (ix86_gen_sub3): Likewise.
705         (ix86_gen_sub3_carry): Likewise.
706         (ix86_gen_one_cmpl2): Likewise.
707         (ix86_gen_monitor): Likewise.
708         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
709         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
710         ix86_gen_one_cmpl2 and ix86_gen_monitor.
711         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
712         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
713         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
714         (ix86_expand_epilogue): Updated.
715         (print_operand): Handle integer register operand for 'z'.
716         (ix86_expand_strlensi_unroll_1): Likewise.
717         (ix86_expand_strlen): Likewise.
718         (ix86_expand_builtin): Likewise.
719         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
720         mov{q}/mov{l} and add{q}/add{l}.
721
722 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
723
724         * config/i386/i386.md (P): New mode iterator.
725         (SFmode push_operand splitter): Macroize DImode and SImode pushes
726         using P mode iterator.
727         (DFmode push_operand splitter): Ditto.
728         (XFmode push_operand splitter): Ditto.
729         (DFmode float_extend SFmode push_operand splitter): Ditto.
730         (XFmode float_extend SFmode push_operand splitter): Do not generate
731         SImode pushes for 64bit target.  Macroize Dimode and SImode
732         pushes using P mode iterator.
733         (XFmode float_extend DFmode push_operand splitter): Ditto.
734
735 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
736
737         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
738         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
739         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
740         return type to int.
741         (ix86_call_abi_override): Remove check for call_used_regs.
742
743 2008-06-03  Richard Guenther  <rguenther@suse.de>
744
745         * tree-ssa-structalias.c (find_func_aliases): Add constraints
746         for the lhs of calls if the return type contains pointers.
747
748 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
749
750         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
751         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
752         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
753         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
754         of cfun and DEFAULT_ABI to deceide abi mode.
755         (DEFAULT_ABI): New.
756         (REG_PARM_STACK_SPACE): Removed.
757         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
758         (STACK_BOUNDARY): Use default target to deceide stack boundary.
759         * config/i386/i386-protos.h (ix86_cfun_abi): New.
760         (ix86_function_abi): Likewise.
761         (ix86_function_type_abi): Likewise.
762         (ix86_call_abi_override): Likewise.
763         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
764         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
765         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
766         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
767         specific defines.
768         (X86_64_REGPARM_MAX): New.
769         (X86_64_SSE_REGPARM_MAX): New.
770         (X64_REGPARM_MAX): New.
771         (X64_SSE_REGPARM_MAX): New.
772         (X86_32_REGPARM_MAX): New.
773         (X86_32_SSE_REGPARM_MAX): New.
774         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
775         (ix86_function_regparm): Handle user calling abi.
776         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
777         by DEFAULT_ABI versus SYSV_ABI check.
778         (ix86_reg_parm_stack_space): New.
779         (ix86_function_type_abi): New.
780         (ix86_call_abi_override): New.
781         (ix86_function_abi): New.
782         (ix86_cfun_abi): New.
783         (init_cumulative_args): Call abi specific initialization.
784         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
785         (function_arg_64): Extend SSE_REGPARM_MAX check.
786         (function_arg (): Remove TARGET_64BIT_MS_ABI.
787         (ix86_pass_by_reference): Likewise.
788         (ix86_function_value_regno_p): Likewise.
789         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
790         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
791         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
792         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
793         (setup_incoming_varargs_64): Adjust regparm for call abi.
794         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
795         (ix86_va_start): Likewise.
796         (ix86_gimplify_va_arg): Likewise.
797         (ix86_expand_prologue): Likewise.
798         (output_pic_addr_const): Likewise.
799         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
800         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
801         (x86_output_mi_thunk): Likewise.
802         (x86_function_profiler): Likewise.
803         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
804         (SYSV_ABI, MS_ABI): New constants.
805         (DEFAULT_ABI): New.
806         (init_regs): Add prototype of function in regclass.c file.
807         (OVERRIDE_ABI_FORMAT): New.
808         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
809         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
810         (OUTGOING_REG_PARM_STACK_SPACE): New.
811         (ix86_reg_parm_stack_space): New prototype.
812         (CUMULATIVE_ARGS): Add call_abi member.
813         (machine_function): Add call_abi member.
814         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
815         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
816
817 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
818
819         PR target/34879
820         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
821         (avr_builtin_setjmp_frame_value): New function.
822         * config/avr/avr.md (nonlocal_goto_receiver): Define.
823         (nonlocal_goto): Define.
824
825 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
826
827         * config/mips/mips.c (mips_emit_loadgp): Return early if
828         there is nothing do to, otherwise emit a blockage if
829         !TARGET_EXPLICIT_RELOCS || crtl->profile.
830         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
831
832 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
833
834         * configure.ac: Drop unneeded backslash ending up in config.in.
835         * acinclude.m4: Likewise.
836         * config.in: Regenerate.
837
838 2008-05-26  Jan Hubicka  <jh@suse.cz>
839
840         * predict.c (maybe_hot_frequency_p): Break out of...
841         (maybe_hot_bb_p): ... here.
842         (maybe_hot_edge_p): New.
843         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
844         * basic-block.h (maybe_hot_edge_p): Declare.
845
846 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
847
848         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
849         (*cmpfp_<mode>_cc): Ditto.
850         (*fp_jcc_8<mode>_387): Ditto.
851         (*fop_<MODEF:mode>_2_i387): Ditto.
852         (*fop_<MODEF:mode>_3_i387): Ditto.
853         (*fop_xf_2_i387): Ditto.
854         (*fop_xf_3_i387): Ditto.
855
856 2008-06-02  Tomas Bily  <tbily@suse.cz>
857
858         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
859
860 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
861
862         * config/mips/mips.c (mips_valid_offset_p): New function.
863         (mips_valid_lo_sum_p): Likewise.
864         (mips_classify_address): Use them.
865         (mips_force_address): New function.
866         (mips_legitimize_address): Use it.
867         * config/mips/mips.md (MOVE128): New mode iterator.
868         (movtf): Require TARGET_64BIT.  Remove empty strings.
869         (*movtf_internal): Rename to...
870         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
871         of "R" and use {,fp}{load,store} attributes instead of "multi".
872         Use a separate define_split.
873         (*movtf_mips16): New pattern.
874
875 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
876
877         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
878         * config/mips/mips.c (mips_expand_before_return): New function.
879         (mips_expand_epilogue): Call it.
880         * config/mips/mips.md (return): Turn into a define_expand.
881         (*return): New insn.
882
883 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
884
885         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
886         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
887         functions.  Do not emit uses and clobbers of CONCATs; individually
888         use and clobber their operands.
889         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
890         gen_clobber, emit_use and gen_use.
891         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
892         (expand_builtin_return): Likewise.
893         * cfgbuild.c (count_basic_blocks): Likewise.
894         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
895         * explow.c (emit_stack_restore): Likewise.
896         * expmed.c (extract_bit_field_1): Likewise.
897         * expr.c (convert_move, emit_move_complex_parts): Likewise.
898         (emit_move_multi_word, store_constructor): Likewise.
899         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
900         (thread_prologue_and_epilogue_insns): Likewise.
901         * lower-subreg.c (resolve_simple_move): Likewise.
902         * optabs.c (widen_operand, expand_binop): Likewise.
903         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
904         * reload.c (find_reloads): Likewise.
905         * reload1.c (eliminate_regs_in_insn): Likewise.
906         * stmt.c (expand_nl_goto_receiver): Likewise.
907         * config/alpha/alpha.md (builtin_longjmp): Likewise.
908         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
909         * config/arm/arm.c (arm_load_pic_register): Likewise.
910         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
911         * config/arm/arm.md (untyped_return): Likewise.
912         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
913         * config/avr/avr.c (expand_prologue): Likewise.
914         * config/bfin/bfin.c (do_unlink): Likewise.
915         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
916         * config/cris/cris.c (cris_expand_prologue): Likewise.
917         * config/darwin.c (machopic_indirect_data_reference): Likewise.
918         (machopic_legitimize_pic_address): Likewise.
919         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
920         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
921         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
922         (ix86_expand_convert_uns_didf_sse): Likewise.
923         (ix86_expand_vector_init_general): Likewise.
924         * config/ia64/ia64.md (eh_epilogue): Likewise.
925         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
926         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
927         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
928         (config/iq2000/iq2000.c): Likewise.
929         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
930         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
931         (builtin_longjmp): Likewise.
932         * config/mn10300/mn10300.md (call, call_value): Likewise.
933         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
934         * config/pdp11/pdp11.md (abshi2): Likewise.
935         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
936         * config/s390/s390.c (s390_emit_prologue): Likewise.
937         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
938         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
939         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
940         * config/sh/sh.c (prepare_move_operands): Likewise.
941         (output_stack_adjust, sh_expand_epilogue): Likewise.
942         (sh_set_return_address, sh_expand_t_scc): Likewise.
943         * config/sparc/sparc.c (load_pic_register): Likewise.
944         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
945         * config/spu/spu.c (spu_expand_epilogue): Likewise.
946         * config/v850/v850.c (expand_epilogue): Likewise.
947
948 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
949
950         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
951         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
952         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
953         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
954         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
955         stack pointer register.
956         (output_movhi): Remove code for interrupt specific writing to the 
957         stack pointer register.
958
959 2008-05-31  Richard Guenther  <rguenther@suse.de>
960
961         PR tree-optimization/34244
962         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
963         (tree_expr_nonzero_warnv_p): Likewise.
964         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
965         ssa_name_nonnegative_p.
966         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
967         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
968         not tree_expr_nonzero_warnv_p.
969
970         PR tree-optimization/36262
971         Revert
972         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
973
974         PR tree-optimization/34244
975         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
976         (record_numbers_of_iterations): New function.
977         (execute_vrp): Cache the numbers of iterations of loops.
978         * tree-scalar-evolution.c (scev_reset_except_niters):
979         New function.
980         (scev_reset): Use scev_reset_except_niters.
981         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
982
983 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
984
985         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
986         __WORKAROUND_RETS when appropriate.
987
988 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
989
990         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
991         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
992         mode iterator.
993         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
994         *fop_df_comm_sse insn patterns using MODEF mode iterator.
995         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
996         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
997         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
998         *fop_df_1_mixed insn patterns using MODEF mode iterator.
999         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1000         *fop_df_1_sse insn patterns using MODEF mode iterator.
1001         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1002         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1003         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1004         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1005         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1006         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1007         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1008         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1009         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1010         (*fop_xf_5_i387): Ditto.
1011         (*fop_xf_6_i387): Ditto.
1012
1013 2008-05-30  Richard Guenther  <rguenther@suse.de>
1014
1015         * builtins.c (build_string_literal): Avoid generating
1016         a non-gimple_val result.
1017
1018 2008-05-30  DJ Delorie  <dj@redhat.com>
1019
1020         * exec-tool.in: Use an environment variable (private) instead of a
1021         file (shared) as a semaphore, so as to not break parallel builds.
1022
1023 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1024
1025         * optabs.c (maybe_encapsulate_block): Remove.
1026         (emit_libcall_block): Adjust accordingly.
1027         * optabs.h (maybe_encapsulate_block): Remove prototype.
1028
1029         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1030         Don't use maybe_encapsulate_block.
1031
1032 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1033
1034         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1035         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1036         rtx is a SYMBOL_REF before calling get_pool_constant.
1037
1038 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1039
1040         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1041
1042 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1043
1044         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1045         rather than OS names to choose INO_T_EQ definition.
1046         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1047         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1048
1049 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1050
1051         PR target/36348
1052         * config/darwin-f.c: New.
1053         * config/t-darwin: Added rule to build darwin-f.o.
1054         * config.gcc: Defined new variable, fortran_target_objs.
1055         (*-*-darwin*): Set fortran_target_objs.
1056         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1057         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1058         * configure: Regenerated.
1059
1060 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1061
1062         PR target/35771
1063         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1064         canonical type if needed.
1065
1066 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1067
1068         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1069
1070 2008-05-29  Richard Guenther  <rguenther@suse.de>
1071
1072         PR tree-optimization/36343
1073         PR tree-optimization/36346
1074         PR tree-optimization/36347
1075         * tree-flow.h (clobber_what_p_points_to): Declare.
1076         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1077         pointed-to variable is dereferenced is irrelevant to whether
1078         the pointer can access the pointed-to variable.
1079         (clobber_what_p_points_to): New function.
1080         * tree-ssa-alias.c (set_initial_properties): Use it.
1081         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1082         call clobber check for NMTs.
1083
1084 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1085         
1086         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1087         for printing gcov_type.
1088
1089 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1090
1091         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1092         and the eh region information.
1093         * value-prof.c (gimple_move_stmt_histograms): New function.
1094         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1095
1096 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1097
1098         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1099
1100 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1101
1102         * value-prof.c (tree_ic_transform): Print counts.
1103         * tree-profile.c (tree_gen_ic_func_profiler):
1104         Clear __gcov_indreict_call_callee variable to avoid misattribution
1105         of the profile.
1106
1107 2008-05-28  Rafael Espindola  <espindola@google.com>
1108
1109         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1110         invalid sharing.
1111
1112 2008-05-28  Richard Guenther  <rguenther@suse.de>
1113
1114         PR tree-optimization/36339
1115         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1116         and clobbering code out of the loop.
1117
1118 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1119
1120         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1121         letters defined.
1122
1123         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1124         s390_contiguous_bitmask_p, s390_symref_operand_p,
1125         s390_check_symref_alignment, s390_reload_larl_operand,
1126         s390_reload_symref_address): New functions.
1127         (s390_branch_condition_mnemonic): Support compare and branch
1128         instructions.
1129         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1130         and 'W' constraints.
1131         (s390_secondary_reload): Add secondary reloads for unaligned
1132         symbol refs or symbol refs to floating point or QI/TI mode
1133         integer values.
1134         (legitimate_address_p): Accept symbol references as addresses.
1135         (s390_expand_insv): Use rotate and insert selected bits
1136         instruction for insv when building for z10.
1137         (print_operand_address): Handle symbol ref addresses.
1138         (print_operand): Output modifier 'c' added for signed byte values.
1139         (s390_encode_section_info): Mark symbol refs with
1140         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1141
1142         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1143         (length attribute): RRF, RRR have 4 byte length.
1144         (FPALL, INTALL): New mode iterators added.
1145         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1146         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1147         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1148         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1149         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1150         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1151         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1152         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1153         instructions.
1154         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1155         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1156         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1157         reload<INTALL:mode><P:mode>_toreg_z10,
1158         reload<FPALL:mode><P:mode>_tomem_z10,
1159         reload<FPALL:mode><P:mode>_toreg_z10,
1160         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1161         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1162         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1163         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1164         definition.
1165         (movmem, clrmem, cmpmem): New splitters added.
1166
1167         * config/s390/predicates.md (larl_operand): Use
1168         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1169         SYMBOL_REF_ALIGN1_P.
1170         (s390_signed_integer_comparison,
1171         s390_unsigned_integer_comparison): New predicates.
1172
1173         * config/s390/s390-protos.h (s390_check_symref_alignment,
1174         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1175         s390_reload_symref_address,
1176         s390_compare_and_branch_condition_mask): Prototypes added.
1177
1178         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1179         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1180         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1181
1182 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1183
1184         * config/s390/s390.c (z10_cost): New cost function for z10.
1185         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1186         (s390_issue_rate): Adjust issue rate for z10.
1187         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1188         (processor_flags): Add PF_Z10.
1189         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1190         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1191         * gcc/config.gcc: Add z10.
1192
1193 2008-05-28  Richard Guenther  <rguenther@suse.de>
1194
1195         PR tree-optimization/36291
1196         * tree-flow. h (struct gimple_df): Remove var_anns member.
1197         * tree-flow-inline.h (gimple_var_anns): Remove.
1198         (var_ann): Simplify.
1199         * tree-dfa.c (create_var_ann): Simplify.
1200         (remove_referenced_var): Clear alias info from var_anns of globals.
1201         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1202         (delete_tree_ssa): Clear alias info from var_anns of globals.
1203         Do not free var_anns.
1204         (var_ann_eq): Remove.
1205         (var_ann_hash): Likewise.
1206
1207 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1208
1209         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1210         and loongson2f entries.
1211         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1212         * config/mips/mips.h (processor_type): Add Loongson-2E
1213         and Loongson-2F entries.
1214         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1215         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1216         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1217         * doc/invoke.texi (MIPS Options): Document loongson2e
1218         and loongson2f processor names.
1219
1220 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1221
1222         PR target/35767
1223         PR target/35771
1224         * config/i386/i386.c (ix86_function_arg_boundary): Use
1225         alignment of canonical type.
1226         (ix86_expand_vector_move): Check unaligned memory access for
1227         all SSE modes.
1228
1229 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1230
1231         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1232         Moved to the front of file.
1233
1234 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1235             H.J. Lu  <hongjiu.lu@intel.com>
1236
1237         * dwarf2out.c (current_fde): New.
1238         (add_cfi): Use it.
1239         (lookup_cfa:): Likewise.
1240         (dwarf2out_end_epilogue): Likewise.
1241         (dwarf2out_note_section_used): Likewise.
1242
1243 2008-05-27  Michael Matz  <matz@suse.de>
1244
1245         PR c++/27975
1246         * c.opt (Wenum-compare): New warning option.
1247         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1248
1249 2008-05-27  Michael Matz  <matz@suse.de>
1250
1251         PR middle-end/36326
1252         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1253         non-BLKmode types.
1254         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1255         into memory as tail calls.
1256
1257 2008-05-27  Richard Guenther  <rguenther@suse.de>
1258
1259         PR tree-optimization/36339
1260         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1261         pointers cause all addressable variables to be call clobbered.
1262
1263 2008-05-27  Richard Guenther  <rguenther@suse.de>
1264
1265         PR tree-optimization/36245
1266         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1267
1268 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1269
1270         * config/s390/s390.md: Replace all occurences of the 'm'
1271         constraint with 'RT'.
1272
1273 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1274
1275         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1276         definitions added.
1277         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1278         "*movdi_64".
1279         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1280         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1281         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1282
1283 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1284
1285         * reload.c: (find_reloads): Skip alternatives according to the
1286         "enabled" attribute. Constify the constraint variable.
1287         * recog.c (get_attr_enabled): Add default implementation.
1288         (extract_insn): Set the alternative_enabled_p array
1289         in the recog_data struct.
1290         (preprocess_constraints, constrain_operands): Skip
1291         alternatives according to the "enabled" attribute
1292         * recog.h (struct recog_data): New field alternative_enabled_p.
1293         (skip_alternative): New inline function.
1294         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1295         (record_reg_classes): Skip alternative according to the
1296         "enabled" attribute.
1297
1298         * doc/md.texi: Add documention for the "enabled" attribute.
1299
1300 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1301
1302         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1303         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1304         constraint with TARGET_MEM_CONSTRAINT.
1305         * recog.c (asm_operand_ok, preprocess_constraints,
1306         constrain_operands): Likewise.
1307         * regclass.c (record_reg_classes): Likewise.
1308         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1309         * reload1.c (maybe_fix_stack_asms): Likewise.
1310         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1311         * recog.h: Adjust comment.
1312         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1313         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1314         * doc/md.texi: Add a note to description of 'm' constraint.
1315         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1316
1317 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1318
1319         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1320         that the bitfield is of integral type before testing its precision.
1321
1322 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1323             Sa Liu  <saliu@de.ibm.com> 
1324
1325         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1326         __modti3, __udivti3, __umodti3 and __udivmodti4.
1327         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1328         that implement TImode mul and div functions.
1329         * config/spu/multi3.c: New. Implement __multi3.
1330         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1331         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1332         functions on SPU.
1333
1334 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1335
1336         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1337         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1338         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1339         tls_sysv_suffix): New mode and mode attribute iterators.
1340         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1341         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1342         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1343         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1344         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1345         iterators.
1346
1347 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1348
1349         PR tree-optimization/36329
1350         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1351         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1352         * cgraphbuild.c (initialize_inline_failed): Use the latter
1353         macro in lieu of the former.
1354         * ipa-inline.c (cgraph_mark_inline): Likewise.
1355         (cgraph_decide_inlining_of_small_function): Likewise.
1356         (cgraph_decide_inlining): Likewise.
1357         (cgraph_decide_inlining_incrementally): Likewise.
1358
1359 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1360             Anatoly Sokolov  <aesok@post.ru>
1361
1362         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1363         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1364         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1365         optimization for 'avr6' architecture.
1366
1367 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1368
1369         PR target/34932
1370         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1371
1372 2008-05-26  Richard Guenther  <rguenther@suse.de>
1373
1374         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1375         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1376
1377 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1378
1379         PR middle-end/36253
1380         * caller-save.c (insert_restore): Verify alignment of spill space.
1381         (insert_save): Likewise.
1382         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1383         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1384         (STACK_SLOT_ALIGNMENT): Likewise.
1385         * function.c (LOCAL_ALIGNMENT): Removed.
1386         (get_stack_local_alignment): New.
1387         (assign_stack_local): Use it.  Set alignment on stack slot.
1388         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1389         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1390         (STACK_SLOT_ALIGNMENT): New.
1391         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1392         stack slot in XFmode.
1393
1394         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1395
1396 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1397
1398         PR/36321
1399         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1400         argument operand in rax isn't removed.
1401
1402 2008-05-26  Richard Guenther  <rguenther@suse.de>
1403
1404         PR middle-end/36300
1405         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1406         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1407
1408 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1409
1410         PR bootstrap/36331
1411         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1412
1413 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1414
1415         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1416         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1417
1418 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1419
1420         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1421         build a trampoline if we don't want one.
1422         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1423         return zero for nested functions if we don't want a trampoline.
1424
1425 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1426
1427         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1428
1429 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1430
1431         PR fortran/18428
1432         * c.opt: Removed undocumented option '-lang-fortran'.
1433         * c-common.h: Removed global variable 'lang_fortran'.
1434         * c-opts.c (c_common_handle_option): Removed code to handle
1435         option '-lang-fortran'. Updated includes.
1436         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1437         definition of '__GFORTRAN__'.
1438         (define__GNUC__): Reimplemented to use BASEVER and
1439         cpp_define_formatted.
1440         (builtin_define_with_value_n): Removed.
1441         * c-incpath.h: Renamed to ...
1442         * incpath.h: ... this.
1443         * c-incpath.c: Renamed to ...
1444         * incpath.c: ... this. Updated includes.
1445         * fix-header.c: Updated includes.
1446         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1447         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1448         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1449
1450 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1451
1452         * tree.h: Update the table of flags used on tree nodes.
1453         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1454         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1455         (FORCED_LABEL): Add access check.
1456         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1457         (ASM_INPUT_P): Likewise.
1458         (ASM_VOLATILE_P): Likewise.
1459         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1460         (OMP_SECTION_LAST): Access private_flag directly.
1461         (OMP_RETURN_NOWAIT): Likewise.
1462         (OMP_PARALLEL_COMBINED): Likewise.
1463         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1464         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1465         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1466         deprecated_flag directly.
1467
1468 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1469
1470         * final.c (frame_pointer_needed): Removed.
1471         * flags.h (frame_pointer_needed): Likewise.
1472
1473         * function.h (rtl_data): Add frame_pointer_needed.
1474         (frame_pointer_needed): New.
1475
1476 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1477
1478         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1479
1480 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1481
1482         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1483         SRC is a REG.
1484
1485 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1486
1487         * c-common.c (strip_array_types): Move function to..
1488         * tree.c: ..here.
1489         (get_inner_array_type): Delete.
1490         * c-common.h (strip_array_types): Move declaration to..
1491         * tree.h: ..here.
1492         (get_inner_array_type): Delete.
1493         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1494         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1495         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1496         * config/pa/pa.c (emit_move_sequence): Likewise.
1497
1498 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1499
1500         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1501         attribute to 34.
1502
1503 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1504
1505         * function.c: Include target hook for nonlocal_goto frame value.
1506
1507 2008-05-24  Richard Guenther  <rguenther@suse.de>
1508
1509         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1510         variable can be only accessed through a pointer or a union.
1511
1512 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1513
1514         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1515         * doc/extend.texi: Likewise.
1516
1517 2008-05-23  DJ Delorie  <dj@redhat.com>
1518
1519         * config/m32c/jump.md (untyped_call): Add.
1520
1521         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1522         for A24 to PSImode.
1523         (m32c_address_cost): Detail costs for indirect offsets.
1524
1525 2008-05-23  Rafael Espindola  <espindola@google.com>
1526
1527         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1528         if a node is a SUBREG.
1529         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1530         is a SUBREG.
1531
1532 2008-05-23  Paul Brook  <paul@codesourcery.com>
1533             Carlos O'Donell  <carlos@codesourcery.com>
1534
1535         * doc/extend.texi: Clarify use of __attribute__((naked)).
1536         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1537         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1538         * function.c (use_register_for_decl): Use
1539         targetm.calls.allocate_stack_slots_for_args.
1540         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1541         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1542         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1543
1544 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1545
1546         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1547
1548 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1549
1550         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1551         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1552         is only rounded once.
1553
1554 2008-05-23  Richard Guenther  <rguenther@suse.de>
1555
1556         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1557
1558 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1559             Jakub Jelinek  <jakub@redhat.com>
1560
1561         PR target/36079
1562         * configure.ac: Handle --enable-cld.
1563         * configure: Regenerated.
1564         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1565         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1566         (ix86_current_function_needs_cld): New define.
1567         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1568         (cld): New isns pattern.
1569         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1570         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1571         * config/i386/i386.opt (mcld): New option.
1572         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1573         TARGET_CLD and ix86_current_function_needs_cld.
1574         (override_options): Use -mcld by default for 32-bit code if
1575         USE_IX86_CLD.
1576
1577         * doc/install.texi (Options specification): Document --enable-cld.
1578         * doc/invoke.texi (Machine Dependent Options)
1579         [i386 and x86-64 Options]: Add -mcld option.
1580         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1581
1582 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1583         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1584         (return_in_memory_64): Likewise.
1585         (return_in_memory_ms_64): Likewise.
1586
1587 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1588
1589         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1590         * builtins.c (fold_builtin_fpclassify): New.
1591         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1592         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1593         * c-common.c (handle_type_generic_attribute): Adjust to accept
1594         fixed arguments before an elipsis.
1595         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1596         * doc/extend.texi: Document __builtin_fpclassify.
1597
1598 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1599
1600         * omp-low.c (gate_expand_omp_ssa): Remove.
1601         (pass_expand_omp_ssa): Remove.
1602         (gate_expand_omp): Do not check for flag_openmp_ssa.
1603         * common.opt (-fopenmp-ssa): Remove.
1604         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1605
1606 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1607
1608         * config/sh/sh.opt (mfixed-range): New option.
1609         * config/sh/sh-protos.h (sh_fix_range): Declare.
1610         * config/sh/sh.c (sh_fix_range): New function.
1611         * config/sh/sh.h (sh_fixed_range_str): Declare.
1612         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1613         is not empty.
1614         * doc/invoke.texi (SH Options): Document -mfixed-range.
1615
1616 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1617
1618         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1619         it before the redeclaration.
1620
1621 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1622
1623         * config/avr/avr.c (get_sequence_length): Add new function.
1624         (expand_prologue, expand_epilogue): Remove duplicate code.
1625
1626 2008-05-22  Rafael Espindola  <espindola@google.com>
1627
1628         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1629         sharing.
1630
1631 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1632
1633         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1634         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1635
1636         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1637         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1638         (vect_update_misalignment_for_peel): Likewise.
1639         (vector_alignment_reachable_p): Likewise.
1640         * tree-vect-transform.c (vectorizable_load): Likewise.
1641         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1642         (get_vectype_for_scalar_type): Pass mode of scalar_type
1643         to UNITS_PER_SIMD_WORD.
1644
1645         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1646         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1647         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1648         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1649         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1650
1651 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1652
1653         PR tree-optimization/36293
1654         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1655         if the first load must be skipped because of a gap.
1656
1657 2008-05-22  Richard Guenther  <rguenther@suse.de>
1658
1659         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1660         more cases of offset disambiguation that is possible if
1661         strict-aliasing rules apply.
1662         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1663         for basic offset and type-based disambiguation.
1664
1665 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1666
1667         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1668         ix86_expand_vector_set on V16QImode for SSE4.1.
1669
1670 2008-05-21  Tom Tromey  <tromey@redhat.com>
1671
1672         * c.opt (Wimport): Mark as undocumented.
1673         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1674         -Wno-import.
1675         (Warning Options): Likewise.
1676         * doc/cppopts.texi: Don't mention -Wimport.
1677
1678 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1679
1680         PR tree-optimization/36287
1681         PR tree-optimization/36286
1682         * lambda-code.c (build_access_matrix): Do not use the loop->num
1683         for computing the number of induction variables: use the loop depth
1684         instead.
1685
1686 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1687
1688         PR/36280
1689         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1690         option -f(no-)leading-underscore.
1691
1692 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1693
1694         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1695         GET_MODE_NUNITS (mode).
1696
1697 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1698
1699         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1700         (-mmulhw): Add 464 to description.
1701         (-mdlmzb): Likewise.
1702         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1703         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1704         464fp entries.
1705         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1706         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1707         * config/rs6000/rs6000.md: Update comments for 464.
1708
1709 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1710
1711         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1712
1713 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1714
1715         * config/i386/sse.md (vec_extractv4sf): Removed.
1716         (vec_extractv2df): Likewise.
1717         (vec_extractv2di): Likewise.
1718         (vec_extractv4si): Likewise.
1719         (vec_extractv8hi): Likewise.
1720         (vec_extractv16qi): Likewise.
1721         (vec_extract<mode>): New.
1722
1723 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1724
1725         * config/i386/sse.md (vec_setv4sf): Removed.
1726         (vec_setv2df): Likewise.
1727         (vec_setv2di): Likewise.
1728         (vec_setv4si): Likewise.
1729         (vec_setv8hi): Likewise.
1730         (vec_setv16qi): Likewise.
1731         (vec_set<mode>): New.
1732
1733 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1734
1735         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1736         goto for vec_concat and vec_interleave.
1737
1738 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1739
1740         * config/i386/sse.md (vec_initv4sf): Removed.
1741         (vec_initv2df): Likewise.
1742         (vec_initv2di): Likewise.
1743         (vec_initv4si): Likewise.
1744         (vec_initv8hi): Likewise.
1745         (vec_initv16qi): Likewise.
1746         (vec_init<mode>): New.
1747
1748 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1749
1750         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1751
1752 2008-05-21  Tom Tromey  <tromey@redhat.com>
1753
1754         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1755         (zone_find_object_offset): Likewise.
1756         (gt_ggc_m_S): Likewise.
1757         (highest_bit): Likewise.
1758         * ggc-page.c (gt_ggc_m_S): New function.
1759         * stringpool.c (string_stack): Remove.
1760         (init_stringpool): Update.
1761         (ggc_alloc_string): Use ggc_alloc.
1762         (maybe_delete_ident): New function.
1763         (ggc_purge_stringpool): Likewise.
1764         (gt_ggc_m_S): Remove.
1765         * ggc-common.c (ggc_protect_identifiers): New global.
1766         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1767         ggc_protect_identifiers.
1768         * ggc.h (ggc_protect_identifiers): Declare.
1769         (gt_ggc_m_S): Update.
1770         (ggc_purge_stringpool): Declare.
1771         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1772         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1773         special case.
1774         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1775
1776 2008-05-21  David S. Miller  <davem@davemloft.net>
1777
1778         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1779         tmake_file.
1780
1781 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1782
1783         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1784         once finished.
1785
1786 2008-05-20  David Daney  <ddaney@avtrex.com>
1787
1788         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1789         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1790         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1791         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1792         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1793         (atomic_hiqi_op): New define_code_iterator.
1794         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1795         mips_expand_compare_and_swap_12.
1796         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1797         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1798         (sync_<optab><mode>, sync_old_<optab><mode>,
1799         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1800         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1801         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1802         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1803         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1804         (test_and_set_12): New insn.
1805         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1806         sync_new_<optab><mode>, sync_old_nand<mode>,
1807         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1808         clobber to operand 0 for SI and DI mode insns.
1809         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1810         mips_gen_fn_4): New typedefs.
1811         (mips_gen_fn_ptrs): Define new union type.
1812         (mips_expand_compare_and_swap_12): Remove declaration.
1813         (mips_expand_atomic_qihi): Declare function.
1814         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1815         (mips_expand_atomic_qihi): ... this.  Use new generator function
1816         parameter.
1817         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1818         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1819         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1820         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1821         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1822         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1823         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1824         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1825         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1826         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1827         New macros.
1828
1829 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1830
1831         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1832         the missing break.
1833
1834 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1835
1836         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1837         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1838         (avr_attribute_table): Add 'OS_main' function attribute.
1839         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1840         functions with 'OS_main' attribute.
1841
1842 2008-05-20  Richard Guenther  <rguenther@suse.de>
1843
1844         PR tree-optimization/35204
1845         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1846         helper, split out from ...
1847         (DFS): ... here.  Make the DFS walk non-recursive.
1848
1849 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1850             Jan Sjodin  <jan.sjodin@amd.com>
1851
1852         PR tree-optimization/36181
1853         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1854         (parallelize_loops): Don't parallelize when the loop has vector
1855         phi nodes.
1856
1857 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1858             Sebastian Pop  <sebastian.pop@amd.com>
1859
1860         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1861         matrix, and never look at the tree representation of the memory
1862         accesses.
1863         (linear_transform_loops): Computes parameters and access matrices.
1864         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1865         when fails.
1866         (access_matrix_get_index_for_parameter): New.
1867         * tree-data-ref.h (struct access_matrix): New.
1868         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1869         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1870         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1871         am_vector_index_for_loop): New.
1872         (struct data_reference): Add field access_matrix.
1873         (DR_ACCESS_MATRIX): New.
1874         (compute_data_dependences_for_loop): Update declaration.
1875         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1876         * lambda.h (lambda_vector_vec_p): Declared.
1877         * lambda-code.c: Depend on pointer-set.h.
1878         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1879         av_for_af_base, av_for_af, build_access_matrix,
1880         lambda_compute_access_matrices): New.
1881         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1882
1883 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1884
1885         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1886         $SOURCEDIR/include.
1887
1888 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1889             Sebastian Pop  <sebastian.pop@amd.com>
1890
1891         PR tree-optimization/36206
1892         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1893         FOLD_CONVERSIONS.
1894         (instantiate_scev_1): Rename flags to fold_conversions.
1895         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1896         outeside instantiation_loop.
1897         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1898         (evolution_function_is_affine_or_constant_p): Removed.
1899         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1900         instantiate_scev.
1901         (analyze_siv_subscript): Pass in the loop nest number.
1902         Call evolution_function_is_affine_in_loop instead of 
1903         evolution_function_is_affine_p.
1904         (analyze_overlapping_iterations): Pass in the loop nest number.
1905
1906 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1907             Sebastian Pop  <sebastian.pop@amd.com>
1908
1909         PR tree-optimization/36206
1910         * tree-chrec.h (chrec_fold_op): New.
1911         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1912         and other trees.
1913
1914 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1915
1916         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1917         (DIRS_EQ): New.
1918         (remove_duplicates): Do not set inode on non-inode systems.
1919         Use DIRS_EQ.
1920
1921 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1922
1923         * config.gcc (tm_file): Update comments about relative pathnames.
1924
1925 2008-05-20  Richard Guenther  <rguenther@suse.de>
1926
1927         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1928         * tree-ssa-sccvn.c (process_scc): Likewise.
1929         * tree-ssa-sink.c (execute_sink_code): Likewise.
1930         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1931         * tree-vrp.c (process_assert_insertions): Likewise.
1932         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1933         (perform_tree_ssa_dce): Likewise.
1934         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1935         (dump_dominator_optimization_stats): Likewise.
1936         * tree-vectorizer.c (vectorize_loops): Likewise.
1937
1938 2008-05-20  Richard Guenther  <rguenther@suse.de>
1939
1940         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1941
1942 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1943
1944         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1945         (ix86_i386elf_return_in_memory): Likewise.
1946         (ix86_i386interix_return_in_memory): Likewise.
1947         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1948         (SUBTARGET_RETURN_IN_MEMORY): New.
1949         * config/i386/i386elf.h: Likewise.
1950         * config/i386/ptx4-i.h: Likewise.
1951         * config/i386/sol2-10.h: Likewise.
1952         * config/i386/sysv4.h: Likewise.
1953         * config/i386/vx-common.h: Likewise.
1954         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1955         * config/i386/i386.c (ix86_return_in_memory): Made static and
1956         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1957         (ix86_i386elf_return_in_memory): Removed.
1958         (ix86_i386interix_return_in_memory): Removed.
1959         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1960         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1961
1962 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1963
1964         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1965
1966 2008-05-19  Xinliang David Li  <davidxl@google.com>
1967
1968         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1969         * opts.c: Ditto.
1970         * common.opt: Ditto.
1971         * doc/invoke.texi: Ditto.
1972
1973 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1974
1975         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1976         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1977
1978 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1979
1980         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1981         sizes of operand array from 8/4 to 4/2.
1982         (ix86_expand_vector_init_general): Change size of operand array
1983         from 32 to 16.  Remove op0, op1 and half_mode.
1984
1985 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1986
1987         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1988         (ix86_expand_vector_init_interleave): Likewise.
1989         (ix86_expand_vector_init_general): Use them.  Assert
1990         word_mode == SImode when n_words == 4.
1991
1992 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1993
1994         * config/i386/i386.c (ix86_secondary_reload): New static function.
1995         (TARGET_SECONDARY_RELOAD): New define.
1996         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1997         * config/i386/i386.md (reload_outqi): Remove.
1998
1999 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2000
2001         PR middle-end/35509
2002         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2003         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2004         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2005         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2006         (fold_builtin_1): Likewise.
2007         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2008         c-common.c (check_builtin_function_arguments): Handle
2009         BUILT_IN_ISINF_SIGN.
2010         * doc/extend.texi: Document __builtin_isinf_sign.
2011         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2012
2013 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2014
2015         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2016         EH cleanup at the end of the pass, search for those that have been
2017         turned into forwarder blocks and do the cleanup on their successor.
2018
2019 2008-05-18  Richard Guenther  <rguenther@suse.de>
2020
2021         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2022         pointers to sizetype and vice versa.
2023
2024 2008-05-18 Xinliang David Li   <davidxl@google.com>
2025
2026         * gcc/tree-ssa-dce.c: Coding style fix.
2027         (check_pow): Documentation comment. 
2028         (check_log): Documenation comment. Coding style fix.
2029         (is_unnecessary_except_errno_call): Ditto.
2030         (gen_conditions_for_pow): Ditto.
2031         (gen_conditions_for_log): Ditto.
2032         (gen_shrink_wrap_conditions): Ditto.
2033         (shrink_wrap_one_built_in_calls): Ditto.
2034         * gcc/doc/invoke.texi: Better documentation string.
2035         * ChangeLog: Fix wrong change log entries from 
2036         May 17 checkin on function call DCE.
2037
2038 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2039
2040         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2041
2042 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2043
2044         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2045         * df-problems.c (simulation routines): Fixed block comment to
2046         properly say how to add forwards scanning functions.
2047         
2048 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2049
2050         * tree-inline.c (setup_one_parameter): Remove dead code.
2051
2052 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2053
2054         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2055         a BIT_AND_EXPR only for an INTEGER_TYPE.
2056
2057 2008-05-17 Xinliang David Li   <davidxl@google.com>
2058
2059         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2060         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2061         functions to check for eliminating math functions that are pure 
2062         except for setting errno.
2063         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2064         general condition expressions for shrink-wrapping pow/log calls.
2065         (gen_shrink_wrap_conditions): Ditto.
2066         (shrink_wrap_one_built_in_call): Ditto.
2067         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2068         (mark_operand_necessary): If debugging, output if OP is necessary.
2069         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2070         unnecessary.
2071         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2072         opt level >= 2.
2073         * gcc/common.opt: New user flag -ftree-builtin-dce.
2074         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2075
2076 2008-05-16  David S. Miller  <davem@davemloft.net>
2077
2078         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2079         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2080
2081 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2082
2083         PR target/36246
2084         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2085
2086 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2087
2088         * ifcvt.c (dead_or_predicable): Rename
2089         df_simulate_one_insn_backwards to df_simulate_one_insn.
2090         * recog.c (peephole2_optimize): Ditto.
2091         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2092         Ditto.
2093         * df.h: Rename df_simulate_one_insn_backwards to
2094         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2095         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2096         scanning of defs and uses.
2097         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2098         (df_simulate_one_insn_forwards): Removed.
2099
2100 2008-05-16  Doug Kwan  <dougkwan@google.com>
2101
2102         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2103         QNaN & SNaN.
2104         (real_from_string): Handle NaNs and Inf as approriate.
2105
2106 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2107
2108         * doc/gty.texi (Source Files Containing Type Information): Note
2109         that headers should appear first in the gtfiles list.
2110
2111 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2112
2113         * tree.def (COND_EXEC): Properly documented this code.
2114
2115 2008-05-16  Diego Novillo  <dnovillo@google.com>
2116
2117         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2118         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2119         the new field.
2120
2121 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2122
2123         * tree-ssa-dse (max_stmt_uid): Removed.
2124         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2125         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2126         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2127         * function.h (cfun.last_stmt_uid): New field.
2128         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2129         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2130         New functions.
2131         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2132         (create_stmt_ann): Initialize the ann->uid field.
2133         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2134         with new calls.
2135         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2136
2137 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2138
2139         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2140         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2141         (init_empty_tree_cfg): Call it.
2142
2143 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2144
2145         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2146         Update all users.
2147
2148 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2149
2150         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2151         * tree-dump.c (dump_options): New verbose option.
2152         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2153         Add verbose dump.
2154         * tree-pass.h (TDF_VERBOSE): New dump flag.
2155         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2156         (tree-flow.h): Added include.
2157         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2158
2159 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2160
2161         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2162
2163         From Jie Zhang  <jie.zhang@analog.com>
2164         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2165         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2166         mcpu=bf561-none and mcpu=bf561-0.2.
2167         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2168         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2169         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2170         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2171         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2172         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2173         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2174         option.
2175         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2176         (cputype_selected): Remove.
2177         (bfin_handle_option): Don't use cputype_selected.
2178         (override_options): When no mcpu option, enable all workarounds.
2179         Don't use bfin_workarounds.
2180         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2181         processor type.
2182         (DEFAULT_CPU_TYPE): Don't define.
2183
2184 2008-05-16  Richard Guenther  <rguenther@suse.de>
2185
2186         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2187         on deletion of the last stmt.
2188
2189 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2190
2191         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2192         V8HImode for SSE2 and V16QImode for SSE4.1.
2193
2194 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2195
2196         * cgraph.h (compute_inline_parameters): Made public.
2197         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2198         variable_generate_summary, function_write_summary,
2199         variable_write_summary, variable_read_summary.  Added generate_summary,
2200         write_summary, read_summary.
2201         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2202         pass_ipa_inline.function_generate_summary, to
2203         compute_inline_parameters. 
2204         * ipa-inline.c (compute_inline_parameters): Made public and added
2205         node parameter.
2206         (compute_inline_parameters_for_current): New function.
2207         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2208         (inline_generate_summary): Removed parameter and made to loop over
2209         all cgraph nodes.
2210         (pass_ipa_inline): Updated for new IPA_PASS structure.
2211         * passes.c (execute_ipa_summary_passes): Now is called once per
2212         pass rather than once per node*pass.
2213         
2214 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2215
2216         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2217         avr_have_mul_p, avr_asm_only_p): Remove variables.
2218         (avr_override_options): Remove initialization of removed variables.
2219         (avr_file_start):  Convert removed variables to fields of 
2220         'struct base_arch_s *avr_current_arch'. 
2221         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2222         (AVR_HAVE_MUL): (Ditto.).
2223         (AVR_HAVE_MOVW): (Ditto.).
2224         (AVR_HAVE_LPMX): (Ditto.). 
2225         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2226         avr_asm_only_p): Remove declaration.
2227
2228 2008-05-15  Diego Novillo  <dnovillo@google.com>
2229
2230         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2231         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2232
2233 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2234
2235         PR middle-end/36194
2236         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2237         Don't call record_truncated_value from here.
2238         (record_truncated_value): Turn it into a for_each_rtx callback.
2239         (record_truncated_values): New function.
2240         (combine_instructions): Call note_uses with record_truncated_values.
2241         Change name of check_conversion to check_promoted_subreg. 
2242
2243 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2244
2245         * doc/sourcebuild.texi: Document support for torture tests.
2246
2247 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2248
2249         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2250         to alternative 4 of operand 2.
2251
2252 2008-05-15  Richard Guenther  <rguenther@suse.de>
2253
2254         * tree-pass.h (current_pass): Declare.
2255         (get_pass_for_id): Likewise.
2256         * passes.c (passes_by_id, passes_by_id_size): New globals.
2257         (set_pass_for_id): New function.
2258         (get_pass_for_id): Likewise.
2259         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2260         (execute_function_todo): Flush per function statistics.
2261         * toplev.c (compile_file): Init statistics.
2262         (general_init): Do early statistics initialization.
2263         (finalize): Finish statistics.
2264         * statistics.h (statistics_early_init): Declare.
2265         (statistics_init): Likewise.
2266         (statistics_fini): Likewise.
2267         (statistics_fini_pass): Likewise.
2268         (statistics_counter_event): Likewise.
2269         (statistics_histogram_event): Likewise.
2270         * statistics.c: New file.
2271         * Makefile.in (OBJS-common): Add statistics.o.
2272         (statistics.o): Add dependencies.
2273         * doc/invoke.texi (-fdump-statistics): Document.
2274
2275         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2276         (insert): Likewise.
2277         (execute_pre): Use statistics_counter_event.
2278         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2279         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2280
2281 2008-05-15  Diego Novillo  <dnovillo@google.com>
2282
2283         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2284
2285         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2286         * tree-ssa-alias.c (new_type_alias): Remove references to
2287         sub-variables from comment.
2288         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2289
2290 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2291
2292         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2293         attribute to 1 only for insertps alternative.
2294
2295 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2296
2297         * config/bfin/bfin.md (loadbytes): New pattern.
2298         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2299         (bfin_init_builtins): Initialize it.
2300         (bdesc_1arg): Add it.
2301
2302 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2303
2304         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2305         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2306         * testsuite/lib/target-supports.exp: Add
2307         check_effective_target_fortran_integer_16.
2308
2309 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2310
2311         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2312         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2313         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2314         (TARGET_RETURN_IN_MEMORY): Define.
2315
2316 2008-05-15  Richard Guenther  <rguenther@suse.de>
2317
2318         PR middle-end/36244
2319         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2320         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2321         represent unmodifiable vars.
2322
2323 2008-05-15  Richard Guenther  <rguenther@suse.de>
2324
2325         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2326         INDIRECT_REF and TARGET_MEM_REF.
2327         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2328         TARGET_MEM_REF.
2329
2330 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2331             H.J. Lu  <hongjiu.lu@intel.com>
2332
2333         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2334         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2335         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2336         insn alternatives.  Add missing alternatives.
2337         (*vec_concatv2di_rex64_sse4_1): Likewise.
2338         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2339         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2340         Require TARGET_SSE.
2341
2342 2008-05-15  Richard Guenther  <rguenther@suse.de>
2343
2344         PR tree-optimization/36009
2345         PR tree-optimization/36204
2346         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2347         (determine_invariantness_stmt): Record the loop a store is
2348         always executed in.
2349         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2350         dependency.
2351
2352 2008-05-15  Richard Guenther  <rguenther@suse.de>
2353
2354         PR tree-optimization/34330
2355         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2356         through the pointer will alias the SMT.
2357
2358 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2359
2360         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2361
2362 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2363
2364         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2365
2366 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2367             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2368
2369         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2370         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2371         (vashl_optab): New optab for vector/vector shifts.
2372         (vashr_optab): Ditto.
2373         (vlshr_optab): Ditto.
2374         (vrotl_optab): Ditto.
2375         (vrotr_optab): Ditto.
2376         (optab_subtype): New enum for optab_for_tree_code call.
2377         (optab_for_tree_code): Add enum optab_subtype argument.
2378
2379         * optabs.c (optab_for_tree_code): Take an additional argument to
2380         distinguish between a vector shift by a scalar and vector shift by
2381         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2382         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2383         vector shift by a vector.
2384         (expand_widen_pattern_expr): Pass additional argument to
2385         optab_for_tree_code.
2386
2387         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2388         vrotl_optab, vrotr_optab.
2389
2390         * expr.c (expand_expr_real_1): Update calls to
2391         optab_for_tree_code to distinguish between vector shifted by a
2392         scalar and vector shifted by a vector.
2393         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2394         (supportable_narrowing_operation): Ditto.
2395         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2396         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2397         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2398         (vect_create_epilog_for_reduction): Ditto.
2399         (vectorizable_reduction): Ditto.
2400         (vectorizable_operation): Ditto.
2401         (vect_strided_store_supported): Ditto.
2402         (vect_strided_load_supported): Ditto.
2403         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2404         * expmed.c (expand_shift): Ditto.
2405
2406         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2407         scalar type.
2408         (ashr@var{m}3): Ditto.
2409         (vashl@var{m}3): Document new vector/vector shift standard name.
2410         (vashr@var{m}3): Ditto.
2411         (vlshr@var{m}3): Ditto.
2412         (vrotl@var{m}3): Ditto.
2413         (vrotr@var{m}3): Ditto.
2414
2415         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2416         (PPERM_INVERT): Ditto.
2417         (PPERM_REVERSE): Ditto.
2418         (PPERM_REV_INV): Ditto.
2419         (PPERM_ZERO): Ditto.
2420         (PPERM_ONES): Ditto.
2421         (PPERM_SIGN): Ditto.
2422         (PPERM_INV_SIGN): Ditto.
2423         (PPERM_SRC1): Ditto.
2424         (PPERM_SRC2): Ditto.
2425
2426         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2427         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2428         allows a memory operand to be the value being added, and split it
2429         to improve vectorization.
2430         (sse5_pmacsdqh_mem): Ditto.
2431         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2432         (sse5_mulv2div2di3_high): Ditto.
2433         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2434         (vec_pack_trunc_v4si): Ditto.
2435         (vec_pack_trunc_v2di): Ditto.
2436         (sse5_pcmov_<mode>): Remove code that tried to use use
2437         andps/andnps instead of pcmov.
2438         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2439         pmacsdqh instructions.
2440         (vec_widen_smult_lo_v4si): Ditto.
2441
2442         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2443         (PPERM_INVERT): Ditto.
2444         (PPERM_REVERSE): Ditto.
2445         (PPERM_REV_INV): Ditto.
2446         (PPERM_ZERO): Ditto.
2447         (PPERM_ONES): Ditto.
2448         (PPERM_SIGN): Ditto.
2449         (PPERM_INV_SIGN): Ditto.
2450         (PPERM_SRC1): Ditto.
2451         (PPERM_SRC2): Ditto.
2452         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2453         true/false tests.
2454         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2455         comparisons.
2456         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2457         says ignore whether the last reference is a memory operand.
2458
2459 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2460             Paolo Bonzini <bonzini at gnu dot org>
2461
2462         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2463         shift patterns.
2464
2465         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2466         (vlshr<mode>3): Rename from vlshr<mode>3.
2467         (vashr<mode>3): Rename from vashr<mode>3.
2468         (mulv4sf3): Change the names of vector shift patterns.
2469         (mulv4si3): Ditto.
2470         (negv4sf2): Ditt.
2471
2472         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2473         shift insns.
2474
2475         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2476         (SI_SHLHI): Ditto.
2477         (SI_SHL): Ditto.
2478         (SI_SHLI): Ditto.
2479         (SI_ROTH): Ditto.
2480         (SI_ROTHI): Ditto.
2481         (SI_ROT): Ditto.
2482         (SI_ROTI): Ditto.
2483         (SPU_RL_0): Ditto.
2484         (SPU_RL_1): Ditto.
2485         (SPU_RL_2): Ditto.
2486         (SPU_RL_3): Ditto.
2487         (SPU_RL_4): Ditto.
2488         (SPU_RL_5): Ditto.
2489         (SPU_RL_6): Ditto.
2490         (SPU_RL_7): Ditto.
2491         (SPU_SL_0): Ditto.
2492         (SPU_SL_1): Ditto.
2493         (SPU_SL_2): Ditto.
2494         (SPU_SL_3): Ditto.
2495         (SPU_SL_4): Ditto.
2496         (SPU_SL_5): Ditto.
2497         (SPU_SL_6): Ditto.
2498         (SPU_SL_7): Ditto.
2499
2500         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2501         (floatunssidf2_internal): Change vector/vector shift names.
2502         (floatunsdidf2_internal): Ditto.
2503         (mulv8hi3): Ditto.
2504         (ashrdi3): Ditto.
2505         (ashrti3): Ditto.
2506         (cgt_df): Ditto.
2507         (cgt_v2df): Ditto.
2508         (dftsv): Ditto.
2509         (vashl<mode>3): Rename from ashl<mode>3.
2510         (vashr<mode>3): Rename from ashr<mode>3.
2511         (vlshr<mode>3): Rename from lshr<mode>3.
2512         (vrotl<mode>3): Rename from rotl<mode>3.
2513
2514 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2515
2516         PR target/36224
2517         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2518         multiply gives the wrong value when doing widening multiplies.
2519         (vec_widen_smult_lo_v4si): Ditto.
2520
2521 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2522
2523         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2524         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2525         emit_library_call_value. 
2526         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2527         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2528         * calls.c (initialize_argument_information, precompute_arguments, 
2529         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2530         (precompute_arguments): Removed flags parameter.
2531         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2532         
2533 2008-05-14  Richard Guenther  <rguenther@suse.de>
2534
2535         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2536         Make sure to register the store if the use is a PHI_NODE.
2537
2538 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2539
2540         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2541         memory if the component is to be referenced in BLKmode according
2542         to get_inner_reference.
2543
2544 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2545
2546         * calls.c (emit_library_call_value_1): Restore code clearing
2547         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2548
2549 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2550             Nicolas Roche  <roche@adacore.com>
2551
2552         * configure.ac: Add support for a "gcc_subdir" variable in
2553         config-lang.in, to denote a subdirectory where the language/GCC
2554         integration files are to be found.
2555         * configure: Regenerate.
2556
2557 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2558
2559         PR tree-optimization/36098
2560         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2561         value for the first load in the group in case of a gap.
2562         (vect_build_slp_tree): Check that there are no gaps in loads.
2563
2564 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2565
2566         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2567         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2568         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2569         emit_insn and remove unneeded code to construct extra args.
2570         (emit_no_conflict_block): Removed.
2571         * optabls.h: (emit_no_conflict_block): Removed.
2572         * cse.c (cse_extended_basic_block): Remove search for
2573         REG_NO_CONFLICT note.
2574         * global.c: Removed incorrect comment added in revision 117.
2575         * expr.c (convert_move): Change call to emit_no_conflict_block to
2576         emit_insn.
2577         * recog.c: Change comments so that they do not mention
2578         REG_NO_CONFLICT.
2579         * local_alloc.c (combine_regs): Removed last parameter.
2580         (no_conflict_p): Removed.
2581         (block_alloc): Removed note, no_conflict_combined_regno and set
2582         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2583         (combine_regs): Removed already_dead and code to look for
2584         REG_NO_CONFLICT notes.
2585         * lower_subreg (remove_retval_note): Removed code to look for
2586         REG_NO_CONFLICT block.
2587         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2588         (resolve_clobber): Remove code to process libcalls that have
2589         REG_NO_CONFLICT notes.
2590         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2591         case.
2592         * combine.c (can_combine_p, distribute_notes):  Removed
2593         REG_NO_CONFLICT case.
2594         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2595         to emit_insns.
2596         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2597         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2598         Ditto.
2599         * reg-notes.def (NO_CONFLICT): Removed.
2600
2601 2008-05-14  David S. Miller  <davem@davemloft.net>
2602
2603         * config/sparc/sparc.c (sparc_profile_hook): If
2604         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2605         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2606         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2607
2608 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2609
2610         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2611
2612 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2613
2614         PR target/36222
2615         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2616         and op1 expansion before vector concat to have less live pseudos.
2617
2618 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2619
2620         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2621         ix86_expand_vector_set if supported.
2622
2623 2008-05-13  Diego Novillo  <dnovillo@google.com>
2624             Kenneth Zadeck  <zadeck@naturalbridge.com>
2625
2626         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2627
2628         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2629         phinodes_print_statistics, init_ssanames, fini_ssanames,
2630         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2631         release_ssa_name, release_defs, replace_ssa_name_symbol,
2632         ssanames_print_statistics): Move ...
2633         * tree-flow.h: ... here.
2634         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2635         Use FN instead of cfun.
2636         (make_ssa_name_fn): Rename from make_ssa_name.
2637         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2638         * tree-flow-inline.h (make_ssa_name): Move from
2639         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2640         * omp-low.c (expand_omp_parallel):
2641         * tree-flow-inline.h (redirect_edge_var_map_result):
2642         * tree-ssa.c (init_tree_ssa): Add argument FN.
2643         Use it instead of cfun.  Update all users.
2644
2645 2008-05-13  Tom Tromey  <tromey@redhat.com>
2646
2647         PR preprocessor/22168:
2648         * doc/cpp.texi (Top): Update menu.
2649         (Alternatives to Wrapper #ifndef): New node.
2650         (Other Directives): Document deprecation.
2651         (Obsolete Features): Remove menu.
2652         (Assertions): Merge node into Obsolete Features.
2653         (Obsolete once-only headers): Move earlier; rename to Alternatives
2654         to Wrapper #ifndef.
2655         * doc/cppopts.texi: Update.
2656         * c.opt (Wdeprecated): Enable for C and ObjC.
2657         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2658         (C++ Dialect Options): Move -Wno-deprecated from here to...
2659         (Warning Options): ... here.
2660
2661 2008-05-13  Richard Guenther  <rguenther@suse.de>
2662
2663         PR middle-end/36227
2664         * fold-const.c (fold_sign_changed_comparison): Do not allow
2665         changes in pointer-ness.
2666
2667 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2668
2669         PR target/24713
2670         * config/sh/sh.c (sh_expand_prologue): Don't clear
2671         RTX_FRAME_RELATED_P for push insns.
2672
2673 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2674
2675         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2676
2677 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2678
2679         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2680         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2681         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2682
2683 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2684
2685         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2686         (*vec_concatv4sf_sse): This.
2687         (*sse2_concatv2si): Renamed to ...
2688         (*vec_concatv2si_sse2): This.
2689         (*sse1_concatv2si): Renamed to ...
2690         (*vec_concatv2si_sse): This.
2691         (*vec_concatv2di_rex): Renamed to ...
2692         (*vec_concatv2di_rex64): This.
2693         (*vec_concatv2si_sse4_1): New.
2694         (*vec_concatv2di_rex64_sse4_1): Likewise.
2695
2696 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2697
2698         PR rtl-optimization/36111
2699         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2700         that was created for swappable operands.
2701
2702 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2703
2704         PR ada/36001
2705         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2706         * configure.ac: Add call to ACX_PROG_GNAT.
2707
2708 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2709
2710         * optc-gen.awk: Fix comment typo.
2711
2712 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2713
2714         * pretty-print.c (pp_integer_with_precision): Use
2715         HOST_LONG_LONG_FORMAT.
2716
2717 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2718
2719         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2720                 
2721 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2722
2723         * config/i386/i386.c (bdesc_ptest): Removed.
2724         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2725         (bdesc_args): Add __builtin_ia32_ptestz128,
2726         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2727         (ix86_init_mmx_sse_builtins): Updated.
2728         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2729         (ix86_expand_builtin): Updated.
2730
2731 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2732
2733         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2734         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2735
2736 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2737
2738         * value-prof.c (interesting_stringop_to_profile): Do not
2739         return early for BUILT_IN_MEMPCPY.
2740
2741 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2742
2743         * calls.c (expand_call): Don't use callgraph to increase
2744         preferred_stack_boundary.
2745
2746         * cgraph.h (cgraph_rtl_info): Use unsigned on
2747         preferred_incoming_stack_boundary.
2748
2749         * final.c (rest_of_clean_state): Use unsigned on
2750         preferred_stack_boundary.
2751
2752 2008-05-09  Tom Tromey  <tromey@redhat.com>
2753
2754         PR preprocessor/22231:
2755         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2756         proceeding.
2757
2758 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2759
2760         PR tree-optimization/36129
2761         * tree-ssa-ccp.c: Include value-prof.h.
2762         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2763         built-in function was folded to a constant.
2764         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2765
2766 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2767             Sebastian Pop  <sebastian.pop@amd.com>
2768
2769         * tree-scalar-evolution.c: Document instantiate_scev.
2770         (instantiate_parameters_1): Renamed instantiate_scev_1.
2771         Don't use the same loop for instantiation_loop and evolution_loop.
2772         (instantiate_scev): New.
2773         (instantiate_parameters): Moved...
2774         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2775         same loop twice.  Maintains the semantics for this function.
2776         * tree-scalar-evolution.h (instantiate_scev): Declare.
2777         (instantiate_parameters): ...here.  Now static inline.
2778         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2779         instead of resolve_mixers.
2780
2781 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2782
2783         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2784
2785 2008-05-09  Tomas Bily  <tbily@suse.cz>
2786
2787         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2788         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2789         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2790         * c-common.c (c_common_truthvalue_conversion): Likewise.
2791         * tree-object-size.c (compute_object_offset): Likewise.
2792         * tree-inline.c (estimate_num_insns_1): Likewise.
2793         * varasm.c (const_hash_1, compare_constant, copy_constant)
2794         (compute_reloc_for_constant, output_addressed_constants)
2795         (initializer_constant_valid_p): Likewise.
2796         * c-omp.c (check_omp_for_incr_expr): Likewise.
2797         * gimplify.c (gimplify_expr): Likewise.
2798         * c-typeck.c (c_finish_return): Likewise.
2799         * tree-vectorizer.c (supportable_widening_operation)
2800         (supportable_narrowing_operation): Likewise.
2801         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2802         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2803         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2804         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2805         (descr_info_loc): Likewise.
2806         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2807         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2808         (fold_unary): Likewise.
2809         * builtins.c (get_pointer_alignment): Likewise.
2810         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2811         (instantiate_parameters_1): Likewise.
2812         * tree.c (expr_align, stabilize_reference): Likewise.
2813         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2814         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2815         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2816         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2817         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2818         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2819         Likewise.
2820         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2821         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2822         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2823         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2824         (forward_propagate_comparison)
2825         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2826         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2827         * emit-rtl.c (component_ref_for_mem_expr)
2828         (set_mem_attributes_minus_bitpos): Likewise.
2829         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2830         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2831         Likewise.
2832         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2833         (build_function_call, pointer_diff, build_compound_expr)
2834         (c_finish_return): Likewise.
2835         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2836         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2837         Likewise.
2838         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2839         * expr.c (is_aligning_offset): Likewise.
2840         * tree-ssa-alias.c (is_escape_site): Likewise.
2841         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2842         (check_all_va_list_escapes): Likewise.
2843         * tree-ssa-loop-ivopts.c (determine_base_object)
2844         (determine_common_wider_type): Likewise.
2845         * dojump.c (do_jump): Likewise.
2846         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2847         * tree-gimple.c (is_gimple_cast): Likewise.
2848         * fold-const.c (decode_field_reference, )
2849         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2850         (fold_binary): Likewise.
2851         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2852         (already_warned_in_frontend_p): Likewise.
2853         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2854         * tree.c (really_constant_p, get_unwidened): Likewise.
2855         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2856         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2857         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2858         Likewise.
2859         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2860         CONVERT_EXPR_P.
2861         (CONVERT_EXPR_P): Define.
2862         (CASE_CONVERT): Define.
2863         
2864 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2865
2866         PR middle-end/36117
2867         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2868         (delete_unmarked_insns): When deleting a call, call
2869         delete_unreachable_blocks.
2870         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2871         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2872
2873 2008-05-08  Richard Guenther  <rguenther@suse.de>
2874
2875         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2876         (-ftree-salias): Likewise.
2877         (salias-max-implicit-fields): Remove param documentation.
2878         (salias-max-array-elements): Likewise.
2879         * tree-pass.h (pass_create_structure_vars): Remove.
2880         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2881         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2882         * tree-ssa-alias.c (create_structure_vars): Remove.
2883         (gate_structure_vars): Likewise.
2884         (pass_create_structure_vars): Likewise.
2885         (gate_build_alias): Likewise.
2886         (pass_build_alias): Adjust to run always and dump the function.
2887         * common.opt (ftree-salias): Hide.
2888         * passes.c (init_optimization_passes): Remove
2889         pass_create_structure_vars, adjust comment.
2890         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2891         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2892         * opts.c (decode_options): Do not set flag_tree_salias.
2893         (common_handle_option): Add OPT_ftree_salias to the backward
2894         compatibility section.
2895
2896 2008-05-08  Richard Guenther  <rguenther@suse.de>
2897
2898         * tree-flow-inline.h (var_can_have_subvars): Move ...
2899         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2900         * tree-flow.h (var_can_have_subvars): Remove.
2901         (push_fields_onto_fieldstack): Remove.
2902         (sort_fieldstack): Likewise.
2903         (struct fieldoff): Move ...
2904         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2905         alias_set and base_for_components fields.
2906         (sort_fieldstack): Make static.
2907         (push_fields_onto_fieldstack): Likewise.  Remove code that
2908         handles anything but RECORD_TYPEs.  Remove alias_set and
2909         base_for_components handling.
2910         (create_variable_info_for): Adjust.
2911
2912 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2913
2914         * common.opt (Wframe-larger-than=): Shorten the help message
2915         to one line.
2916         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2917
2918 2008-05-08  Rafael Espindola  <espindola@google.com>
2919
2920         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2921         trap.
2922         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2923         trap and that both operands are gimple values.
2924         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2925         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2926         is a fp operation.
2927
2928 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2929
2930         * read-rtl.c (join_c_conditions): Return the first string if the
2931         two strings are equal.
2932
2933 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2934
2935         * gensupport.h (pred_data): Add a "num_codes" field.
2936         (add_predicate_code): Declare.
2937         * gensupport.c (add_predicate_code): New function.
2938         (std_pred_table): Add an "allows_const_p" field.
2939         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2940         Remove the (incomplete) list of such codes from the codes field.
2941         (init_predicate_table): Use add_predicate_code.  Add all
2942         RTX_CONST_OBJs if allows_const_p is true.
2943         * genrecog.c (process_define_predicate): Use add_predicate_code.
2944
2945 2008-05-08  David Daney  <ddaney@avtrex.com>
2946             Richard Sandiford  <rsandifo@nildram.co.uk>
2947         
2948         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2949         special case of constant zero operands.
2950         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2951         old and new values.  Special case constant zero values.
2952         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2953         fails.
2954         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2955         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2956
2957 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2958
2959         PR target/36090
2960         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2961         similar RTX_CONST_OBJ before CONST_INT.
2962
2963 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2964
2965         * stmt.c (expand_stack_restore): Change sa mode if needed.
2966
2967 2008-05-08  Richard Guenther  <rguenther@suse.de>
2968
2969         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2970         return type to bool.
2971         (ix86_sol10_return_in_memory): Likewise.
2972         (ix86_i386elf_return_in_memory): Likewise.
2973         (ix86_i386interix_return_in_memory): Likewise.
2974         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2975         (ix86_sol10_return_in_memory): Likewise.
2976         (ix86_i386elf_return_in_memory): Likewise.
2977         (ix86_i386interix_return_in_memory): Likewise.
2978
2979 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2980
2981         PR bootstrap/36180
2982         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2983         fndecl argument.
2984         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2985         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2986         declared in front.
2987
2988 2008-05-08  Richard Guenther  <rguenther@suse.de>
2989
2990         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2991         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2992         (DR_SUBVARS): Remove.
2993         * tree-dfa.c (dump_subvars_for): Remove.
2994         (debug_subvars_for): Likewise.
2995         (dump_variable): Do not dump subvars.
2996         (remove_referenced_var): Do not remove subvars.
2997         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2998         (lookup_subvars_for_var): Remove.
2999         (get_subvars_for_var): Likewise.
3000         (get_subvars_at): Likewise.
3001         (get_first_overlapping_subvar): Likewise.
3002         (overlap_subvar): Likewise.
3003         * tree-flow.h (subvar_t): Remove.
3004         (struct var_ann_d): Remove subvars field.
3005         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3006         argument.  Remove special handling of SFTs.
3007         (compute_tag_properties): Likewise.
3008         (set_initial_properties): Likewise.
3009         (compute_call_clobbered): Likewise.
3010         (count_mem_refs): Likewise.
3011         (compute_memory_partitions): Likewise.
3012         (compute_flow_insensitive_aliasing): Likewise.
3013         (setup_pointers_and_addressables): Likewise.
3014         (new_type_alias): Likewise.
3015         (struct used_part): Remove.
3016         (used_portions): Likewise.
3017         (struct used_part_map): Likewise.
3018         (used_part_map_eq): Likewise.
3019         (used_part_map_hash): Likewise.
3020         (free_used_part_map): Likewise.
3021         (up_lookup): Likewise.
3022         (up_insert): Likewise.
3023         (get_or_create_used_part_for): Likewise.
3024         (create_sft): Likewise.
3025         (create_overlap_variables_for): Likewise.
3026         (find_used_portions): Likewise.
3027         (create_structure_vars): Likewise.
3028         * tree.def (STRUCT_FIELD_TAG): Remove.
3029         * tree.h (MTAG_P): Adjust.
3030         (struct tree_memory_tag): Remove base_for_components and
3031         unpartitionable flags.
3032         (struct tree_struct_field_tag): Remove.
3033         (SFT_PARENT_VAR): Likewise.
3034         (SFT_OFFSET): Likewise.
3035         (SFT_SIZE): Likewise.
3036         (SFT_NONADDRESSABLE_P): Likewise.
3037         (SFT_ALIAS_SET): Likewise.
3038         (SFT_UNPARTITIONABLE_P): Likewise.
3039         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3040         (union tree_node): Remove sft field.
3041         * alias.c (get_alias_set): Remove special handling of SFTs.
3042         * print-tree.c (print_node): Remove handling of SFTs.
3043         * tree-dump.c (dequeue_and_dump): Likewise.
3044         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3045         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3046         * tree-predcom.c (set_alias_info): Do not set subvars.
3047         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3048         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3049         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3050         (add_vars_for_offset): Remove.
3051         (add_virtual_operand): Remove special handling of SFTs.
3052         (add_call_clobber_ops): Likewise.
3053         (add_call_read_ops): Likewise.
3054         (get_asm_expr_operands): Likewise.
3055         (get_modify_stmt_operands): Likewise.
3056         (get_expr_operands): Likewise.
3057         (add_to_addressable_set): Likewise.
3058         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3059         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3060         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3061         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3062         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3063         (tree_node_structure): Likewise.
3064         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3065         handling of SFTs.
3066         (find_what_p_points_to): Likewise.
3067
3068 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3069
3070         * config/spu/spu.md: Fixed subti3 pattern.
3071
3072 2008-05-08  Richard Guenther  <rguenther@suse.de>
3073
3074         PR middle-end/36154
3075         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3076         sure to create a representative for trailing arrays for PTA.
3077
3078 2008-05-08  Richard Guenther  <rguenther@suse.de>
3079
3080         PR middle-end/36172
3081         * fold-const.c (operand_equal_p): Two objects which types
3082         differ in pointerness are not equal.
3083
3084 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3085
3086         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3087         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3088         (emit_library_call_value_1): Add new variable fndecl initialized by
3089         NULL_TREE. It should be the decl type of orgfun, but this information
3090         seems not to be available here, so it uses the default calling abi.
3091         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3092         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3093         by TARGET_RETURN_IN_MEMORY.
3094         * config/i386/i386-interix.h: Likewise.
3095         * config/i386/i386.h: Likewise.
3096         * config/i386/i386elf.h: Likewise.
3097         * config/i386/ptx4-i.h: Likewise.
3098         * config/i386/sol2-10.h: Likewise.
3099         * config/i386/sysv4.h: Likewise.
3100         * config/i386/vx-common.h: Likewise.
3101         * config/cris/cris.h: Removed #if 0 clause.
3102         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3103         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3104         argument.
3105         (ix86_sol10_return_in_memory): Likewise.
3106         (ix86_i386elf_return_in_memory): New.
3107         (ix86_i386interix_return_in_memory): New.
3108         * config/mt/mt-protos.h (mt_return_in_memory): New.
3109         * config/mt/mt.c: Likewise.
3110         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3111         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3112         * config/bfin/bfin.h: Likewise.
3113         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3114         argument.
3115         * config/bfin/bfin.c: Likewise.
3116         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3117         * config/alpha/unicosmk.h: Likewise.
3118         * config/i386/cygming.h: Likewise.
3119         * config/iq2000/iq2000.h: Likewise.
3120         * config/mips/mips.h: Likewise.
3121         * config/mn10300/mn10300.h: Likewise.
3122         * config/rs6000/rs6000.h: Likewise.
3123         * config/score/score.h: Likewise.
3124         * config/spu/spu.h: Likewise.
3125         * config/v850/v850.h: Likewise.
3126         * defaults.h: Likewise.
3127         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3128         * expr.c (emit_block_move): Adjust use of
3129         OUTGOING_REG_PARM_STACK_SPACE.
3130         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3131         OUTGOING_REG_PARM_STACK_SPACE.
3132         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3133
3134 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3135
3136         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3137         on OMP_RETURN for OMP_FOR.
3138
3139         PR debug/35896
3140         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3141         (fortran_common): New function.
3142         (gen_variable_die): Call fortran_common instead of common_check,
3143         adjust for it returning tree instead of rtx.  Formatting.
3144
3145 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3146
3147         PR rtl/7335
3148         PR rtl/33826
3149         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3150         * c-decl.c (merge_decls): Ditto.
3151         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3152         to RTL_CONST_OR_PURE_CALL_P.
3153         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3154         Initialized DECL_LOOPING_CONST_PURE.
3155         (process_call_operands): Set tree_side_effects properly.
3156         * tree.h (TREE_READONLY_DECL_P): Removed.
3157         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3158         (DECL_LOOPING_OR_CONST_P): New macro.
3159         (struct tree_function_decl): Added looping_const_or_pure_p.
3160         (ECF_*) Renumbered.
3161         (ECF_LOOPING_OR_CONST_P): New macro.
3162         * rtlanal.c (pure_const_p): Removed.
3163         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3164         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3165         to RTL_CONST_CALL_P.
3166         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3167         (check_decl, check_tree, check_call, scan_function): Initialize
3168         looping.
3169         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3170         (static_execute): Set looping true for recursive functions.
3171         Undo setting state to IPA_NEITHER for recursive functions.
3172         * cse.c (cse_insn): 
3173         * ifcvt.c (noce_can_store_speculate_p): Changed
3174         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3175         RTL_CONST_OR_PURE_CALL_P.
3176         * dse.c (scan_insn): Ditto.
3177         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3178         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3179         RTL_CONST_OR_PURE_CALL_P.
3180         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3181         pure_call_p to RTL_CONST_CALL_P.
3182         * gimplify.c (gimplify_call_expr): Clear side effects for
3183         non-looping pure and constant calls.
3184         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3185         (flags_from_decl_or_type): Set ecf flags from decl flags.
3186         (initialize_argument_information): Turn off
3187         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3188         Change const to pure if callee_copies is true rather than just
3189         turning off const.
3190         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3191         way of marking pure calls.
3192         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3193         Remove hack that was supposed to fix pr7335 and remove old
3194         way of marking pure calls.
3195         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3196         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3197         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3198         RTL_CONST_OR_PURE_CALL_P.
3199         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3200         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3201         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3202         * sched-deps.c (schedule_analyze): Ditto.
3203         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3204         return_val field of calls to represent pure and const function info.
3205         (CONST_OR_PURE_CALL_P): Deleted macro.
3206         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3207         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3208         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3209         TREE_READONLY.
3210         * tree-optimize.c (execute_fixup_cfg): Added test for
3211         ECF_LOOPING_CONST_OR_PURE.
3212         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3213         DECL_PURE_P.
3214         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3215         effects for looping pure or const calls.
3216         (verify_gimple_expr): Added verification code. 
3217         * config/alpha/alpha.c (alpha_legitimize_address,
3218         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3219         RTL_CONST_CALL_P.
3220         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3221         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3222         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3223         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3224         RTL_CONST_OR_PURE_CALL_P.
3225         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3226         and const calls to be deleted.
3227
3228 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3229
3230         PR target/35714
3231         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3232         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3233         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3234         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3235         to handle nonimmediate operands.
3236         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3237         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3238         to handle nonimmediate operands.
3239         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3240         (mmx_pmulhrwv4hi3): New expander.  Use
3241         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3242         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3243         (sse2_umulv1siv1di3): New expander.  Use
3244         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3245         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3246         (mmx_eq<mode>3): New expander.  Use
3247         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3248         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3249         (mmx_uavgv8qi3): New expander.  Use
3250         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3251         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3252         (mmx_uavgv4hi3): New expander.  Use
3253         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3254
3255         * config/i386/sse.md
3256         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3257         to handle nonimmediate operands.
3258         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3259         to handle nonimmediate operands.
3260         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3261         to handle nonimmediate operands.
3262         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3263         to handle nonimmediate operands.
3264         (sse2_unpckhpd_exp): New expander.  Use
3265         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3266         (sse2_unpcklpd_exp): New expander.  Use
3267         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3268         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3269         to handle nonimmediate operands.
3270         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3271         to handle nonimmediate operands.
3272         (*sse2_<plusminus_insn><mode>3): Rename from
3273         sse2_<plusminus_insn><mode>3 insn pattern.
3274         (sse2_<plusminus_insn><mode>3): New expander.  Use
3275         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3276         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3277         (sse2_umulv2siv2di3): New expander.  Use
3278         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3279         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3280         (sse4_1_mulv2siv2di3): New expander.  Use
3281         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3282         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3283         (sse2_pmaddwd): New expander.  Use
3284         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3285         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3286         (sse2_eq<mode>3): New expander.  Use
3287         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3288         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3289         (sse4_1_eqv2di3): New expander.  Use
3290         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3291         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3292         (sse2_uavgv16qi3): New expander.  Use
3293         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3294         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3295         (sse2_uavgv16qi3): New expander.  Use
3296         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3297         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3298         (sse2_uavgv8hi3): New expander.  Use
3299         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3300         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3301         (ssse3_pmulhrswv8hi3): New expander.  Use
3302         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3303         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3304         (ssse3_pmulhrswv4hi3): New expander.  Use
3305         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3306
3307         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3308         (<sse>_vmmul<mode>3): Ditto.
3309         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3310         (divv2df3): Ditto.
3311         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3312         (ssse3_pmaddubsw): Ditto.
3313
3314         * config/i386/i386.c (struct_builtin_description)
3315         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3316         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3317         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3318         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3319         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3320         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3321         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3322         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3323         (ix86_fixup_binary_operands): Assert that src1
3324         and src2 must have the same mode when swapped.
3325         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3326         and ix86_binary_operator_ok.  Do not force operands in registers
3327         when optimizing.
3328
3329 2008-05-07  Jan Hubicka  <jh@suse.cz>
3330
3331         * cgraph.c (dump_cgraph_node): Update.
3332         * cgraph.h (cgraph_local_info): Break out inline summary.
3333         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3334         hook.
3335         * ipa-inline (inline_summary): New accestor function.
3336         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3337         cgraph_decide_inlining, compute_inline_parameters): Update.
3338         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3339
3340 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3341
3342         Cleanup ColdFire scheduling support and add V4 pipeline model.
3343
3344         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3345         (define_attr cpu): Add cfv4 value.
3346         (define_attr type, define_attr type1): Merge into a single 'type'
3347         attribute.  Update all uses.
3348         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3349         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3350         Update all uses.
3351         (define_attr opx_mem, define_attr opy_mem): Remove.
3352         (define_attr op_mem): Clean up, update comment.
3353         (define_attr size): Use specific values instead of general int.
3354         (define_attr guess, define_attr split): Remove.  Update all uses.
3355         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3356         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3357         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3358         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3359         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3360         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3361         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3362         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3363         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3364         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3365         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3366         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3367         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3368         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3369         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3370         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3371         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3372         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3373         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3374         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3375         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3376         Update or set attributes.
3377         (stack_tie): New fake instruction.
3378
3379         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3380         (m68k_sched_attr_size): Update declaration.
3381         (m68k_sched_attr_type2): Remove.
3382         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3383         Declare new bypass predicates.
3384
3385         * config/m68k/m68k.c (m68k_sched_issue_rate,
3386         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3387         implementations.
3388         (TARGET_SCHED_ISSUE_RATE,
3389         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3390         (override_options): Handle scheduling for ColdFire V4 core.
3391         (m68k_expand_prologue): Emit stack_tie.
3392         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3393         'OP_TYPE_FPN'.  Update all uses.
3394         (sched_guess_p): Remove.
3395         (sched_address_type): Handle symbolic addresses.
3396         (sched_get_operand): New static function.
3397         (sched_operand_type): Merge into sched_attr_op_type.
3398         (sched_attr_op_type): Handle FP registers, handle quick constants,
3399         update.
3400         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3401         (m68k_sched_attr_size): Update.  Move logic to ...
3402         (sched_get_attr_size_int): New static function.
3403         (sched_get_opxy_mem_type): New static function.
3404         (m68k_sched_attr_op_mem): Update.
3405         (m68k_sched_attr_type2): Remove.
3406         (sched_cfv4_bypass_data): New static variable.
3407         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3408         (m68k_sched_issue_rate): Implement scheduler hook.
3409         (struct _sched_ib: enabled_p): New field.
3410         (m68k_sched_variable_issue): Update.  Handle V4.
3411         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3412         sched_dump_class_func_t, sched_dump_split_class,
3413         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3414         sched_dump_dfa_class, m68k_sched_dump): Remove.
3415         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3416         hook.
3417         (m68k_sched_init_global): Remove statisctics dumping, introduce
3418         sanity check that all instructions have pipeline reservations.  Handle
3419         ColdFire V4 core.
3420         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3421         Handle ColdFire V4 core.
3422         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3423         New static functions.
3424         (m68k_sched_address_bypass_p): New bypass predicate.
3425         (sched_get_indexed_address_scale): New static function.
3426         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3427
3428         * cf.md: Update comments.
3429         (define_attr type2): Remove.  Use 'type' attribute instead.
3430         Update all uses.
3431         (cf_ib): Rename to cfv123_ib.  Update all uses.
3432         (cf_oep): Rename to cfv123_oep.  Update all uses.
3433         (cf_chr): Rename to cfv123_chr.  Update all uses.
3434         (cf_mem): Rename to cfv123_mem.  Update all uses.
3435         (cf_mac): Move to more appropriate place.
3436         (cfv123_guess): New automaton and cpu_unit.
3437         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3438         Update uses of 'size' attribute.  Handle before reload scheduling.
3439         (cfv123_guess): New dummy reservation for unhandled instructions.
3440         (cfv4_*): Pipeline description of ColdFire V4 core.
3441         (ignore): New reservation to handle 'ignore' type.
3442
3443 2008-05-07  Ian Lance Taylor  <iant@google.com>
3444
3445         PR middle-end/36013
3446         * gimplify.c (find_single_pointer_decl_1): Don't look through
3447         indirections.
3448         (find_single_pointer_decl): Adjust comments.
3449
3450 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3451
3452         PR middle-end/36137
3453         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3454         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3455
3456         PR middle-end/36106
3457         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3458         integral type rather than floating point, then VIEW_CONVERT_EXPR
3459         to the floating point type.
3460
3461 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3462
3463         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3464         TFmode op0 to register.
3465
3466 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3467
3468         * c-decl.c (grokdeclarator): Comment typo.
3469
3470 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3471
3472         * tree-flow.h: Remove prototype for computed_goto_p.
3473         * tree-cfg.c (computed_goto_p): Make static.
3474
3475 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3476
3477         PR target/35657
3478         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3479         (contains_aligned_value_p): This.  Handle _Decimal128.
3480         (ix86_function_arg_boundary): Only align _Decimal128 to its
3481         natural boundary and handle it properly.
3482
3483 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3484
3485         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3486         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3487         (ipcp_method_set_orig_node): Removed.
3488         (ipcp_cval_get_cvalue_type): Removed.
3489         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3490         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3491         (ipcp_cval_set_cvalue_type): Removed.
3492         (ipcp_cval_get_cvalue): Removed.
3493         (ipcp_cval_set_cvalue): Removed.
3494         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3495         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3496         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3497         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3498         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3499         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3500         (ipcp_get_ith_lattice): Changed parameters.
3501         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3502         (ipcp_lattice_from_jfunc): Changed parameters.
3503         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3504         (ipcp_method_cval_print): Added temporary variable info.
3505         (ipcp_redirect): Removed already unused local variable caller.
3506         (ipcp_redirect): New temporary variable orig_callee_info
3507         (ipcp_redirect): Removed newly unused local variable callee.
3508         (ipcp_redirect): Removed (a bit confusing) local variable type.
3509         (ipcp_insert_stage): Added local variable info.
3510         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3511         renamed too
3512         (ipcp_formal_create): Removed.
3513         (ipcp_method_cval_set): Removed.
3514         (ipcp_propagate_stage): Renamed lattice variables.
3515         (ipcp_method_cval_set_cvalue_type): Removed.
3516         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3517         (ipcp_print_all_lattices): Changed printed strings to refer to 
3518         lattices rather than cvals.
3519         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3520         (ipcp_propagate_const): Changed formal parameters.
3521         (build_const_val): Changed formal parameters.
3522         (ipcp_insert_stage): Removed useless variable cvalue
3523         (build_const_val): Changed formal parameters.
3524         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3525         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3526         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3527         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3528         (ipcp_print_func_profile_counts): Changed string from "method" to 
3529         "function"
3530         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3531         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3532         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3533         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3534         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3535         (ipcp_lat_is_const): Changed parameters and made inline.
3536         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3537         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3538         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3539         the predicate condition directly
3540         (ipcp_propagate_stage): Added local variable args. Removed local
3541         variable callee.  (Both are mere code simplifications.)
3542         (ipcp_method_dont_insert_const): Renamed to
3543         ipcp_node_not_modifiable_p.
3544         (ipcp_node_not_modifiable_p): Made inline.
3545         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3546         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3547         (ipcp_print_all_lattices): Removed variable cvalue
3548         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3549         Updated comments.
3550
3551 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3552
3553         * tree-sra.c (try_instantiate_multiple_fields): Early return
3554         if field has POINTER_TYPE.
3555
3556 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3557
3558         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3559         by using 'q' specifier for instruction.
3560         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3561
3562 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3563
3564         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3565         Change mode of zero_extract from QImode to HImode.
3566         (sign bit tests peepholes): (Ditto.).
3567
3568 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3569
3570         * config/i386/mmx.md: Remove double backslashes from asm templates.
3571         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3572         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3573         to handle nonimmediate operands.
3574         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3575         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3576         to handle nonimmediate operands.
3577         (*mmx_<code>v2sf3_finite): New insn pattern.
3578         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3579         (mmx_<code>v2sf3): New expander.  Use
3580         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3581         (mmx_<plusminus_insn><mode>3): New expander.  Use
3582         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3583         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3584         (mmx_add<mode>3): Removed.
3585         (mmx_ssadd<mode>3): Ditto.
3586         (mmx_usadd<mode>3): Ditto.
3587         (mmx_sub<mode>3): Ditto.
3588         (mmx_sssub<mode>3): Ditto.
3589         (mmx_ussub<mode>3): Ditto.
3590         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3591         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3592         to handle nonimmediate operands.
3593         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3594         insn pattern.
3595         (mmx_smulv4hi3_highpart): New expander.  Use
3596         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3597         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3598         insn pattern.
3599         (mmx_umulv4hi3_highpart): New expander.  Use
3600         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3601         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3602         (mmx_<code>v4hi3): New expander.  Use
3603         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3604         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3605         (mmx_<code>v8qi3): New expander.  Use
3606         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3607         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3608         (mmx_<code><mode>3): New expander.  Use
3609         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3610
3611 2008-05-05  Jan Hubicka  <jh@suse.cz>
3612
3613         PR tree-optimization/36118
3614         * passes.c (pass_init_dump_file): Fix dump header.
3615
3616 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3617
3618         PR middle-end/36141
3619         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3620         VCE for function decls.
3621
3622 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3623
3624         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3625
3626 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3627
3628         * config/i386/i386.md (sat_plusminus): New.
3629         (plusminus_insn): Likewise.
3630         (plusminus_mnemonic): Likewise.
3631         (addsub): Removed.
3632         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3633         (*<addsub><mode>3_cc_overflow): Renamed to ...
3634         (*<plusminus_insn><mode>3_cc_overflow): This.
3635         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3636         (*<plusminus_insn>si3_zext_cc_overflow): This.
3637
3638         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3639         (<plusminus_insn><mode>3): This.
3640         (*<addsub><mode>3): Renamed to ...
3641         (*<plusminus_insn><mode>3): This.
3642         (<sse>_vm<addsub><mode>3): Renamed to ...
3643         (<sse>_vm<plusminus_insn><mode>3): This.
3644         (sse3_h<addsub>v4sf3): Renamed to ...
3645         (sse3_h<plusminus_insn>v4sf3): This.
3646         (sse3_h<addsub>v2df3): Renamed to ...
3647         (sse3_h<plusminus_insn>v2df3): This.
3648         (<plusminus_insn><mode>3): New.
3649         (*<plusminus_insn><mode>3): Likewise.
3650         (sse2_<plusminus_insn><mode>3): Likewise.
3651         (add<mode>): Removed.
3652         (*add<mode>3): Likewise.
3653         (sse2_ssadd<mode>3): Likewise.
3654         (sse2_usadd<mode>3): Likewise.
3655         (sub<mode>3): Likewise.
3656         (*sub<mode>3): Likewise.
3657         (sse2_sssub<mode>3): Likewise.
3658         (sse2_ussub<mode>3): Likewise.
3659
3660 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3661
3662         * gthr-single.h: Add in required interface elements as per gthr.h.
3663         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3664         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3665         Generalize UNUSED macro. 
3666         (__gthread_once): Add.
3667         (__gthread_key_create): Add.
3668         (__gthread_key_delete): Add.
3669         (__gthread_getspecific): Add.
3670         (__gthread_setspecific): Add.
3671         
3672 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3673
3674         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3675         the same size types for the indirect reference on the rhs, then
3676         create a VCE.
3677
3678 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3679
3680         * config/i386/i386.md
3681         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3682         one insn template instead of template series.
3683         (*xordi_1_rex64): Ditto.
3684         (*xordi_2_rex64): Ditto.
3685
3686 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3687
3688         PR tree-optimization/36119
3689         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3690         in case of SLP.
3691
3692 2008-06-04  Jan Hubicka  <jh@suse.cz>
3693
3694         tree-optimization/36100
3695         * tree-pass.h (pass_O0_always_inline): Declare.
3696         * ipa-inline.c (inline_transform): Remove dead code.
3697         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3698         pass_O0_always_inline): New.
3699         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3700
3701 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3702
3703         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3704         mnemonic in this_param move for TARGET_64BIT.
3705
3706 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3707
3708         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3709         (*strmovsi_rex_1): Ditto.
3710         (*strsetsi_1): Ditto.
3711         (*strsetsi_rex_1): Ditto.
3712
3713         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3714         adddicc expanders using SWI mode iterator.
3715
3716 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3717
3718         PR target/36121
3719         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3720         argument handling.
3721
3722 2008-05-04  David S. Miller  <davem@davemloft.net>
3723
3724         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3725         (sparc*-*-linux*): Use linux.h in tm_file.
3726         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3727         compiler defaulting to 32-bit.
3728         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3729         no longer needed.
3730         * config/sparc/linux.h: Remove definitions now obtained
3731         properly from linux.h
3732         * config/sparc/linux64.h: Likewise.
3733         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3734         don't want this setting for 32-bit builds in a biarch compiler.
3735         * doc/install.texi: Add sparc-linux to list of targets
3736         supporting --enable-targets=all.
3737
3738 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3739
3740         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3741
3742 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3743
3744         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3745         after V4SI_FTYPE_V8HI.
3746         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3747         case V4SI_FTYPE_V2DF.
3748
3749 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3750
3751         * doc/invoke.texi (max-flow-memory-locations): Removed.
3752         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3753         
3754 2008-05-03  Richard Guenther  <rguenther@suse.de>
3755
3756         PR middle-end/34973
3757         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3758
3759 2008-05-02  David S. Miller  <davem@davemloft.net>
3760
3761         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3762
3763 2008-05-02  Simon Baldwin <simonb@google.com>
3764
3765         PR bootstrap/36108
3766         * c-common.h (warn_array_subscript_range): Removed.
3767         * c-common.c (warn_array_subscript_range): Ditto.
3768         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3769         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3770
3771 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3772
3773         * config/i386/i386.c (ix86_special_builtin_type): New.
3774         (bdesc_special_args): Likewise.
3775         (ix86_expand_special_args_builtin): Likewise.
3776         (ix86_init_mmx_sse_builtins): Updated.
3777         (ix86_expand_builtin): Updated.
3778         (ix86_expand_store_builtin): Removed.
3779         (ix86_expand_unop_builtin): Likewise.
3780
3781         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3782         * config/i386/mmintrin.h (__v2sf): Here.
3783
3784         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3785         const __v2sf.
3786         (_mm_loadl_pi): Likewise.
3787         (_mm_storeh_pi): Replace __v2si with __v2sf.
3788         (_mm_storel_pi): Likewise.
3789
3790         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3791         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3792         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3793         __builtin_ia32_loadlpd.
3794
3795 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3796
3797         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3798         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3799         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3800         (ix86_init_mmx_sse_builtins): Updated.
3801         (ix86_expand_args_builtin): Likewise.
3802         (ix86_expand_builtin): Likewise.
3803         (ix86_expand_unop1_builtin): Renamed to ...
3804         (ix86_expand_unop_vec_merge_builtin): This.
3805
3806 2008-05-01  Jan Hubicka  <jh@suse.cz>
3807
3808         PR bootstrap/36100
3809         * ipa-inline.c (inline_generate_summary): Make static.
3810         (inline_transform): Do not call inlining at -O0; make static.
3811         * passes.c (execute_todo): Add sanity check.
3812         (execute_one_ipa_transform_pass): Execute proper flags.
3813
3814 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3815
3816         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3817         (DECL_NONADDRESSABLE_P): Likewise.
3818         * alias.c (record_component_aliases): Fix comment.
3819
3820 2008-05-01  Simon Baldwin <simonb@google.com>
3821
3822         * c-common.h (warn_array_subscript_range): New function.
3823         * c-common.c (warn_array_subscript_range): Ditto.
3824         * tree-vrp.c (check_array_ref): Corrected code to agree with
3825         comment, ignoring only arrays of size 0 or size 1.
3826         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3827
3828 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3829
3830         * config/i386/i386.c (ix86_builtin_type): Replace
3831         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3832         (bdesc_args): Updated.
3833         (ix86_init_mmx_sse_builtins): Likewise.
3834         (ix86_expand_args_builtin): Likewise.
3835
3836         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3837         with __v1di.
3838
3839         * doc/extend.texi: Correct __builtin_ia32_palignr.
3840
3841 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3842
3843         PR target/36095
3844         * config/i386/i386.c (bdesc_crc32): Removed.
3845         (ix86_expand_crc32): Likewise.
3846         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3847         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3848         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3849         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3850         UINT_FTYPE_UINT_UCHAR.
3851         (bdesc_args): Updated. Add crc32 builtins.
3852         (ix86_init_mmx_sse_builtins): Updated.
3853         (ix86_expand_args_builtin): Updated to support subreg.
3854
3855         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3856
3857 2008-05-01  Jan Hubicka  <jh@suse.cz>
3858
3859         * tree-pass.h (opt_pass): Add IPA_PASS.
3860         (varpool_node, cgraph_node): Forward declare.
3861         (ipa_opt_pass): Define.
3862         (pass_ipa_inline): Turn into ipa_opt_pass.
3863         (pass_apply_inline): Remove.
3864         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3865         (apply_inline): Turn into ....
3866         (inline_transform): ... this one.
3867         (inline_generate_summary): New function.
3868         (pass_apply_inline): Remove.
3869         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3870         vector.
3871         (struct function): Add ipa_transforms_to_apply.
3872         * passes.c (register_one_dump_file): Work on IPA_PASS.
3873         (init_optimization_passes): Remove pass_inline_parameters and
3874         pass_apply_inline.
3875         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3876         (execute_one_pass) ... here; apply transforms when possible.
3877         (add_ipa_transform_pass, execute_ipa_summary_asses,
3878         execute_one_ipa_transform_pass): New.
3879         (execute_ipa_pass_list): Update for IPA_PASS type.
3880
3881 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3882
3883         * config/i386/i386.c (ix86_builtin_type): Add
3884         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3885         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3886         (bdesc_args): Add SSE4a builtins.
3887         (ix86_init_mmx_sse_builtins): Updated.
3888         (ix86_expand_args_builtin): Likewise.
3889         (ix86_expand_builtin): Likewise.
3890
3891 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3892
3893         * config/i386/i386.c (ix86_builtin_type): Add
3894         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3895         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3896         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3897         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3898         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3899         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3900         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3901         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3902         and DI_FTYPE_DI_DI_INT.
3903         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3904         (ix86_init_mmx_sse_builtins): Updated.
3905         (ix86_expand_args_builtin): Likewise.
3906         (ix86_expand_builtin): Likewise.
3907         (ix86_expand_binop_imm_builtin): Removed.
3908
3909         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3910
3911 2008-04-30  Richard Guenther  <rguenther@suse.de>
3912
3913         PR tree-optimization/32921
3914         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3915
3916 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3917
3918         * config/arm/arm.c (arm_unwind_emit): Use
3919         crtl->all_throwers_are_sibcalls instead of
3920         cfun->all_throwers_are_sibcalls.
3921         (arm_output_fn_unwind): Likewise.
3922         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3923         instead of cfun->uses_pic_offset_table.
3924         (frv_expand_prologue): Likewise.
3925         (frv_frame_pointer_required): Likewise.
3926         (frv_expand_fdpic_call): Likewise.
3927         (frv_emit_movsi): Likewise.
3928         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3929         cfun->returns_pcc_struct instead of
3930         current_function_returns_pcc_struct.
3931         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3932         instead of cfun->calls_eh_return.
3933         (m32c_pushm_popm): Likewise.
3934         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3935         "extern" declaration.
3936
3937 2008-04-30  Richard Guenther  <rguenther@suse.de>
3938
3939         PR tree-optimization/21636
3940         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3941         constant address.
3942         (evaluate_stmt): Print the likely value.
3943         (ccp_visit_stmt): Avoid excessive vertical spacing.
3944
3945 2008-04-30  Rafael Espindola  <espindola@google.com>
3946
3947         * builtins.c (fold_call_expr): Return realret.
3948         * tree-ssa-threadedge.c
3949         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3950         __builtin_object_size.
3951
3952 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3953
3954         * gcc.c (wrapper_string): New variable.
3955         (insert_wrapper): New function.
3956         (execute): New option -wrapper.
3957         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3958
3959 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3960
3961         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3962         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3963         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3964         from...
3965         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3966         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3967         config/rs6000/e500crtres64gprctr.asm,
3968         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3969         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3970         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3971         config/rs6000/e500crtsav64gprctr.asm,
3972         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3973         config/rs6000/e500crtsavg64gprctr.asm: New files.
3974         * config/rs6000/t-ppccomm: Add build rules for new files.
3975         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3976         * config/rs6000/t-netbsd: Add build rules for new files.
3977         (LIB2FUNCS_STATIC_EXTRA): New variable.
3978         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3979         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3980         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3981
3982 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3983
3984         * config/i386/i386.c (ix86_builtin_type): Add
3985         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3986         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3987         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3988         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3989         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3990         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3991         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3992         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3993         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3994         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3995         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3996         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3997         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3998         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3999         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4000         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4001         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4002         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4003         V1DI_FTYPE_V2SI_V2SI.
4004         (bdesc_2arg): Moved to ...
4005         (bdesc_args): Here.
4006         (ix86_init_mmx_sse_builtins): Updated.
4007         (ix86_expand_args_builtin): Updated.  Take a pointer
4008         to const struct builtin_description.  Handle comparison
4009         builtin functions.
4010         (ix86_expand_sse_compare): Take a new argument for swapping operands.
4011         (ix86_expand_builtin): Updated.
4012
4013         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4014         (ssse3_pmaddubsw128): This.
4015         (ssse3_pmaddubswv4hi3): Renamed to ...
4016         (ssse3_pmaddubsw): This.
4017
4018         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
4019         (__builtin_ia32_packssdw128): Likewise.
4020         (__builtin_ia32_packuswb128): Likewise.
4021         (__builtin_ia32_pmaddubsw): Likewise.
4022         (__builtin_ia32_pmaddubsw128): Likewise.
4023
4024 2008-04-30  Richard Guenther  <rguenther@suse.de>
4025
4026         PR tree-optimization/14847
4027         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4028         (recognize_bits_test): Use it.
4029         (recognize_single_bit_test): Likewise.
4030
4031 2008-04-30  Martin Jambor  <mjambor@suse.cz>
4032
4033         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4034         instead of setting number of formal parameters to zero.
4035         (ipcp_init_stage): Do not set the number of actual parameters to zero 
4036         either.
4037         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4038         which are called with variable number of arguments.
4039         (ipcp_insert_stage): Explicitely skipping all nodes which are
4040         called with variable number of arguments.
4041         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4042         number of parameters.
4043
4044         * ipa-prop.h (struct ipa_node_params): Added flag
4045         called_with_var_arguments
4046         (ipa_set_param_count): Added.  Changed sole setter to use it.
4047         (ipa_get_param_count): Added.  All readers of param_count
4048         converted to use it instead.
4049         (ipa_set_called_with_variable_arg): Added.
4050         (ipa_is_called_with_var_arguments): Added.
4051         (ipa_get_ith_param): Added.  All readers of param_decls converted
4052         to use it instead.
4053         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4054         changed to use it. 
4055         (ipa_get_cs_argument_count): Added, all readers of argument_count
4056         changed to cal it.
4057         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4058         to use it.
4059         
4060         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4061         (struct ipcp_lattice): Renamed cval_type to type
4062         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4063
4064         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4065         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4066         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4067         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4068         (build_const_val): Changed the type of parameter cvalue to tree
4069         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4070         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4071         
4072         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4073         constant 
4074
4075         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4076         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4077         (ipa_add_method): Renamed to ipa_push_func_to_list
4078         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4079         (ipa_callsite_param_count): Removed.
4080         (ipa_callsite_param_count_set): Removed.
4081         (ipa_callsite_param): Removed.
4082         (ipa_callsite_callee): Removed.
4083         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4084         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4085         (ipa_method_formal_count): Removed.
4086         (ipa_method_formal_count_set): Removed.
4087         (ipa_method_get_tree): Removed.
4088         (ipa_method_tree_map_create): Removed.
4089         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4090         (ipa_create_param_decls_array): Creates the array itself
4091         (ipa_create_param_decls_array): Temporary variable info instead of 
4092         a few dereferences.
4093         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4094         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4095         (get_type): Removed.
4096         (ipa_jf_get_info_type): Removed.
4097         (ipa_node_create): Renamed to ipa_create_node_params
4098         (ipa_free): Renamed to ipa_free_all_node_params
4099         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4100         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4101         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4102         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4103         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4104         ipa_free_all_edge_args
4105         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4106         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4107         (ipa_create_methodlist_node): Removed.
4108         (ipa_methodlist_method): Removed.
4109         (ipa_methodlist_method_set): Removed.
4110         (ipa_methodlist_next_method): Removed.
4111         (ipa_methodlist_next_method_set): Removed.
4112         (ipa_method_is_modified): Removed.
4113         (ipa_method_modify_create): Removed.
4114         (ipa_method_modify_init): Temporary variable info instead of a few 
4115         dereferences.
4116         (ipa_detect_param_modifications): Temporary variable info instead of 
4117         a few dereferences.
4118         (ipa_compute_jump_functions): Temporary variable info instead of 
4119         a few dereferences.
4120         (ipa_method_modify_set): Removed.
4121         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4122         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4123         than craph_node as the first parameter.
4124         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4125         (ipa_method_modify_init): Removed.
4126         (ipa_compute_jump_functions): Added a temp variable instead of 
4127         repeatadly dereferencing the cgraph_edge.aux pointer
4128         (ipa_callsite_param_set_type): Removed.
4129         (ipa_compute_jump_functions): i renamed to index and moved to 
4130         an inner block
4131         (ipa_callsite_param_set_info_type_formal): Removed.
4132         (ipa_callsite_param_set_info_type): Removed.
4133         (ipa_callsite_param_map_create): Removed.
4134         (ipa_callsite_tree): Removed.
4135         (ipa_callsite_caller): Removed.
4136         (ipa_pop_func_from_list): return_method removed to return_func
4137
4138         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4139         prefixed all values with IPA_. Changed all users.
4140         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4141         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4142         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4143         (union parameter_info): Renamed to jump_func_value.
4144         (union jump_func_value): Renamed value to constant
4145         (struct ipa_jump_func): Renamed info_type to value
4146         (struct ipa_node): Renamed to ipa_node_params
4147         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4148         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4149         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4150         (struct ipa_edge): Renamed to ipa_edge_args
4151         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4152         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4153         (struct ipa_methodlist): Renamed to ipa_func_list
4154         (struct ipa_func_list): method_p renamed to node, next_method
4155         renamed to next
4156         (ipa_methodlist_p): Removed, switched all users to struct pointer
4157         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4158
4159 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4160
4161         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4162         (rs6000_emit_epilogue): Use backchain to restore only when we
4163         have a large frame.  Make use of frame pointer to restore if we
4164         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4165
4166 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4167
4168         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4169         Add mode to zero_extract.
4170         (sign bit tests peepholes): (Ditto.).
4171
4172 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4173
4174         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4175         Instructions in comments with SSE3.
4176         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4177         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4178         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4179         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4180         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4181         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4182         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4183         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4184         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4185         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4186         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4187         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4188         (bdesc_sse_args): Renamed to ...
4189         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4190         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4191         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4192         IX86_BUILTIN_FABSQ.
4193         (bdesc_1arg): Moved to ...
4194         (bdesc_args): Here.
4195         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4196         Instructions in comments with SSE3.
4197         (ix86_expand_sse_operands_builtin): Renamed to ...
4198         (ix86_expand_args_builtin): This.  Updated.
4199         (ix86_expand_unop1_builtin): Update comments.
4200         (ix86_expand_builtin): Updated.
4201
4202 2008-04-29  Richard Guenther  <rguenther@suse.de>
4203
4204         PR tree-optimization/36078
4205         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4206         Update virtual SSA form after cleaning up the CFG.
4207
4208 2008-04-29  Richard Guenther  <rguenther@suse.de>
4209
4210         PR middle-end/15255
4211         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4212
4213 2008-04-29  Richard Guenther  <rguenther@suse.de>
4214
4215         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4216         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4217         (compute_flow_insensitive_aliasing): Do not treat
4218         PTR_IS_REF_ALL pointers special.
4219         (get_smt_for): Likewise.
4220         (may_alias_p): Re-structure.
4221         (is_escape_site): A ref-all pointer conversion is not an escape site.
4222         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4223         PTR_IS_REF_ALL pointers special.
4224         * tree-ssa-structalias.h (struct alias_info): Remove
4225         ref_all_symbol_mem_tag field.
4226         (PTR_IS_REF_ALL): Remove.
4227
4228 2008-04-29  Richard Guenther  <rguenther@suse.de>
4229
4230         PR middle-end/36077
4231         * fold-const.c (extract_muldiv_1): In combining division constants
4232         make sure to never overflow.
4233
4234 2008-04-29  Nick Clifton  <nickc@redhat.com>
4235
4236         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4237
4238 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4239
4240         PR bootstrap/35169
4241         * optc-gen.awk: Work around HP-UX/IA awk bug.
4242
4243 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4244
4245         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4246         2008-04-25 commit.
4247
4248 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4249
4250         PR target/36073
4251         * config/i386/i386.md
4252         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4253         Change operand 1 predicate to nonimmediate_operand.
4254
4255 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4256
4257         PR debug/36060
4258         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4259         die_sub field.
4260         * gengtype.c (walk_type, write_func_for_structure): Handle
4261         chain_circular.
4262         * doc/gty.texi: Document chain_circular.
4263
4264 2008-04-28  Richard Guenther  <rguenther@suse.de>
4265
4266         PR tree-optimization/36066
4267         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4268         SCEV and loop.
4269
4270 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4271
4272         PR target/36064
4273         * config/i386/i386.md
4274         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4275         Use match_scratch instead of match_operand for operands 3 and 4.
4276
4277 2008-04-27  Richard Guenther  <rguenther@suse.de>
4278
4279         PR tree-optimization/18754
4280         PR tree-optimization/34223
4281         * tree-pass.h (pass_complete_unrolli): Declare.
4282         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4283         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4284         Rewrite loop into loop closed SSA form if it is not already.
4285         (tree_unroll_loops_completely): Re-structure to iterate over
4286         innermost loops with intermediate CFG cleanups.
4287         Unroll outermost loops only if requested or the code does not grow
4288         doing so.
4289         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4290         loops are available.
4291         (tree_vectorize): Instead do so here.
4292         (tree_complete_unroll): Also unroll outermost loops.
4293         (tree_complete_unroll_inner): New function.
4294         (gate_tree_complete_unroll_inner): Likewise.
4295         (pass_complete_unrolli): New pass.
4296         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4297         uses outside of the loop.
4298         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4299         form if it is available.  
4300         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4301         * passes.c (init_optimization_passes): Schedule complete inner
4302         loop unrolling pass before the first CCP pass after final inlining.
4303
4304 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4305
4306         * targhooks.h (default_emutls_var_fields,
4307         default_emutls_var_init): Declare.
4308         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4309         * target.h (struct gcc_target): Add struct emutls member.
4310         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4311         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4312         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4313         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4314         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4315         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4316         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4317         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4318         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4319         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4320         emit debug information.
4321         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4322         * varasm.c: Include targhooks.h.
4323         (emutls_object_section, emutls_tmpl_section): New.
4324         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4325         (EMUTLS_SEPARATOR): New.
4326         (prefix_name): New.
4327         (get_emutls_object_name): New.
4328         (default_emutls_var_fields): New, broken out of ...
4329         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4330         (get_emutls_init_templ_addr): Adjust to use target hooks.
4331         (emutls_decl): Adjust to use target hooks.
4332         (emutls_finish): Likewise.
4333         (default_emutls_var_init): New, broken out of ...
4334         (assemble_variable): ... here.  Adjust to use target hooks.
4335         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4336         SECCAT_EMUTLS_TMPL.
4337         * c-common.c (handle_section_attribute): Prevent overriding
4338         sections for emulated tls with special sections.
4339         * config/i386/i386.c (x86_64_elf_select_section): Add
4340         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4341         (x86_64_elf_unique_section): Likewise.
4342         * config/vxworks.c: Include tree.h.
4343         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4344         (vxworks_override_options): Set TLS scheme.
4345         * doc/tm.texi (Emulated TLS): New node.
4346
4347 2008-04-26  Simon Baldwin <simonb@google.com>
4348
4349         PR c/35652
4350         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4351         with propagated string constants.
4352
4353 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4354
4355         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4356         constraint for operand 2 when operand 0 is memory operand.
4357         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4358         operand 0 is memory operand.
4359         (fix_trunc<mode>_i387_with_temp): Ditto.
4360         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4361         operand 2 when operand 1 is memory operand.
4362         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4363         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4364         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4365         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4366         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4367         operands 2,3 and 4 when operand 1 is memory operand.
4368         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4369         is memory operand.
4370         (fistdi2_floor_with_temp): Ditto.
4371         (fist<mode>2_floor_with_temp): Ditto.
4372         (fistdi2_ceil_with_temp): Ditto.
4373         (fist<mode>2_ceil_with_temp): Ditto.
4374         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4375
4376 2008-04-26  David Daney  <ddaney@avtrex.com>
4377
4378         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4379         unspec_volitile.
4380         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4381         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4382         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4383         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4384         (compare_and_swap_12): New insn.
4385         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4386         * config/mips/mips.c (mips_force_binary): New function.
4387         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4388         (mips_expand_compare_and_swap_12): New function.
4389         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4390
4391 2008-04-25  Jan Hubicka  <jh@suse.cz>
4392
4393         PR testsuite/35843
4394         * cfgexpand.c (pass_expand): Turn into RTL pass.
4395         * passes.c (execute_one_pass): Do pass typechecking after execution.
4396         * tree-pass.h (pass_expand): Turn into RTL pass.
4397
4398         * function.h (struct rtl_data): Move here fields
4399         accesses_prior_frames, calls_eh_return, saves_all_registers,
4400         has_nonlocal_goto, has_asm_statement, is_thunk,
4401         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4402         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4403         arg_pointer_save_area_init from struct function; turn into bool.
4404         (struct function): Move
4405         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4406         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4407         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4408         tail_call_emit, arg_pointer_save_area_init
4409         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4410         (current_function_returns_struct, current_function_returns_pcc_struct,
4411         current_function_calls_setjmp, current_function_calls_alloca,
4412         current_function_accesses_prior_frames,
4413         current_function_calls_eh_return, current_function_is_thunk,
4414         current_function_stdarg, current_function_profile,
4415         current_function_limit_stack, current_function_uses_pic_offset_table,
4416         current_function_uses_const_pool, current_function_has_nonlocal_label,
4417         current_function_saves_all_registers,
4418         current_function_has_nonlocal_goto,
4419         current_function_has_asm_statement): Remove accesor macros.
4420         * ra-conflict.c (global_conflicts): Update.
4421         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4422         (suitable_for_tail_call_opt_p): Update.
4423         * builtins.c (expand_builtin_return_addr): Update.
4424         (expand_builtin_setjmp_setup): Update.
4425         (expand_builtin_nonlocal_goto): Update.
4426         * final.c (final_start_function): Update.
4427         (profile_function): Update.
4428         (leaf_function_p): Update.
4429         (only_leaf_regs_used): Update.
4430         * df-scan.c (df_get_exit_block_use_set): Update.
4431         * dojump.c (clear_pending_stack_adjust): Update.
4432         * tree-stdarg.c (gate_optimize_stdarg): Update.
4433         * gimple-low.c (lower_function_body): Update.
4434         * global.c (compute_regsets): Update.
4435         (global_alloc): Update.
4436         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4437         * expr.c (expand_assignment): Update.
4438         * dse.c (dse_step0): Update.
4439         (dse_step1): Update.
4440         * c-decl.c (store_parm_decls): Update.
4441         * local-alloc.c (combine_regs): Update.
4442         (find_free_reg): Update.
4443         * function.c (assign_parms_augmented_arg_list): Update.
4444         (assign_parm_find_data_types): Update.
4445         (assign_parms): Update.
4446         (allocate_struct_function): Update.
4447         (expand_function_start): Update.
4448         (expand_function_end): Update.
4449         (get_arg_pointer_save_area): Update.
4450         (thread_prologue_and_epilogue_insns): Update.
4451         (rest_of_match_asm_constraints): Update.
4452         * stor-layout.c (variable_size): Update.
4453         * gcse.c (gcse_main): Update.
4454         (bypass_jumps): Update.
4455         * gimplify.c (gimplify_function_tree): Update.
4456         * calls.c (emit_call_1): Update.
4457         (expand_call): Update.
4458         * bt-load.c (compute_defs_uses_and_gen): Update.
4459         * except.c (sjlj_assign_call_site_values): Update.
4460         (sjlj_emit_function_enter): Update.
4461         (can_throw_external): Update.
4462         (set_nothrow_function_flags): Update.
4463         (expand_builtin_unwind_init): Update.
4464         (expand_eh_return): Update.
4465         (convert_to_eh_region_ranges): Update.
4466         (output_function_exception_table): Update.
4467         * emit-rtl.c (gen_tmp_stack_mem): Update.
4468         * cfgexpand.c (expand_used_vars): Update.
4469         (tree_expand_cfg): Update.
4470         * cfgcleanup.c (rest_of_handle_jump): Update.
4471         * explow.c (allocate_dynamic_stack_space): Update.
4472         * varasm.c (assemble_start_function): Update.
4473         (force_const_mem): Update.
4474         (mark_constant_pool): Update.
4475         * tree-optimize.c (tree_rest_of_compilation): Update.
4476         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4477         * tree-cfg.c (notice_special_calls): Update.
4478         (is_ctrl_altering_stmt): Update.
4479         (tree_can_make_abnormal_goto): Update.
4480         (tree_purge_dead_abnormal_call_edges): Update.
4481         * config/alpha/predicates.md: Update.
4482         * config/alpha/alpha.c (alpha_sa_mask): Update.
4483         (alpha_sa_size): Update.
4484         (alpha_does_function_need_gp): Update.
4485         (alpha_expand_prologue): Update.
4486         (alpha_start_function): Update.
4487         (alpha_output_function_end_prologue): Update.
4488         (alpha_expand_epilogue): Update.
4489         * config/frv/frv.c (frv_stack_info): Update.
4490         (frv_expand_epilogue): Update.
4491         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4492         (s390_register_info): Update.
4493         (s390_frame_info): Update.
4494         (s390_init_frame_layout): Update.
4495         (s390_can_eliminate): Update.
4496         (save_gprs): Update.
4497         * config/spu/spu.c (spu_split_immediate): Update.
4498         (need_to_save_reg): Update.
4499         (spu_expand_prologue): Update.
4500         (spu_expand_epilogue): Update.
4501         * config/sparc/sparc.md: Update.
4502         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4503         (sparc_tls_got): Update.
4504         (legitimize_pic_address): Update.
4505         (sparc_emit_call_insn): Update.
4506         (sparc_expand_prologue): Update.
4507         (output_return): Update.
4508         (print_operand): Update.
4509         (sparc_function_ok_for_sibcall): Update.
4510         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4511         * config/m32r/m32r.md: Update.
4512         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4513         (m32r_compute_frame_size): Update.
4514         (m32r_expand_prologue): Update.
4515         (m32r_expand_epilogue): Update.
4516         (m32r_legitimize_pic_address): Update.
4517         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4518         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4519         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4520         (gen_push): Update.
4521         (ix86_save_reg): Update.
4522         (ix86_compute_frame_layout): Update.
4523         (ix86_expand_prologue): Update.
4524         (ix86_expand_epilogue): Update.
4525         * config/sh/sh.c (output_stack_adjust): Update.
4526         (calc_live_regs): Update.
4527         (sh5_schedule_saves): Update.
4528         (sh_expand_prologue): Update.
4529         (sh_expand_epilogue): Update.
4530         (sh_setup_incoming_varargs): Update.
4531         (sh_allocate_initial_value): Update.
4532         (sh_get_pr_initial_val): Update.
4533         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4534         * config/sh/sh.md (label:): Update.
4535         * config/avr/avr.c (out_movhi_mr_r): Update.
4536         * config/crx/crx.h (enum): Update.
4537         * config/xtensa/xtensa.h (along): Update.
4538         * config/stormy16/stormy16.c Update.
4539         (xstormy16_compute_stack_layout): Update.
4540         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4541         (fr30_expand_prologue): Update.
4542         * config/cris/cris.c (cris_conditional_register_usage): Update.
4543         (cris_reg_saved_in_regsave_area): Update.
4544         (cris_initial_frame_pointer_offset): Update.
4545         (cris_simple_epilogue): Update.
4546         (cris_expand_prologue): Update.
4547         (cris_expand_epilogue): Update.
4548         (cris_expand_pic_call_address): Update.
4549         (cris_asm_output_symbol_ref): Update.
4550         (cris_asm_output_label_ref): Update.
4551         * config/cris/cris.md Update.
4552         * config/iq2000/iq2000.c (compute_frame_size): Update.
4553         (iq2000_expand_epilogue): Update.
4554         * config/mt/mt.h (save_direction): Update.
4555         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4556         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4557         (ia64_secondary_reload_class): Update.
4558         * config/m68k/m68k.c (m68k_save_reg): Update.
4559         (m68k_expand_prologue): Update.
4560         (m68k_expand_epilogue): Update.
4561         (legitimize_pic_address): Update.
4562         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4563         (first_reg_to_save): Update.
4564         (first_altivec_reg_to_save): Update.
4565         (compute_vrsave_mask): Update.
4566         (compute_save_world_info): Update.
4567         (rs6000_stack_info): Update.
4568         (spe_func_has_64bit_regs_p): Update.
4569         (rs6000_ra_ever_killed): Update.
4570         (rs6000_emit_eh_reg_restore): Update.
4571         (rs6000_emit_allocate_stack): Update.
4572         (rs6000_emit_prologue): Update.
4573         (rs6000_emit_epilogue): Update.
4574         (rs6000_output_function_epilogue): Update.
4575         (output_profile_hook): Update.
4576         (rs6000_elf_declare_function_name): Update.
4577         * config/rs6000/rs6000.h (rs6000_args): Update.
4578         * config/rs6000/rs6000.md: Update.
4579         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4580         * config/arc/arc.c (arc_output_function_epilogue): Update.
4581         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4582         * config/darwin.c (machopic_function_base_name): Update.
4583         * config/score/score3.c (score3_compute_frame_size): Update.
4584         (rpush): Update.
4585         (rpop): Update.
4586         (score3_epilogue): Update.
4587         * config/score/score7.c (score7_compute_frame_size): Update.
4588         (score7_prologue): Update.
4589         (score7_epilogue): Update.
4590         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4591         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4592         * config/arm/arm.c (use_return_insn): Update.
4593         (require_pic_register): Update.
4594         (arm_load_pic_register): Update.
4595         (arm_compute_save_reg0_reg12_mask): Update.
4596         (arm_compute_save_reg_mask): Update.
4597         (thumb1_compute_save_reg_mask): Update.
4598         (output_return_instruction): Update.
4599         (arm_output_function_prologue): Update.
4600         (arm_output_epilogue): Update.
4601         (arm_get_frame_offsets): Update.
4602         (arm_expand_prologue): Update.
4603         (thumb_pushpop): Update.
4604         (thumb_exit): Update.
4605         (thumb1_expand_prologue): Update.
4606         (thumb1_expand_epilogue): Update.
4607         (arm_unwind_emit): Update.
4608         (arm_output_fn_unwind): Update.
4609         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4610         * config/arm/arm.md: Update.
4611         * config/pa/pa.md: Update.
4612         * config/pa/pa.c (legitimize_pic_address): Update.
4613         (compute_frame_size): Update.
4614         (hppa_expand_prologue): Update.
4615         (hppa_expand_epilogue): Update.
4616         (borx_reg_operand): Update.
4617         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4618         (HARD_REGNO_RENAME_OK): Update.
4619         * config/mips/mips.c (mips_global_pointer): Update.
4620         (mips_save_reg_p): Update.
4621         (mips_compute_frame_info): Update.
4622         (mips_frame_pointer_required): Update.
4623         (mips_expand_prologue): Update.
4624         (mips_expand_epilogue): Update.
4625         (mips_can_use_return_insn): Update.
4626         (mips_reorg_process_insns): Update.
4627         * config/v850/v850.c (compute_register_save_size): Update.
4628         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4629         * config/mmix/mmix.c (along): Update.
4630         (mmix_expand_epilogue): Update.
4631         * config/bfin/bfin.c (legitimize_pic_address): Update.
4632         (must_save_p): Update.
4633         (stack_frame_needed_p): Update.
4634         (add_to_reg): Update.
4635         (bfin_expand_prologue): Update.
4636         * stmt.c (expand_asm_operands): Update.
4637         * reload1.c (reload): Update.
4638         (init_elim_table): Update.
4639
4640 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4641         
4642         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4643         
4644 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4645
4646         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4647         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4648         (mov<mode>): Removed.
4649         (*movv4sf_internal): Likewise.
4650         (*movv2df_internal): Likewise.
4651
4652 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4653
4654         * config.gcc (crx-*-elf): Remove deprecation.
4655
4656 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4657
4658         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4659         __gcc_deregister_frame with atexit.
4660         (deregister_frame_dtor): Remove.
4661
4662 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4663             Nathan Sidwell  <nathan@codesourcery.com>
4664
4665         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4666         (misel): Likewise.
4667         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4668         (rs6000_isel): Likewise.
4669         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4670         (rs6000_isel): New variable.
4671         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4672
4673 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4674
4675         PR c++/35758
4676         * c-common.c (handle_vector_size_attribute): Call
4677         lang_hooks.types.reconstruct_complex_type instead of
4678         reconstruct_complex_type.
4679         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4680         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4681         * langhooks.h (struct lang_hooks_for_types): Add
4682         reconstruct_complex_type hook.
4683         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4684         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4685
4686 2008-04-24  Richard Guenther  <rguenther@suse.de>
4687
4688         * c-common.h (check_builtin_function_arguments): Declare.
4689         * c-common.c (validate_nargs): New function.
4690         (check_builtin_function_arguments): Likewise.
4691         * c-typeck.c (build_function_call): Call
4692         check_builtin_function_arguments.
4693         * builtins.c (fold_builtin_classify): Remove error reporting code.
4694         (fold_builtin_unordered_cmp): Likewise.
4695         (fold_builtin_1): Likewise.
4696         (fold_builtin_n): Likewise.
4697
4698 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4699
4700         PR tree-optimization/36008
4701         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4702         the original op1, rather than delta by step.
4703
4704 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4705             Sebastian Pop  <sebastian.pop@amd.com>
4706
4707         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4708         eliminate_local_variables_stmt, eliminate_local_variables,
4709         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4710         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4711         of code delimited by two edges in the CFG.
4712         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4713         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4714         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4715         the case of parallelisation of reductions.
4716         (expr_invariant_in_region_p): New.
4717
4718         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4719         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4720
4721 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4722             Richard Guenther  <rguenther@suse.de>
4723
4724         PR tree-optimization/36034
4725         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4726         incapable of dealing with loads with gaps.
4727
4728 2008-04-24  Rafael Espindola  <espindola@google.com>
4729
4730         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4731         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4732         vrp_evaluate_conditional.
4733         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4734         (vrp_evaluate_conditional): Split the cond argument.
4735         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4736         (simplify_stmt_for_jump_threading): Update call to
4737         vrp_evaluate_conditional.
4738
4739 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4740
4741         PR tree-optimization/35982
4742         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4743         interleaved data-refs are of the same type.
4744
4745 2008-04-24  Danny Smith  <dannysmith@users.net>
4746
4747         * c-format.c (check_format_info_main): Use strncmp rather than a
4748         magic prefix to handle multichar length specs.
4749         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4750         Don't prefix "I64" and "I32" with '\0'.
4751
4752 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4753
4754         PR target/36015
4755         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4756         in registers for -m32 only if stdarg_p (fntype).
4757
4758 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4759
4760         PR rtl-optimization/36006
4761         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4762         temp to op0 in order to avoid invalid rtx sharing.
4763
4764 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4765
4766         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4767         check TREE_INVARIANT.
4768         * tree-gimple.c (is_gimple_address): New.
4769         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4770         * tree-gimple.h (is_gimple_address): New.
4771         * tree.h (decl_address_invariant_p): New.
4772         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4773         (build_string): Likewise.
4774         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4775         (tree_invariant_p_1): Likewise.
4776         (save_expr): Use it.
4777         (tree_invariant_p): New.
4778         (skip_simple_arithmetic): Use it.
4779         (stabilize_reference_1): Use it.
4780         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4781         simplify.
4782         (build1_stat): Drop code to compute TREE_INVARIANT.
4783         (build2_stat): Drop code to compute TREE_INVARIANT.
4784         (build3_stat): Drop code to compute TREE_INVARIANT.
4785         (build4_stat): Drop code to compute TREE_INVARIANT.
4786         (build5_stat): Drop code to compute TREE_INVARIANT.
4787         (build7_stat): Drop code to compute TREE_INVARIANT.
4788         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4789         * tree.h (struct tree_base): Remove invariant_flag.
4790         (TREE_INVARIANT): Remove.
4791         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4792         (fold_builtin_expect): Check TREE_CONSTANT.
4793         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4794         * c-tree.h (c_expr_to_decl): Drop third parameter.
4795         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4796         (build_c_cast): Don't set TREE_INVARIANT.
4797         (pop_init_level): Don't set TREE_INVARIANT.
4798         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4799         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4800         TREE_CONSTANT.
4801         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4802         (gimplify_addr_expr): Adjust comment.
4803         * tree-mudflap.c (mf_build_string):
4804         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4805         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4806         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4807         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4808         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4809         * langhooks.h (struct lang_hooks): Drop third parameter from
4810         expr_to_decl.
4811
4812 2008-04-23  Richard Guenther  <rguenther@suse.de>
4813
4814         PR tree-optimization/27799
4815         PR tree-optimization/32921
4816         PR tree-optimization/32624
4817         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4818         SMTs aliases and the tag itself into the solution.
4819         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4820         merge the points-to solution back into the SMT aliases.
4821         (may_alias_p): Use alias_set_subset_of instead of
4822         aliases_conflict_p.  A pointer which points to
4823         memory with alias set zero may access any variable.
4824
4825 2008-04-23  Richard Guenther  <rguenther@suse.de>
4826
4827         * alias.c (alias_set_subset_of): Correctly handle asking
4828         if zero is a subset of an alias set with zero child.
4829         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4830         (compute_flow_insensitive_aliasing): Correctly walk all
4831         pointers.  Do not unnecessarily union sets.
4832
4833 2008-04-23  Richard Guenther  <rguenther@suse.de>
4834
4835         PR middle-end/36021
4836         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4837
4838 2008-04-22  Tomas Bily  <tbily@suse.cz>
4839
4840         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4841         unreachable case.
4842         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4843         NON_LVALUE_EXPR.
4844         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4845         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4846         * tree-inline.c (estimate_num_insns_1): Likewise.
4847         * varasm.c (const_hash_1, compare_constant, copy_constant)
4848         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4849         * emit-rtl.c (component_ref_for_mem_expr)
4850         (set_mem_attributes_minus_bitpos): Likewise.
4851         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4852         (is_aligning_offset): Likewise.
4853         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4854         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4855         * dojump.c (do_jump): Likewise.
4856         * builtins.c (get_pointer_alignment, get_memory_rtx)
4857         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4858         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4859
4860 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4861
4862         PR rtl-optimization/36017
4863         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4864         expanding the library call.
4865
4866 2008-04-22  Ian Lance Taylor  <iant@google.com>
4867
4868         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4869         than size_in_bytes.
4870
4871 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4872
4873         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4874         of LR/CTR moves for Power6.
4875
4876 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4877
4878         PR middle-end/36003
4879         * passes.c (init_optimization_passes): Remove
4880         pass_fast_rtl_byte_dce.
4881         
4882 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4883
4884         PR target/29096
4885         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4886         builtin functions to generate faster code.
4887         (_mm_cvtpu16_ps): Ditto.
4888         (_mm_cvtpi32x2_ps): Ditto.
4889
4890 2008-04-22  Nick Clifton  <nickc@redhat.com>
4891
4892         * common.opt (ftree-loop-distribution): Add Optimization
4893         attribute.
4894
4895         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4896         (frv_expand_builtin_va_start): Likewise.
4897
4898         * config/arm/arm.c (thumb_find_work_register): Fix location of
4899         argument register count.
4900
4901 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4902
4903         Support scheduling for ColdFire V1 and V3 microarchitecture.
4904         Improve scheduling of multiplication instructions.
4905
4906         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4907         (mac): New instruction attribute.
4908         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4909         (m68k_sched_mac): New variable.
4910         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4911         Handle cfv1 and cfv3.
4912         (max_insn_size): New static variable.
4913         (struct _sched_ib): New type.
4914         (sched_ib): New static variable.
4915         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4916         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4917         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4918         Update.
4919         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4920         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4921         new variables.  Update.
4922         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4923         Add modeling of cfv3 instruction buffer.  Update.
4924         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4925         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4926         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4927         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4928         a particular reservation applies to.
4929         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4930         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4931         to mul_l and mul_w.
4932         (cf_ib_*): Simplify description of instruction buffer.
4933         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4934         (cf_mem): Split into cf_mem1 and cf_mem2.
4935         (cf_v2_move_??): Rename to cfv12_alu_??.
4936         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4937         (cf_v2_mul_??): Remove reservations.
4938         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4939         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4940         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4941         appropriate place.
4942         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4943         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4944         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4945         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4946         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4947         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4948         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4949         expansions of the above reservations for instructions of sizes
4950         1, 2 and 3 words.
4951
4952 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4953
4954         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4955
4956 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4957
4958         * coverage.c: Include tree-pass.h.
4959         (coverage_counter_alloc): Print da_file_name to the dump file.
4960
4961 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4962
4963         * sbitmap.c (sbitmap_range_empty_p): New function.
4964         * sbitmap.h (sbitmap_range_empty_p): New function.
4965         * bitmap.h: Now includes obstack.h.
4966
4967 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4968             Kenneth Zadeck  <zadeck@naturalbridge.com>
4969
4970         * dbgcnt.def (ra_byte_scan): Added.
4971         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4972         when the last hit happens for a counter.  
4973         * timevar.def (TV_DF_BYTE_LR): New variable.
4974         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4975         * passes.c (pass_fast_rtl_byte_dce): New pass.
4976         * fwprop.c (update_df): Added mode to call df_ref_create.
4977         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4978         DF_REF_EXTRACT_OFFSET.
4979         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4980         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4981         (df_mm): New enum.
4982         (df_ref_extract): Added mode field.
4983         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4984         DF_REF_EXTRACT_OFFSET.
4985         (DF_REF_EXTRACT_MODE): New macro.
4986         (df_byte_lr_bb_info): New structure.
4987         (df_print_byte_regset, df_compute_accessed_bytes, 
4988         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4989         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4990         df_byte_lr_simulate_uses,
4991         df_byte_lr_simulate_artificial_refs_at_top,
4992         df_byte_lr_simulate_artificial_refs_at_end,
4993         df_compute_accessed_bytes): New function.
4994         (df_ref_create): Add parameter.
4995         (df_byte_lr_get_bb_info): New inline function.
4996         * df-scan.c (df_ref_record, df_uses_record,
4997         df_ref_create_structure): Added mode parameter.
4998         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4999         df_defs_record, df_uses_record, df_get_conditional_uses,
5000         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
5001         df_entry_block_defs_collect, df_exit_block_uses_collect):
5002         Added mode parameter to calls to df_ref_record, df_uses_record,
5003         df_ref_create_structure.
5004         (df_ref_equal_p, df_ref_compare): Added test for modes.
5005         (df_ref_create_structure): Added code to set mode.  Renamed
5006         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5007         DF_REF_EXTRACT_OFFSET.
5008         * df-core.c (df_print_byte_regset): New function.
5009         * df-byte-scan.c: New file.
5010         * df-problems.c (df_rd_transfer_function): Removed unnecessary
5011         calls to BITMAP_FREE.  
5012         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5013         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5014         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
5015         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
5016         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5017         df_byte_lr_local_compute, df_byte_lr_init,
5018         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
5019         df_byte_lr_transfer_function, df_byte_lr_free, 
5020         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5021         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
5022         df_byte_lr_simulate_uses,
5023         df_byte_lr_simulate_artificial_refs_at_top,
5024         df_byte_lr_simulate_artificial_refs_at_end): New function.
5025         * dce.c (byte_dce_process_block): New function.
5026         (dce_process_block): au is now passed in rather than computed
5027         locally.  Changed loops that look at artificial defs to not look
5028         for conditional or partial ones, because there never are any.  
5029         (fast_dce): Now is able to drive byte_dce_process_block or 
5030         dce_process_block depending on the kind of dce being done.
5031         (rest_of_handle_fast_dce): Add parameter to fast_dce.
5032         (rest_of_handle_fast_byte_dce): New function.
5033         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5034         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5035
5036 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5037
5038         PR fortran/35019
5039         * gcc.h: Added fortran options that take arguments to
5040         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5041         macros.
5042
5043 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5044
5045         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5046         scalarization if on the LHS and not a full access.
5047
5048 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5049
5050         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5051
5052 2008-04-18  Rafael Espindola  <espindola@google.com>
5053
5054         * tree-vrp.c (find_case_label_index): Fix the binary search.
5055         (find_case_label_range): New.
5056         (vrp_visit_switch_stmt): Use find_case_label_range.
5057         (simplify_switch_using_ranges): Use find_case_label_range.
5058
5059 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5060
5061         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5062         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5063
5064 2008-04-18  Tom Tromey  <tromey@redhat.com>
5065
5066         PR libcpp/15500:
5067         * doc/cpp.texi (Implementation-defined behavior): Mention
5068         -finput-charset.
5069
5070 2008-04-18  Ian Lance Taylor  <iant@google.com>
5071
5072         * fold-const.c (pointer_may_wrap_p): New static function.
5073         (fold_comparison): Add another test for pointer overflow.  Use
5074         pointer_may_wrap_p to disable some false positives.
5075
5076 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5077           
5078         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5079         (fname_as_string): Match updated cpp_interpret_string prototype.
5080         (fix_string_type): Support char16_t* and char32_t*.
5081         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5082         derivative) nodes.  Register as builtin if C++0x.
5083         (c_parse_error): Support CPP_CHAR{16,32}.
5084         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5085         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5086         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5087         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5088         CTI_CHAR32_ARRAY_TYPE>: New elements.
5089         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5090         char32_type_node, signed_char32_type_node, char16_array_type_node,
5091         char32_array_type_node): New defines.
5092         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5093         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5094         (lex_string): Support CPP_STRING{16,32}, match updated
5095         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5096         (lex_charconst): Support CPP_CHAR{16,32}.
5097         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5098         and CPP_STRING{16,32}.
5099
5100 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5101
5102         PR bootstrap/35457
5103         * aclocal.m4: Regenerate.
5104         * configure: Regenerate.
5105
5106 2008-04-18  Jan Hubicka  <jh@suse.cz>
5107
5108         * except.c (dw2_size_of_call_site_table,
5109         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5110
5111         * cgraphbuild.c (build_cgraph_edges): Update.
5112         * tree-pass.h: Update comment.
5113         * final.c (leaf_function_p): Update.
5114         (leaf_renumber_regs): Update.
5115         (rest_of_clean_state): Update.
5116         * omp-low.c (expand_omp_parallel): Update.
5117         * ipa-reference.c (analyze_function): Update.
5118         * reorg.c (find_end_label): Update.
5119         (optimize_skip): Update.
5120         (fill_simple_delay_slots): Update.
5121         (fill_simple_delay_slots): Update.
5122         (make_return_insns): Update.
5123         (dbr_schedule): Update.
5124         * gimple-low.c (record_vars_into): Update.
5125         * cfgbuild.c (make_edges): Update.
5126         * function.c (assign_stack_local): Update.
5127         (assign_parm_adjust_stack_rtl): Update.
5128         (locate_and_pad_parm): Update.
5129         (allocate_struct_function): Do not initialize stack_alignment_needed
5130         and preferred_stack_boundary here.
5131         (stack_protect_prologue): Update.
5132         (stack_protect_epilogue): Update.
5133         (expand_function_start): Initialize stack_alignment_needed,
5134         preferred_stack_boundary and max_jumptable_ents.
5135         (expand_function_end): Update.
5136         (free_after_compilation): Do not NULLify epilogue_delay_list.
5137         * function.h (struct rtl_data): Add stack_protect_guard,
5138         stack_alignment_needed,
5139         preferred_stack_boundary, epilogue_delay_list.
5140         (struct function): Remove value_histograms, stack_alignment_needed,
5141         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5142         last_label_uid,
5143         unexpanded_var_list, stack_protect_guard.
5144         (current_function_epilogue_delay_list): Remove.
5145         * ipa-type-escape.c (analyze_function): Update.
5146         * gimplify.c (pop_gimplify_context): Update comment.
5147         * calls.c (expand_call): Update.
5148         (emit_library_call_value_1): Update.
5149         * except.c (set_nothrow_function_flags): Update.
5150         * cfgexpand.c (get_decl_align_unit): Update.
5151         (create_stack_guard): Update.
5152         (estimated_stack_frame_size): Update.
5153         (expand_used_vars): Update.
5154         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5155         * explow.c (allocate_dynamic_stack_space): Update.
5156         * tree-ssa-live.c (remove_unused_locals): Update.
5157         * varasm.c (mark_constant_pool): Update.
5158         * tree-inline.c (remap_decls): Update.
5159         (initialize_cfun): Update.
5160         (declare_return_variable): Update.
5161         (inline_forbidden_p): Update.
5162         (expand_call_inline): Update.
5163         (declare_inline_vars): Update.
5164         (tree_function_versioning): Update.
5165         * tree-flow.h (value_histograms): New.
5166         (VALUE_HISTOGRAMS): New macro.
5167         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5168         last_label_uid.
5169         * tree-cfg.c (set_bb_for_stmt): Update.
5170         (replace_by_duplicate_decl): Update.
5171         (move_block_to_fn): Update.
5172         (new_label_mapper): Update.
5173         (dump_function_to_file): Update.
5174         * ipa-struct-reorg.c (build_data_structure): Update.
5175         * cfgrtl.c (print_rtl_with_bb): Update.
5176         * reload1.c (reload): Update.
5177         (reload): Update.
5178         * config/i386/i386.c (setup_incoming_varargs_64,
5179         ix86_compute_frame_layout): Update.
5180         * config/arc/arc.c (arc_output_function_epilogue): Update.
5181
5182 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5183
5184         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5185         for FreeBSD as well.
5186         * gthr-posix95.h: Likewise.
5187
5188 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5189
5190         PR rtl-optimization/35838
5191         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5192         out the byte offset of the first subreg.
5193
5194 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5195
5196         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5197         to split_ti instead of three separate calls with single member arrays.
5198         (subti3 splitter): Ditto.
5199         (adddi3 splitter): Ditto with split_di.
5200         (subdi3 splitter): Ditto.
5201         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5202         two separate calls with single member arrays.  Swap match_dup
5203         operands 1 and 2 to better fit into the array.
5204         (negdi2 splitter): Ditto with split_di.
5205         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5206         two separate calls with single member arrays.  Swap match_dup operands
5207         6 and 7 to better fit into the array.
5208
5209 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5210
5211         * config/i386/i386.c (sse_builtin_type): New.
5212         (bdesc_sse_args): Likewise.
5213         (bdesc_sse_3arg): Removed.
5214         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5215         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5216         IX86_BUILTIN_ROUNDPS.
5217         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5218         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5219         IX86_BUILTIN_ROUNDPS.
5220         (ix86_expand_sse_4_operands_builtin): Removed.
5221         (ix86_expand_sse_operands_builtin): New.
5222         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5223         and CODE_FOR_sse4_1_roundps.
5224         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5225         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5226
5227 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5228
5229         PR target/35907
5230         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5231         regs before frame pop when needed.  If use_backchain_to_restore_sp
5232         then load backchain into a temp reg to restore vr and vrsave.  Add
5233         code to restore vr after frame pop if possible.
5234
5235 2008-04-17  Richard Guenther  <rguenther@suse.de>
5236
5237         * tree-vn.c (expressions_equal_p): Do not check type
5238         equality or compatibility before calling operand_equal_p.
5239         * fold-const.c (operand_equal_p): Check equivalence of
5240         integer constants before bailing out due to signedness or
5241         precision differences.
5242         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5243         spurious differences in type qualification.  Ignore types
5244         for COMPONENT_REFs at all.
5245
5246 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5247
5248         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5249         msw_skip comparison.
5250         
5251 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5252
5253         PR c/35739
5254         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5255         reg type.
5256
5257         PR tree-optimization/35899
5258         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5259         rather than TREE_OPERAND.
5260
5261 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5262
5263         PR target/35944
5264         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5265         temporary registers.  Change operand predicate to general_operand.
5266         (remainderxf3): Ditto.
5267
5268 2008-04-16  Richard Guenther  <rguenther@suse.de>
5269
5270         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5271         * tree-affine.c (aff_combination_expand): Look through some
5272         conversions.
5273
5274 2008-04-15  Doug Kwan  <dougkwan@google.com>
5275
5276         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5277         for hex printing.
5278         * tree-pretty-print.c (dump_generic_node): Ditto.
5279         * final.c (output_addr_const): Ditto.
5280         * dwarf2out.c (output_cfi): Ditto.
5281         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5282         * print-rtl.c (print_rtx): Ditto.
5283         * print-tree.c (print_node_brief, print_node): Ditto.
5284         * c-common.c (match_case_to_enum_1): Ditto.
5285         * sched-vis.c (print_value): Ditto.
5286         * config/i386/i386.c (print_operand): Cast to long unsigned int
5287         for hex printing.
5288
5289 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5290         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5291         MS Windows VirtualProtect function.
5292
5293 2008-04-15  Jan Hubicka  <jh@suse.cz>
5294
5295         * gengtype.c (write_root): Param_is argument is OK.
5296         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5297         * function.h: Include varray.h
5298         (rtl_eh): New stucture based on except.c one.
5299         (call_site_record): New forward declaration and vector type.
5300         * calls.c (emit_call_1): Do not call
5301         note_current_region_may_contain_throw.
5302         * except.c (eh_status): Remove cur_region, try_region since they are
5303         unused.
5304         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5305         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5306         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5307         Remove call_site_data_used, call_site_data_size.
5308         Turn call_site_record into vector in function.h.
5309         (note_current_region_may_contain_throw): Remove.
5310         (get_exception_pointer, get_exception_filter): Do not take struct
5311         function argument; update.
5312         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5313         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5314         build_post_landing_pads, dw2_build_landing_pads,
5315         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5316         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5317         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5318         sjlj_build_landing_pads, finish_eh_generation,
5319         remove_exception_handler_label, remove_eh_handler,
5320         maybe_remove_eh_handler, add_reachable_handler,
5321         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5322         add_action_record, collect_one_action_chain, add_call_site,
5323         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5324         sjlj_output_call_site_table, output_function_exception_table,
5325         * except.h (note_current_region_may_contain_throw): Remove
5326         (get_exception_pointer, get_exception_filter): Do not take struct
5327         function argument.
5328         * Makefile.in (GTFILES): Put varargs before struct function.
5329
5330 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5331
5332         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5333         punt for STRING_CST.
5334         (get_constraint_for): Deal with STRING_CST here instead.
5335
5336 2008-04-15  Richard Guenther  <rguenther@suse.de>
5337
5338         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5339         statements in a basic-block with a backward walk.  Do not
5340         substitute into dead statements but instead remove those.
5341
5342 2008-04-15  Richard Guenther  <rguenther@suse.de>
5343
5344         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5345         to zero, thus disable creation of SFTs.
5346
5347 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5348
5349         * tree-predcom.c (suitable_reference_p): Return false if the
5350         reference can throw.
5351
5352 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5353
5354         PR c/35751
5355         * c-decl.c (finish_decl): If extern or static var has variable
5356         size, set TREE_TYPE (decl) to error_mark_node.
5357
5358 2008-04-15  Rafael Espindola  <espindola@google.com>
5359
5360         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5361         variable arg1.
5362
5363 2008-04-15  Richard Guenther  <rguenther@suse.de>
5364
5365         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5366         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5367         (visit_reference_op_load): Do walk vuse-vdef chains on
5368         vn_reference_lookup.
5369         (visit_reference_op_store): But do not here.
5370         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5371         vn_reference_lookup.
5372         (vn_lookup_with_vuses): But do so here.
5373
5374 2008-04-14  Ian Lance Taylor  <iant@google.com>
5375
5376         * fold-const.c (fold_overflow_warning): Remove assertion.
5377
5378 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5379
5380         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5381         temp1 local variables.
5382
5383 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5384
5385         PR target/35661
5386         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5387         ".text.unlikely" section as executable.
5388
5389 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5390
5391         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5392         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5393         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5394         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5395         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5396         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5397         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5398
5399 2008-04-14  Ian Lance Taylor  <iant@google.com>
5400
5401         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5402         * fold-const.c (fold_comparison): If appropriate, test
5403         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5404         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5405         reassociating a pointer type.
5406         * doc/invoke.texi (Optimize Options): Document that
5407         -fstrict-overflow applies to pointer wraparound.
5408
5409 2008-04-13  Jan Hubicka  <jh@suse.cz>
5410
5411         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5412
5413 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5414
5415         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5416         we are going to "save the world".
5417
5418 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5419
5420         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5421         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5422         operand 0 constraint, not "=".
5423
5424 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5425
5426         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5427
5428 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5429
5430         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5431         of size of positions_needed * CHAR_BIT.
5432
5433 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5434
5435         PR middle-end/35897
5436         * dse.c (store_info): Change positions_needed to unsigned
5437         HOST_WIDE_INT.
5438         (lowpart_bitmask): New.
5439         (record_store): Cast to unsigned HOST_WIDE_INT for
5440         positions_needed.  Assert width <= size of positions_needed *
5441         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5442         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5443         lowpart_bitmask to set mask.
5444
5445 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5446
5447         * config/bfin/constraints.md: New file.
5448         * config/bfin/bfin.md: Include it.
5449         (adddi3): Use satisfies_constraint functions instead of the old macros.
5450         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5451         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5452         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5453         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5454         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5455         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5456         EXTRA_CONSTRAINT): Delete.
5457         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5458         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5459         of the old macros.
5460         * config/bfin/bfin.c: Include "tm-constrs.h".
5461         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5462         Use satisfies_constraint functions instead of the old macros.
5463         * doc/md.texi (Blackfin Constraints): Update file name reference.
5464
5465 2008-04-11  Richard Guenther  <rguenther@suse.de>
5466
5467         PR tree-optimization/35869
5468         * tree-vrp.c (execute_vrp): Move switch statement update after
5469         jump threading.  Schedule another cfg cleanup run.
5470
5471 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5472
5473         PR c/35744
5474         * attribs.c (decl_attributes): Return early on errorneous node.
5475
5476 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5477
5478         * tree.h (struct tree_base): Added a new flag default_def_flag.
5479         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5480
5481 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5482
5483         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5484
5485 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5486
5487         PR target/35768
5488         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5489         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5490         (icacheflush): Likewise.
5491         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5492         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5493
5494 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5495
5496         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5497
5498 2008-04-10  Rafael Espindola  <espindola@google.com>
5499
5500         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5501         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5502         (extract_range_from_expr): The same.
5503
5504 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5505
5506         * config/mips/mips.md (GPR2): New mode iterator.
5507         (seq): Add comment.
5508         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5509         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5510         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5511         Rewrite these to take two modes, the mode of comparison and the
5512         mode of the destination.
5513         * config/mips/mips.c (mips_expand_scc): Instead of having
5514         paradoxical subreg as destination, expand "narrowing" scc if mode
5515         of comparison is SI and target is requested in DI mode.
5516         (mips_emit_int_order_test): Update comment.  Make mode of
5517         comparison match CMP0 rather than TARGET.  When creating inverse
5518         target use mode of TARGET.
5519
5520 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5521
5522         * gcov-dump.c (tag_summary): Only print summaries for the first
5523         GCOV_COUNTERS_SUMMABLE counters.
5524
5525 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5526
5527         * config/i386/i386.md (absneg): New code iterator.
5528         (absnegprefix): New code attribute.
5529         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5530         patterns using absneg code iterator.
5531         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5532         using absneg code iterator.
5533         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5534         *neg<mode>2 patterns using absneg code iterator.
5535         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5536         *negextendsfdf2 patterns using absneg code iterator.
5537         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5538         *negextendsfxf2 patterns using absneg code iterator.
5539         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5540         *negextendsfdf2 patterns using absneg code iterator.
5541         * config/i386/sse.md (<code><mode>2): Macroize expander from
5542         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5543
5544 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5545
5546         * config/s390/s390.h: Remove the remains of the recent search
5547         & replace action of current_function_outgoing_args_size.
5548
5549 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5550
5551         PR tree-optimization/35821
5552         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5553         NEW_STMT_LIST is not NULL.
5554
5555 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5556
5557         PR libstdc++/35597
5558         * toplev.c (process_options): Remove -ffunction-sections debugging
5559         warning.
5560
5561 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5562
5563         PR middle-end/PR28690
5564         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5565         than gen_rtx_fmt_ee to perform more canonicalizations.
5566
5567 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5568
5569         PR driver/35665
5570         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5571
5572 2008-04-09  Richard Guenther  <rguenther@suse.de>
5573
5574         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5575         (dump_function_to_file): Dump function arguments with types.
5576
5577 2008-04-08  Richard Guenther  <rguenther@suse.de>
5578
5579         * fold-const.c (fold_widened_comparison): Do not allow
5580         sign-changes that change the result.
5581
5582 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5583
5584         PR target/35839
5585         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5586         kinds of indirect references.
5587
5588 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5589
5590         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5591         GNU Fortran language string.
5592
5593 2008-04-08  Rafael Espindola  <espindola@google.com>
5594
5595         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5596         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5597         * tree.h (tree_call_nonnegative_warnv_p): New.
5598
5599 2008-04-08  Jan Hubicka  <jh@suse.cz>
5600
5601         * function.c (free_after_compilation): Clear out regno_reg_rtx
5602         pointer.
5603
5604 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5605
5606         Revert
5607         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5608
5609         PR middle-end/PR28690
5610         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5611         same precedence as REG_POINTER and MEM_POINTER operands.
5612
5613 2008-04-08  Richard Guenther  <rguenther@suse.de>
5614
5615         PR middle-end/35834
5616         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5617         for adding index to base.
5618
5619 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5620
5621         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5622         (MINGW_ENABLE_EXECUTE_STACK): New.
5623         (IN_LIBGCC2): For libgcc include windows.h file for
5624         function declarations.
5625
5626 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5627
5628         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5629         and tem2 if tem1 is not a REG or MULT.
5630
5631 2008-04-08  Jan Hubicka  <jh@suse.cz>
5632
5633         * function.h (incomming_args): Break out of struct function.
5634         (function_subsections): Break out of struct function.
5635         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5636         return_rtx and hard_reg_initial_vals from struct function.
5637         Kill inl_max_label_num.
5638         (current_function_pops_args, current_function_args_info,
5639         current_function_args_size, current_function_args_size,
5640         current_function_pretend_args_size,
5641         current_function_outgoing_args_size,
5642         current_function_internal_arg_pointer, current_function_return_rtx):
5643         Kill compatibility accestor macros.
5644         * builtins.c (expand_builtin_apply_args_1): Update.
5645         (expand_builtin_next_arg): Update.
5646         * df-scan.c (df_get_call_refs): Update.
5647         * dbxout.c (dbxout_function_end): Update.
5648         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5649         (output_line_info): Update.
5650         (secname_for_decl): Update.
5651         (dwarf2out_var_location): Update.
5652         * function.c (free_after_compilation): Update.
5653         (assign_parm_find_stack_rtl): Update.
5654         (assign_parms): Update.
5655         (expand_dummy_function_end): Update.
5656         (expand_function_end): Update.
5657         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5658         (expand_call): Update.
5659         (emit_library_call_value_1): Update.
5660         (store_one_arg): Update.
5661         * varasm.c (initialize_cold_section_name): Update.
5662         (unlikely_text_section): Update.
5663         (unlikely_text_section_p): Update.
5664         (assemble_start_function): Update.
5665         (assemble_end_function): Update.
5666         (default_section_type_flags): Update.
5667         (switch_to_section): Update.
5668         * integrate.c (set_decl_abstract_flags): Update.
5669         (get_hard_reg_initial_val): Update.
5670         (has_hard_reg_initial_val): Update.
5671         (allocate_initial_values): Update.
5672         * resource.c (init_resource_info): Update.
5673         * config/alpha/alpha.c (NUM_ARGS): Update.
5674         (direct_return): Update.
5675         (alpha_va_start): Update.
5676         (alpha_sa_size): Update.
5677         (alpha_initial_elimination_offset): Update.
5678         (alpha_expand_prologue): Update.
5679         (alpha_start_function): Update.
5680         (alpha_expand_epilogue): Update.
5681         (unicosmk_initial_elimination_offset):
5682         * config/alpha/alpha.md (call expander): Update.
5683         * config/s390/s390.c (s390_register_info): Update.
5684         (s390_register_info): Update.
5685         (s390_frame_info): Update.
5686         (s390_initial_elimination_offset): Update.
5687         (s390_build_builtin_va_list): Update.
5688         (s390_va_start): Update.
5689         * config/spu/spu.c (direct_return): Update.
5690         (spu_expand_prologue): Update.
5691         (spu_initial_elimination_offset): Update.
5692         (spu_build_builtin_va_list): Update.
5693         (spu_va_start): Update.
5694         * config/sparc/sparc.c (sparc_init_modes): Update.
5695         (sparc_compute_frame_size): Update.
5696         (function_value): Update.
5697         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5698         * config/i386/i386.md (return expander): Update.
5699         * config/i386/i386.c (ix86_va_start): Update.
5700         (ix86_can_use_return_insn_p): Update.
5701         (ix86_compute_frame_layout): Update.
5702         (ix86_expand_epilogue): Update.
5703         * config/sh/sh.c (output_stack_adjust): Update.
5704         (calc_live_regs): Update.
5705         (sh_expand_prologue): Update.
5706         (sh_builtin_saveregs): Update.
5707         (sh_va_start): Update.
5708         (initial_elimination_offset): Update.
5709         (sh_allocate_initial_value): Update.
5710         (sh_function_ok_for_sibcall): Update.
5711         (sh_get_pr_initial_val): Update.
5712         * config/sh/sh.md (return expander): Update.
5713         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5714         * config/crx/crx.c (crx_compute_frame): UPdate.
5715         (crx_initial_elimination_offset): UPdate.
5716         * config/xtensa/xtensa.c (compute_frame_size): Update
5717         (xtensa_builtin_saveregs): Update.
5718         (xtensa_va_start): Update.
5719         (order_regs_for_local_alloc): Update.
5720         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5721         (xstormy16_expand_builtin_va_start): Update.
5722         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5723         * config/m68hc11/m68hc11.md (return expanders): Update.
5724         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5725         (expand_epilogue): Update.
5726         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5727         (cris_simple_epilogue): Update.
5728         (cris_expand_prologue): Update.
5729         (cris_expand_epilogue): Update.
5730         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5731         (compute_frame_size): Update.
5732         * config/mt/mt.c (mt_compute_frame_size): Update.
5733         * config/mn10300/mn10300.c (expand_prologue): Update.
5734         (expand_epilogue): Update.
5735         (initial_offset): Update.
5736         (mn10300_builtin_saveregs):
5737         * config/mn10300/mn10300.md (return expander): Update.
5738         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5739         (ia64_initial_elimination_offset): Update.
5740         (ia64_initial_elimination_offset): Update.
5741         (ia64_expand_prologue): Update.
5742         * config/m68k/m68k.md (return expander): Update.
5743         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5744         (rs6000_stack_info): Update.
5745         * config/mcore/mcore.c (layout_mcore_frame): Update.
5746         (mcore_expand_prolog): Update.
5747         * config/arc/arc.c (arc_compute_frame_size): Update.
5748         * config/score/score3.c (score3_compute_frame_size): Update.
5749         * config/score/score7.c (score7_compute_frame_size): Update.
5750         * config/arm/arm.c (use_return_insn): Update.
5751         (thumb_find_work_register): Update.
5752         (arm_compute_save_reg_mask): Update.
5753         (arm_output_function_prologue): Update.
5754         (arm_output_epilogue): Update.
5755         (arm_size_return_regs): Update.
5756         (arm_get_frame_offsets): Update.
5757         (arm_expand_prologue): Update.
5758         (thumb_exit): Update.
5759         (thumb_unexpanded_epilogue): Update.
5760         (thumb1_output_function_prologue): Update.
5761         * config/pa/pa.md (return expander): Update.
5762         * config/pa/pa.c (compute_frame_size): Update.
5763         (hppa_builtin_saveregs): Update.
5764         * config/mips/mips.c (mips_va_start): Update.
5765         (mips16_build_function_stub): Update.
5766         (mips_compute_frame_info): Update.
5767         (mips_restore_gp): Update.
5768         (mips_output_function_prologue): Update.
5769         (mips_expand_prologue): Update.
5770         * config/v850/v850.c (compute_frame_size): Update.
5771         (expand_prologue): * config/mmix/mmix.c (along): update.
5772         (mmix_initial_elimination_offset): update.
5773         (mmix_reorg): update.
5774         (mmix_use_simple_return): update.
5775         (mmix_expand_prologue): update.
5776         (mmix_expand_epilogue): Update.
5777         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5778         (emit_link_insn): Update.
5779
5780 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5781
5782         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5783         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5784         instructions.
5785         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5786         atmega103 device.
5787
5788 2008-04-07  Jan Hubicka  <jh@suse.cz>
5789
5790         * function.h (rtl): Rename to x_rtl.
5791         (crtl): New define.
5792         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5793         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5794         used_temp_slots avail_temp_slots, temp_slot_level,
5795         nonlocal_goto_handler_labels): Update accesstors.
5796         (rtl): New global variable.
5797         (struct function): Move some fileds to rtl_data.
5798         (get_arg_pointer_save_area): Update prototype.
5799         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5800         get_arg_pointer_save_area.
5801         * expr.c (init_expr): Update
5802         * function.c (get_frame_size): Update
5803         (assign_stack_local): Update
5804         (expand_function_end): Update.
5805         (get_art_pointer_save_area): Update
5806         * function.h 
5807         * emit-rtl.c (rtl): Declare.
5808         (regno_reg_rtx): Declare.
5809         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5810         Update.
5811         (gen_reg_rtx): Update.
5812         * varasm.c (n_deferred_constatns): Update accestor.
5813         (init_varasm_status): Do not allocate varasm_status.
5814         (force_const_mem, get_pool_size, output_constant_pool): Update.
5815         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5816         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5817         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5818         * sparc/sparc.h (INIT_EXPANDERS): Update.
5819         * ia64/ia64.h (INIT_EXPANDERS): Update.
5820
5821 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5822
5823         * reload.c (push_secondary_reload): Add missing break to for loop.
5824
5825 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5826
5827         PR middle-end/PR28690
5828         * rtlanal.c: Update copyright years.
5829         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5830         as REG_POINTER and MEM_POINTER operands.
5831         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5832         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5833         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5834         * gcse.c: Update copyright years.
5835         (pre_delete): Call gen_reg_rtx_and_attrs.
5836         (hoist_code): Likewise.
5837         (build_store_vectors): Likewise.
5838         (delete_store): Likewise.
5839         * loop-invariant.c (move_invariant_reg): Likewise.
5840         Update copyright years.
5841
5842 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5843
5844         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5845         control string instead of quoted.
5846
5847 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5848
5849         * doc/rtl.texi: Rewrite of subreg section.
5850
5851 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5852
5853         PR/35842
5854         * config/i386/i386.c (legitimize_pic_address): Add treating
5855         of dllimport SYM_REF's.
5856         (legitimize_dllimport_symbol): Add prototype.
5857
5858 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5859
5860         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5861         reference in constructor with non self-referential type.
5862
5863 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5864
5865         Removal of Return with Depressed Stack Pointer support
5866         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5867         (ECF_SP_DEPRESSED): Likewise.
5868         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5869         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5870         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5871         (expand_call): Do not test ECF_SP_DEPRESSED.
5872         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5873         * function.c (keep_stack_depressed): Delete.
5874         (handle_epilogue_set): Likewise.
5875         (update_epilogue_consts): Likewise.
5876         (emit_equiv_load): Likewise.
5877         (thread_prologue_and_epilogue_insns): Remove support for Return with
5878         Depressed Stack Pointer.
5879         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5880
5881 2008-04-06  Richard Guenther  <rguenther@suse.de>
5882
5883         PR tree-optimization/35400
5884         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5885         information from SSA_NAMEs.
5886
5887 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5888
5889         * config/avr/avr.h (avr_mega_p): Remove declaration.
5890         (AVR_MEGA): Remove macro.
5891         * config/avr/avr.c (avr_mega_p): Remove variable.
5892         (avr_override_options): Remove inicializion of avr_mega_p.
5893         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5894         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5895         (avr_jump_mode): (Ditto.).
5896         (avr_output_progmem_section_asm_op): (Ditto.).
5897         (avr_asm_init_sections): (Ditto.).
5898         (avr_asm_init_sections): (Ditto.).
5899         (avr_rtx_costs): (Ditto.).
5900         * config/avr/avr.md: (Ditto.).
5901         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5902         '__AVR_MEGA__'.
5903
5904 2008-04-06  Richard Guenther  <rguenther@suse.de>
5905
5906         PR tree-optimization/35842
5907         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5908         is_gimple_invariant_address.
5909
5910 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5911
5912         * gcc.c (default_compilers): Sync Fortran extensions list with
5913         that in fortran/lang-specs.h.
5914         * doc/invoke.texi: Likewise.
5915         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5916         * dwarf2out.c (gen_compile_unit_die): Likewise.
5917
5918 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5919
5920         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5921
5922 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5923
5924         PR target/12329
5925         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5926         attribute is used for nested functions.
5927
5928 2008-04-05  Jan Hubicka  <jh@suse.cz>
5929
5930         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5931
5932         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5933         letter argument.
5934         (dump_files): Update.
5935         (enable_rtl_dump_file): Do not accept letter argument.
5936         * tree-pass.h (dump_file_info): Remove letter argument.
5937         * toplev.c (decode_d_option): Update -da handling.
5938         * toplev.h (enable_rtl_dump_file): Update prototype.
5939         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5940         it out based on pass type.
5941         (register_dump_files_1): Likewise.
5942         (init_optimization_passes): Update register_one_dump_file calls.
5943         (execute_one_pass): Sanity check that IPA passes are called at IPA
5944         level and RTL passes at RTL level.
5945         (execute_pass_list): IPA pass can not be after or subpass of
5946         GIMPLE/RTL pass.
5947         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5948         disallov RTL subpasses of IPA subpasses.
5949
5950 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5951
5952         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5953         builtins that return exactly once and do not throw. Cache call to
5954         call_expr_flags.
5955
5956 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5957
5958         PR rtl-optimization/34916
5959         PR middle-end/35519
5960         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5961         between instruction pairs.
5962
5963 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5964
5965         * doc/invoke.texi: Document -mbitops for SH.
5966         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5967         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5968         * config/sh/sh.c (print_operand): Add %t operand code.
5969         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5970         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5971         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5972         (extendqihi2): Likewise.
5973         (movqi_i): Likewise.
5974         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5975         (extv): Use bld instruction for SH2A if possible.
5976         (extzv): Likewise.
5977         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5978         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5979         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5980         (bset.b, bclr.b): Define peepholes.
5981         * config/sh/sh.opt (mbitops): New option.
5982
5983 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5984
5985         PR target/35620
5986         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5987         and view convert expression.
5988
5989 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5990
5991         PR target/35364
5992         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5993
5994 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5995
5996         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5997
5998         * config/i386/cpuid.h (bit_AES): New.
5999         (bit_PCLMUL): Likewise.
6000
6001         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6002         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
6003         SSE2 if AES or PCLMUL is enabled.
6004         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6005         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6006         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6007         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6008         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6009         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6010         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6011         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6012         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6013         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6014         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6015         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6016         __builtin_ia32_aeskeygenassist128 and
6017         __builtin_ia32_pclmulqdq128.
6018         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6019         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6020         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
6021
6022         * config/i386/i386.h (TARGET_AES): New.
6023         (TARGET_PCLMUL): Likewise.
6024         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6025
6026         * config/i386/i386.md (UNSPEC_AESENC): New.
6027         (UNSPEC_AESENCLAST): Likewise.
6028         (UNSPEC_AESDEC): Likewise.
6029         (UNSPEC_AESDECLAST): Likewise.
6030         (UNSPEC_AESIMC): Likewise.
6031         (UNSPEC_AESKEYGENASSIST): Likewise.
6032         (UNSPEC_PCLMUL): Likewise.
6033
6034         * config/i386/i386.opt (maes): New.
6035         (mpclmul): Likewise.
6036
6037         * config/i386/sse.md (aesenc): New pattern.
6038         (aesenclast): Likewise.
6039         (aesdec): Likewise.
6040         (aesdeclast): Likewise.
6041         (aesimc): Likewise.
6042         (aeskeygenassist): Likewise.
6043         (pclmulqdq): Likewise.
6044
6045         * config/i386/wmmintrin.h: New.
6046
6047         * doc/extend.texi: Document AES and PCLMUL built-in function.
6048
6049         * doc/invoke.texi: Document -maes and -mpclmul.
6050
6051 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6052
6053         * function.c (free_after_parsing): Replace with
6054         cxx_push_function_context from C++ front-end.
6055         (allocate_struct_function): Don't call langhook.
6056         * langhooks.h (struct lang_hooks_for_functions): Delete.
6057         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6058         member "function".
6059         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6060         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6061         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6062         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6063         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6064         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6065         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6066
6067         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6068         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6069         
6070 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6071
6072         PR c/35440
6073         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6074         for all types.
6075
6076 2008-04-04  Richard Guenther  <rguenther@suse.de>
6077
6078         PR middle-end/35823
6079         * fold-const.c (optimize_minmax_comparison): Use the correct
6080         type for the constant in the simplified comparison.
6081
6082 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6083
6084         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6085         Pass L2 size as "--param l2-cache-size" to the compiler.
6086         (decode_l2_cache): New function to decode L2 cache parameters using
6087         0x8000006 extended cpuid function.
6088         (detect_caches_amd): Determine parameters of L2 cache using
6089         decode_l2_caches function.
6090         (decode_caches_intel): Decode L2 cache parameters.
6091         (detect_caches_intel): Determine L2 cache parameters using
6092         decode_caches_intel and decode_l2_caches functions.
6093
6094 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6095
6096         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6097         secondary input reload for subword loads from the constant pool.
6098
6099 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6100
6101         PR target/35713
6102         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6103           constants of the appropriate size for runtime calculations.
6104
6105         PR c/35712
6106         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6107           decimal-float literal constant zero.
6108
6109 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6110
6111         PR c/35738
6112         * c-parser.c (c_parser_omp_atomic): Call
6113         default_function_array_conversion on the RHS.
6114
6115         PR middle-end/35818
6116         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6117         call is_variable_sized if decl has incomplete type.
6118
6119 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6120
6121         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6122
6123 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6124
6125         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6126         iterators.
6127         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6128         (sgt<u>): Merge sgt and sgtu into new expander.
6129         (sgt, sgtu): Remove expanders.
6130         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6131         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6132         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6133         *sgtu_<mode>_mips16 into new pattern.
6134         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6135         (sge<u>): Merge sge and sgeu into new expander.
6136         (sge, sgeu): Remove expanders.
6137         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6138         new pattern.
6139         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6140         (slt<u>): Merge slt and sltu into new expander.
6141         (slt, sltu): Remove expanders.
6142         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6143         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6144         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6145         *sltu_<mode>_mips16 into new pattern.
6146         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6147         (sle<u>): Merge sle and sleu into new expander.
6148         (sle, sleu): Remove expanders.
6149         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6150         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6151         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6152         *sleu_<mode>_mips16 into new pattern.
6153         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6154
6155 2008-04-03  Jan Hubicka  <jh@suse.cz>
6156
6157         PR tree-optimization/35795
6158         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6159         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6160         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6161         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6162         * score/score3.c (score3_output_mi_thunk): Likewise.
6163         * score/score7.c (score7_output_mi_thunk): Likewise.
6164         * mips/mips.c (mips_output_mi_thunk): Likewise.
6165
6166 2008-04-03  Richard Guenther  <rguenther@suse.de>
6167
6168         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6169         conversions.  Simplify code.
6170
6171 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6172
6173         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6174
6175 2008-04-03  Tom Tromey  <tromey@redhat.com>
6176             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6177
6178         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6179         * config/bfin/t-bfin-linux (generated_files): Add
6180         linux-sysroot-suffix.h.
6181         * doc/install.texi (Prerequisites): Require make 3.80.
6182         * doc/sourcebuild.texi (Front End Directory): Document new
6183         variable.
6184         * Makefile.in (generated_files): New variable.
6185         (ALL_HOST_OBJS): New variable.
6186         ($(ALL_HOST_OBJS)): New target.
6187
6188 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6189
6190         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6191         (remap_block): Call id->transform_lang_insert_block instead
6192         of langhook.
6193         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6194         Set id.transform_lang_insert_block to NULL.
6195         (clone_body): Move to cp/optimize.c
6196         * tree-inline.h (struct copy_body_data): Change
6197         transform_lang_insert_block to function pointer.
6198         (copy_generic_body, copy_decl_no_change): Export.
6199         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6200         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6201         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6202
6203         * c-tree.h (insert_block): Kill.
6204         * c-decl.c (insert_block): Kill.
6205
6206 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6207
6208         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6209         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6210         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6211         argument.
6212         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6213         argument, call {push,pop}_function_context from here.
6214         * c-parser.c: Use c_{push,pop}_function_context.
6215
6216         * function.c (push_function_context_to): Move meat ...
6217         (push_function_context): ... here.  Simplify.
6218         * function.c (pop_function_context_from): Move meat ...
6219         (pop_function_context): ... here.  Simplify.
6220         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6221         leave_nested).
6222         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6223         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6224         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6225         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6226
6227 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6228
6229         * expmed.c (extract_force_align_mem_bit_field): Remove.
6230
6231 2008-04-03  Richard Guenther  <rguenther@suse.de>
6232
6233         PR middle-end/35800
6234         * expr.h (try_casesi): Adjust prototype.
6235         * expr.c (try_casesi): Take fallback label as extra parameter.
6236         Use that for gen_casesi if default_label is NULL.
6237         * stmt.c (expand_case): Pass fallback label to try_casesi,
6238         make sure to fill gaps with a fallback label if default_label
6239         is not present.
6240
6241 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6242
6243         PR target/35801
6244         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6245
6246 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6247
6248         * expmed.c (extract_split_bit_field): Remove if (0) code.
6249         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6250         (do_ds_constraint): Likewise.
6251
6252 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6253
6254         * doc/cppopts.texi (-dU): Document.
6255         * c-common.h (flag_dump_macros): Update comment.
6256         * c-opts.c (handle_OPT_d): Handle -dU.
6257         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6258         dump_queued_macros, cb_used_define, cb_used_undef): New.
6259         (init_pp_output): Handle -dU.
6260         (cb_line_change): Call dump_queued_macros.
6261         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6262
6263 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6264
6265         * config/avr/predicates.md (io_address_operand): New predicate. 
6266         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6267         * config/avr/avr.c (avr_io_address_p): Remove function.
6268         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6269         'avr_io_address_p' function.
6270         (out_movhi_r_mr): (Ditto.).
6271         (out_movqi_mr_r): (Ditto.).
6272         (out_movhi_mr_r): (Ditto.).
6273         (avr_address_cost): (Ditto.).
6274
6275 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6276
6277         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6278         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6279         in 32bit mode when XMM registers are available to avoid store
6280         forwarding stalls.
6281         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6282         corresponding post-reload splitters.
6283
6284 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6285
6286         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6287         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6288         __builtin_ia32_roundss.
6289         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6290         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6291         __builtin_ia32_roundss.
6292         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6293         IX86_BUILTIN_SHUFPD here.
6294
6295 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6296
6297         * config/i386/i386.md (plogic): New.
6298         (plogicprefix): Likewise.
6299
6300         * config/i386/mmx.md (mmx_<code><mode>3): New.
6301         (mmx_and<mode>3): Removed.
6302         (mmx_ior<mode>3): Likewise.
6303         (mmx_xor<mode>3): Likewise.
6304
6305         * config/i386/sse.md (<code><mode>3): New.
6306         (*<code><mode>3): Likewise.
6307         (*<code><mode>3): Likewise.
6308         (<code><mode>3): Likewise.
6309         (*sse_<code><mode>3): Likewise.
6310         (*sse2_<code><mode>3): Likewise.
6311         (<code>tf3): Likewise.
6312         (*<code>tf3): Likewise.
6313         (and<mode>3): Likewise.
6314         (*and<mode>3): Likewise.
6315         (ior<mode>3): Removed.
6316         (*ior<mode>3): Likewise.
6317         (xor<mode>3): Likewise.
6318         (*xor<mode>3): Likewise.
6319         (*and<mode>3): Likewise.
6320         (*ior<mode>3): Likewise.
6321         (*xor<mode>3): Likewise.
6322         (and<mode>3): Likewise.
6323         (*sse_and<mode>3): Likewise.
6324         (*sse2_and<mode>3): Likewise.
6325         (andtf3): Likewise.
6326         (*andtf3): Likewise.
6327         (ior<mode>3): Likewise.
6328         (*sse_ior<mode>3): Likewise.
6329         (*sse2_ior<mode>3): Likewise.
6330         (iortf3): Likewise.
6331         (*iortf3): Likewise.
6332         (xor<mode>3): Likewise.
6333         (*sse_xor<mode>3): Likewise.
6334         (*sse2_xor<mode>3): Likewise.
6335         (xortf3): Likewise.
6336         (*xortf3): Likewise.
6337
6338 2008-04-02  Richard Guenther  <rguenther@suse.de>
6339
6340         PR tree-optimization/14495
6341         PR tree-optimization/34793
6342         * tree-vrp.c (struct switch_update): New structure.
6343         (to_remove_edges, to_update_switch_stmts): New VECs.
6344         (simplify_switch_using_ranges): New function.  Remove not taken
6345         case labels and edges.
6346         (simplify_stmt_using_ranges): Call it.
6347         (identify_jump_threads): Mark edges we have queued for removal
6348         so we don't thread them.
6349         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6350         case label vector.
6351         * tree-cfg.c (group_case_labels): Deal with missing default label.
6352         (tree_verify_flow_info): Allow missing default label.
6353         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6354         (emit_case_nodes): Likewise.
6355         (expand_case): Do not rely on the default label to be present.
6356         * expr.c (try_casesi): Deal with NULL default_label.
6357         (do_tablejump): Likewise.
6358
6359 2008-04-02  Richard Guenther  <rguenther@suse.de>
6360
6361         PR tree-optimization/14495
6362         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6363         SWITCH_EXPR here ...
6364         (vrp_visit_switch_stmt): ... but here (new function).
6365         (find_case_label_index): New helper function.
6366         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6367
6368 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6369
6370         * fwprop.c: Fix ISO-C99ism.
6371
6372 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6373
6374         PR bootstrap/35752
6375         * Makefile.in (objdir): Set it here.
6376         * configure.ac: Not here.  Find dynamic linker characteristics.
6377         * exec-tool.in: Use them.
6378         * aclocal.m4: Regenerate.
6379         * configure: Regenerate.
6380
6381 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6382
6383         * expr.c (expand_var): Delete it.
6384         * expr.h (expand_var): Delete prototype.
6385         * function.c (expand_function_start): Use expand_decl instead.
6386         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6387         langhook.
6388
6389 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6390
6391         PR rtl-optimization/35542
6392         * fwprop.c (forward_propagate_and_simplify): Replace
6393         loc_reg_mentioned_in_p with reg_mentioned_p.
6394
6395 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6396
6397         PR rtl-optimization/35281
6398         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6399         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6400         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6401         (varying_mem_p): Move above propagate_rtx.
6402         (all_uses_available_at): Do not check MEMs.
6403
6404 2008-04-02  Rafael Espindola  <espindola@google.com>
6405
6406         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6407         (register_edge_assert_for_2): Split the cond argument.
6408         (register_edge_assert_for_1): Adjust for the change in
6409         register_edge_assert_for_2.
6410         (register_edge_assert_for): Split the cond argument.
6411         (find_switch_asserts): Adjust for the change in
6412         register_edge_assert_for.
6413
6414 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6415
6416         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6417         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6418         offsets for 64-bit mingw.
6419         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6420         abi for x86_64-pc-mingw.
6421
6422 2008-04-02  Richard Guenther  <rguenther@suse.de>
6423
6424         * tree-vrp.c (extract_range_from_assert): Make sure to not
6425         produce range min/max with TREE_OVERFOW set.
6426         If merging a anti-range and a range keep the anti-range if
6427         the range covers all values of the type.
6428         (register_edge_assert_for_2): Only allow sign-changing
6429         conversions in detecting canonical range checks.  Also
6430         register an assert for the unsigned name if useful.
6431
6432         PR tree-optimization/35787
6433         * tree-vrp.c (vrp_val_max): New function.
6434         (vrp_val_min): Likewise.
6435         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6436         (vrp_val_is_min): Likewise.
6437         (supports_overflow_infinity): Use vrp_val_{min,max}.
6438         (negative_overflow_infinity): Likewise.
6439         (positive_overflow_infinity): Likewise.
6440         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6441         (is_positive_overflow_infinity): Likewise.
6442         (is_overflow_infinity): Likewise.
6443         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6444         vrp_val_is_{min,max}.
6445         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6446         to ranges if possible.  Avoid empty ranges.
6447
6448 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6449
6450         PR middle-end/35705
6451         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6452         the expression is a function address.
6453
6454 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6455
6456         PR fortran/35154, fortran/23057
6457         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6458         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6459         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6460         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6461         in common.
6462         (dbxout_syms): Check for COMMON-based symbol and wrap in
6463         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6464         in bracket for efficiency.
6465
6466         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6467         using DW_TAG_common_block + member offset.
6468         (add_pubname_string): New function.
6469         (dw_expand_expr): New function to find block name and offset for
6470         COMMON var.
6471         (common_check): New function to check whether symbol in Fortran COMMON.
6472         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6473
6474 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6475
6476         PR c/35436
6477         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6478
6479 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6480
6481         * config/v850/v850.md (casesi): Remove if (0) code.
6482         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6483         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6484
6485 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6486
6487         * config/i386/i386.md (rex64suffix): New mode attribute.
6488         (floathi<mode>2): Disable expander for SSE math.
6489         (*floathi<mode>2_1): New insn insn_and_split pattern.
6490         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6491         corresponding post-reload splitters.
6492         (*floathi<mode>2_i387): New macroized insn pattern.
6493         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6494         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6495         insn_and_split pattern.
6496         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6497         New macroized instruction patterns and corresponding post-reload
6498         splitters.
6499         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6500         and corresponding post-reload splitters.
6501         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6502         New macroized instruction patterns.
6503         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6504         macroized instruction patterns and corresponding post-reload splitters.
6505         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6506         corresponding post-reload splitters.
6507         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6508         New macroized instruction patterns.
6509         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6510         corresponding post-reload splitters.
6511         (*floatsi<mode>2_i387): New macroized instruction patterns.
6512
6513 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6514
6515         * config/i386/i386.md (smaxmin): New.
6516         (umaxmin): Likewise.
6517         (maxminiprefix): Likewise.
6518         (maxminfprefix): Likewise.
6519         (<code><mode>3): Likewise.
6520         (smin<mode>3): Removed.
6521         (smax<mode>3): Likewise.
6522
6523         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6524         (mmx_<code>v4hi3): Likewise.
6525         (mmx_<code>v8qi3): Likewise.
6526         (mmx_smaxv2sf3): Removed.
6527         (mmx_sminv2sf3): Likewise.
6528         (mmx_umaxv8qi3): Likewise.
6529         (mmx_smaxv4hi3): Likewise.
6530         (mmx_uminv8qi3): Likewise.
6531         (mmx_sminv4hi3): Likewise.
6532
6533         * config/i386/sse.md (<addsub><mode>3): New.
6534         (*<addsub><mode>3): Likewise.
6535         (<sse>_vm<addsub><mode>3): Likewise.
6536         (<maxmin><mode>3): Likewise.
6537         (*<maxmin><mode>3_finite): Likewise.
6538         (*<maxmin><mode>3): Likewise.
6539         (<sse>_vm<maxmin><mode>3): Likewise.
6540         (sse3_h<addsub>v4sf3): Likewise.
6541         (sse3_h<addsub>v2df3): Likewise.
6542         (<maxmin>v16qi3): Likewise.
6543         (*<maxmin>v16qi3): Likewise.
6544         (<maxmin>v8hi3): Likewise.
6545         (*<maxmin>v8hi3): Likewise.
6546         (*sse4_1_<maxmin><mode>3): Likewise.
6547         (*sse4_1_<maxmin><mode>3): Likewise.
6548         (add<mode>3): Removed.
6549         (*add<mode>3): Likewise.
6550         (<sse>_vmadd<mode>3): Likewise.
6551         (sub<mode>3): Likewise.
6552         (*sub<mode>3): Likewise.
6553         (<sse>_vmsub<mode>3): Likewise.
6554         (smin<mode>3): Likewise.
6555         (*smin<mode>3_finite): Likewise.
6556         (*smin<mode>3): Likewise.
6557         (<sse>_vmsmin<mode>3): Likewise.
6558         (smax<mode>3): Likewise.
6559         (*smax<mode>3_finite): Likewise.
6560         (*smax<mode>3): Likewise.
6561         (<sse>_vmsmax<mode>3): Likewise.
6562         (sse3_haddv4sf3): Likewise.
6563         (sse3_haddv2df3): Likewise.
6564         (sse3_hsubv4sf3): Likewise.
6565         (sse3_hsubv2df3): Likewise.
6566         (umaxv16qi3): Likewise.
6567         (*umaxv16qi3): Likewise.
6568         (smaxv8hi3): Likewise.
6569         (*smaxv8hi3): Likewise.
6570         (*sse4_1_smax<mode>3): Likewise.
6571         (*sse4_1_umax<mode>3): Likewise.
6572         (uminv16qi3): Likewise.
6573         (*uminv16qi3): Likewise.
6574         (sminv8hi3): Likewise.
6575         (*sminv8hi3): Likewise.
6576         (*sse4_1_smin<mode>3): Likewise.
6577         (*sse4_1_umin<mode>3): Likewise.
6578
6579 2008-04-01  Rafael Espindola  <espindola@google.com>
6580
6581         * tree-cfg.c (verify_expr): remove in_phi.
6582         (verify_stmt): Don't call walk_tree with verify_expr. Use
6583         is_gimple_min_invariant instead of is_gimple_val.
6584
6585 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6586
6587         * doc/include/gpl_v3.texi: Update for manpage generation.
6588         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6589         gpl.texi.
6590         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6591         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6592         gpl_v3.texi instead of gpl.texi.
6593         (gpl.pod): New.
6594
6595 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6596
6597         PR pch/13675
6598         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6599
6600 2008-04-01  Rafael Espindola  <espindola@google.com>
6601
6602         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6603         (extract_code_and_val_from_cond): Use
6604         extract_code_and_val_from_cond_with_ops.
6605
6606 2008-04-01  Jan Hubicka  <jh@suse.cz>
6607
6608         * function.c (free_after_compilation): Free epilogue_delay_list.
6609         (prepare_function_start): Assert that previous compilation was freed.
6610
6611 2008-04-01  Jan Hubicka  <jh@suse.cz>
6612             Jim Wilson  <wilson@tuliptree.org>
6613             Andreas Tobler <andreast@gcc.gnu.org>
6614
6615         PR middle-end/35781
6616         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6617         rtl.emit instead cfun->emit.
6618         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6619         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6620
6621 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6622
6623         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6624
6625 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6626
6627         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6628         New options
6629         (fprofile-use): Add var flag_profile_use
6630         * coverage.c (coverage_begin_output): Do not open a gcno file for
6631         output only if -ftest-coverage is set.
6632         Do not add getpwd() to gcda file path.
6633         (build_gcov_info): Check the new flag
6634         flag_profile_datafile_relative_path.
6635         (coverage_init): Use profile_data_prefix.
6636         Read profile counter only if flag_profile_use is set.
6637         * opts.c (common_handle_option): New option fprofile-use=,
6638         fprofile-dir=, fprofile-generate=.
6639         * toplev.c (profile_data_prefix): New variable definition.
6640         * toplev.h (profile_data_prefix): New declaration.
6641         * doc/invoke.tex (Option Summary, Optimization Options):
6642         Add new options.
6643
6644 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6645
6646         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6647         use tmp consistently.
6648
6649         PR target/35695
6650         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6651         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6652         UNSPEC_FR_RECIP_APPROX_RES.
6653         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6654
6655 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6656
6657         PR c/35750
6658         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6659
6660 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6661
6662         PR middle-end/30186
6663         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6664         element of the vector via a pointer.
6665
6666 2008-03-31  Ian Lance Taylor  <iant@google.com>
6667
6668         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6669
6670 2008-03-31  Jan Hubicka  <jh@suse.cz>
6671
6672         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6673         get_arg_pointer_save_area.
6674         * expr.c (init_expr): Just clear out rtl.expr.
6675         * function.c (free_after_compilation): Clear out whole RTL structure.
6676         (get_func_frame_size): Merge into ...
6677         (get_frame_size): ... this one.
6678         (assign_stack_local_1): Merge into ...
6679         (assign_stack_local): ... this one.
6680         (expand_function_end): Update call of get_arg_pointer_save_area.
6681         (get_art_pointer_save_area): Remove cfun argument.
6682         * function.h (emit_status): regno_pointer_align does not need length
6683         attribute. Move x_regno_reg_rtx to ...
6684         (regno_reg_rtx): ... new global array.
6685         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6686         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6687         apply_args_value, forced_labels, stack_pointer_delta):
6688         Update accestors.
6689         (struct varasm_status): Move here from varasm.c
6690         (struct rtl_data): New. Move here some fields from struct function.
6691         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6692         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6693         used_temp_slots avail_temp_slots, temp_slot_level,
6694         nonlocal_goto_handler_labels): Update accesstors.
6695         (rtl): New global variable.
6696         (struct function): Move some fileds to rtl_data.
6697         (get_arg_pointer_save_area): Update prototype.
6698         * emit-rtl.c (rtl): Declare.
6699         (regno_reg_rtx): Declare.
6700         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6701         Update.
6702         (gen_reg_rtx): Update.
6703         (init_virtual_regs): Do not tate emit_status argument.
6704         (init_emit): Do not allocate emit.
6705         * varasm.c (varasm_statuc): Move to function.h.
6706         (n_deferred_constatns): Update accestor.
6707         (init_varasm_status): Do not allocate varasm_status.
6708         (force_const_mem, get_pool_size, output_constant_pool): Update.
6709         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6710         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6711
6712 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6713
6714         PR rtl-optimization/35729
6715         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6716         references.
6717
6718 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6719
6720         PR target/32000
6721         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6722         load/store if memory is unaligned.
6723         (*movti_rex64): Likewise.
6724
6725         * config/i386/predicates.md (misaligned_operand): New.
6726
6727 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6728
6729         PR tree-opt/35431
6730         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6731         complex types.
6732
6733 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6734
6735         * config/ia64/constraints.md: Add 'j' constraint.
6736         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6737         (movdi_internal): Likewise.
6738
6739 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6740
6741         PR c/35748
6742         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6743
6744 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6745
6746         PR target/35757
6747         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6748         proper error message for the third argument on blendpd and
6749         blendps.
6750
6751         * config/i386/sse.md (blendbits): New.
6752         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6753
6754 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6755
6756         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6757
6758 2008-03-30  Richard Guenther  <rguenther@suse.de>
6759
6760         PR middle-end/31023
6761         * fold-const.c (fold_sign_changed_comparison): Do leave
6762         conversions to base-types alone.
6763
6764 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6765
6766         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6767         the link register if one altivec register is be saved.
6768
6769 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6770
6771         * final.c (final_scan_insn): Remove if (0) code.
6772
6773 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6774
6775         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6776
6777 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6778
6779         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6780         of V4SFmode to ix86_binary_operator_ok.
6781
6782 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6783
6784         * config/i386/i386.c (override_options): Initialize
6785         ix86_veclib_handler to ix86_veclibabi_svml when
6786         -mveclibabi=svml is used.
6787         (ix86_veclibabi_svml): New function for SVML ABI style
6788         vectorization support.
6789         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6790
6791 2008-03-28  Rafael Espindola  <espindola@google.com>
6792
6793         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6794         (tree_binary_nonnegative_warnv_p): Make it public.
6795         (tree_single_nonnegative_warnv_p): Make it public.
6796         (tree_invalid_nonnegative_warnv_p): Make it public.
6797         (tree_unary_nonzero_warnv_p): Make it public.
6798         (tree_binary_nonzero_warnv_p): Make it public
6799         (tree_single_nonzero_warnv_p): Make it public.
6800         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6801         (extract_range_from_binary_expr): Split the expr argument.
6802         (extract_range_from_unary_expr): Split the expr argument.
6803         (extract_range_from_comparison): Split the expr argument.
6804         (extract_range_from_expr): Use the new aux functions.
6805         (vrp_evaluate_conditional_warnv): Use
6806         vrp_evaluate_conditional_warnv_with_ops.
6807         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6808         (tree_binary_nonzero_warnv_p): Declare.
6809         (tree_single_nonzero_warnv_p): Declare.
6810         (tree_expr_nonzero_warnv_p): Declare.
6811         (tree_unary_nonnegative_warnv_p): Declare.
6812         (tree_binary_nonnegative_warnv_p): Declare.
6813         (tree_single_nonnegative_warnv_p): Declare.
6814         (tree_invalid_nonnegative_warnv_p): Declare.
6815
6816 2008-03-28  Richard Guenther  <rguenther@suse.de>
6817
6818         PR tree-optimization/30317
6819         PR tree-optimization/30911
6820         PR tree-optimization/34793
6821         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6822         (struct assert_locus_d): New member EXPR.
6823         (register_new_assert_for): Add EXPR parameter to support
6824         ASSERT_EXPR <name, expr OP limit>.
6825         (register_edge_assert_for_1): Adjust callers.
6826         (find_assert_locations): Likewise.
6827         (process_assert_insertions_for): Build condition from expression.
6828         (extract_range_from_assert): Handle ASSERT_EXPRs
6829         of the form ASSERT_EXPR <name, expr OP limit>.
6830         (register_edge_assert_for_2): New helper registering
6831         asserts for comparisons.  Recognize range tests of the form
6832         (unsigned)i - CST1 OP CST2.
6833         (register_edge_assert_for_1): Use it.
6834         (register_edge_assert_for): Likewise.
6835         (needs_overflow_infinity): Integer sub-types
6836         do not need overflow infinities.
6837         (vrp_val_is_max): The extreme values of integer sub-types
6838         are those of the base type.
6839         (vrp_val_is_min): Likewise.
6840         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6841         expressions.
6842
6843 2008-03-28  Nick Clifton  <nickc@redhat.com>
6844
6845         PR target/31110
6846         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6847         Return GENERAL_REGS for stack adjustment reloads.
6848
6849 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6850
6851         PR target/31334
6852         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6853         const_vector when all the vectors are constant.
6854
6855 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6856
6857         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6858         comparisons.
6859         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6860         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6861         (scc_sf): New.
6862         (s<code>_sf): Use new scc_sf attribute for opcode names.
6863
6864 2008-03-27  Tom Tromey  <tromey@redhat.com>
6865
6866         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6867         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6868         config/spu/t-spu-elf, config/i386/t-interix,
6869         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6870         config/i386/x-darwin, config/i386/x-mingw32,
6871         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6872         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6873         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6874         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6875         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6876         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6877         config/score/t-score-elf, config/arm/t-strongarm-pe,
6878         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6879         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6880         Revert automatic dependency patch.
6881
6882 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6883
6884         PR target/35657
6885         * config/i386/i386.c (ix86_function_arg_boundary): Align
6886         decimal floating point to its natural boundary.
6887
6888 2008-03-27  Richard Guenther  <rguenther@suse.de>
6889
6890         PR middle-end/35716
6891         * fold-const.c (fold_comparison): Restrict distinct decl
6892         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6893         solely rely on operand_equal_p.
6894
6895 2008-03-27  Richard Guenther  <rguenther@suse.de>
6896
6897         PR c/32511
6898         * c-common.c (handle_weak_attribute): Reject combination of
6899         weak and inline.
6900
6901 2008-03-27  Richard Guenther  <rguenther@suse.de>
6902
6903         PR tree-optimization/32810
6904         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6905         conversions from DECL_INITIAL.
6906         (fold_const_aggregate_ref): Likewise from constructor elements.
6907
6908 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6909
6910         * tree-affine.h (aff_combination_expand): Declare.
6911         (get_inner_reference_aff): Likewise.
6912         * tree-affine.c (aff_combination_expand): Split out from
6913         tree_to_aff_combination_expand.
6914         (get_inner_reference_aff): New function.
6915         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6916         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6917         (struct lim_aux_data): sm_done field removed.
6918         (mem_ref_loc_p, mem_ref_locs_p): New types.
6919         (struct mem_ref): Added id, stored, accesses_in_loop,
6920         indep_loop, dep_loop, indep_ref, dep_ref fields.
6921         Removed is_stored, locs and next fields.
6922         (memory_accesses): New variable.
6923         (movement_possibility): Do not allow moving statements
6924         that store to memory.
6925         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6926         New functions.
6927         (determine_max_movement): For statements with memory references,
6928         find the outermost loop in that the reference is independent.
6929         (move_computations_stmt): Mark the virtual operands for renaming.
6930         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6931         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6932         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6933         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6934         create_vop_ref_mapping, analyze_memory_references,
6935         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6936         get_all_locs_in_loop, ref_always_accessed_p,
6937         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6938         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6939         store_motion_loop, store_motion): New functions.
6940         (struct vop_to_refs_elt): New type.
6941         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6942         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6943         (schedule_sm): Replaced by...
6944         (execute_sm): ... this.
6945         (determine_lsm_ref, hoist_memory_references,
6946         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6947         find_more_ref_vops, free_mem_ref, free_mem_refs,
6948         determine_lsm_loop, determine_lsm): Removed.
6949         (tree_ssa_lim_finalize): Free data structures used by store motion.
6950         (tree_ssa_lim): Call analyze_memory_references.  Use
6951         store_motion instead of determine_lsm.
6952
6953 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6954
6955         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6956         rename tmake_file to m68hc11/t-m68hc11.
6957         (mcore): Set inhibit_libc to true.
6958         * config.host (alpha*-dec-*vms*): Set extra_programs.
6959         (interix3*): Don't use host_xmake_file.
6960         * configure.ac: Let config.gcc override inhibit_libc.
6961         * configure: Regenerate.
6962
6963         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6964         * config/t-openbsd-thread: Remove commented out lines.
6965         
6966         * config/x-interix: Remove.
6967
6968         * config/m68hc11/t-m68hc11-gas: Rename to...
6969         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6970
6971         * config/mcore/t-mcore: Remove T_CFLAGS.
6972         * config/mcore/t-mcore-pe: Likewise.
6973
6974 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6975
6976         * configure.ac: Replace custom __GNU_SOURCE test with
6977         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6978         * aclocal.m4: Regenerate.
6979         * configure: Regenerate.
6980         * config.in: Regenerate.
6981
6982 2008-03-27  Richard Guenther  <rguenther@suse.de>
6983
6984         * fold-const.c (target.h): Include.
6985         (fold_comparison): Fold comparison of addresses of decls
6986         that bind locally or of constants.  Consolidate address folding code.
6987         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6988         results from fold_binary_to_constant.
6989         (compare_values_warnv): Likewise.
6990
6991 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6992
6993         PR middle-end/35429
6994         * fold-const.c (fold_truthop): Check for integeral types when folding
6995         a == 0 && b == 0 and a != 0 || b != 0 .
6996
6997 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6998
6999         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7000
7001 2008-03-26  Andreas Schwab  <schwab@suse.de>
7002
7003         * doc/invoke.texi: Fix use of @item vs. @itemx.
7004
7005 2008-03-26  Tom Tromey  <tromey@redhat.com>
7006
7007         * Makefile.in (build/gensupport.o, build/print-rtl.o,
7008         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7009         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7010         build/gencodes.o, build/genconditions.o, build/genconfig.o,
7011         build/genconstants.o, build/genemit.o, build/genextract.o,
7012         build/genflags.o, build/genmddeps.o, build/genopinit.o,
7013         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7014         options.h.
7015
7016 2008-03-26  Richard Guenther  <rguenther@suse.de>
7017
7018         Revert
7019         2008-03-26  Richard Guenther  <rguenther@suse.de>
7020
7021         * fold-const.c (target.h): Include.
7022         (fold_comparison): Fold comparison of addresses of two decls
7023         that bind locally.  Consolidate address folding code.
7024
7025 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7026
7027         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7028         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7029         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7030         dconstsqrt2, dconstthird, dconste and/or dconst10.
7031         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7032         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7033         dconstsqrt2, dconste): Delete.
7034         (init_emit_once): Likewise.  Simplify initializing dconstm1.
7035         Constify variable.
7036         * real.c (get_real_const): New.
7037         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7038         dconstsqrt2, dconste): Delete.
7039         (real_value_const, get_real_const): New.
7040
7041 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7042
7043         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7044
7045         * config/i386/i386.c (ix86_function_arg_boundary): Check
7046         BIGGEST_ALIGNMENT instead of 128.
7047         (setup_incoming_varargs_64): Likewise.
7048
7049 2008-03-26  Tom Tromey  <tromey@redhat.com>
7050
7051         * Makefile.in (DEPFILES): Add missing '/'.
7052
7053 2008-03-26  Richard Guenther  <rguenther@suse.de>
7054
7055         * fold-const.c (target.h): Include.
7056         (fold_comparison): Fold comparison of addresses of two decls
7057         that bind locally.  Consolidate address folding code.
7058
7059 2008-03-26  Nick Clifton  <nickc@redhat.com>
7060
7061         PR target/31232
7062         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7063         not allow INT+INT as a legitimate addressing mode.
7064
7065 2008-03-26  Richard Guenther  <rguenther@suse.de>
7066
7067         * tree-flow.h (widen_bitfield): Remove declaration.
7068         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7069         (widen_bitfield): Remove function.
7070         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7071         code.
7072
7073 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7074
7075         PR target/31558
7076         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7077         error_mark_node's.
7078
7079 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7080
7081         PR rtl-optimization/35232
7082         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7083         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7084         reg_reloaded_call_part_clobbered here.
7085         (reload_regs_reach_end_p): New function.
7086         (reload_reg_rtx_for_input): New variable.
7087         (reload_reg_rtx_for_output): Likewise.
7088         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7089         when reassigning a pseudo register.  Load reloadreg from 
7090         reload_reg_rtx_for_input, moving the mode and register
7091         calculation to...
7092         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7093         instead of the original when deciding whether an input reload
7094         would be a no-op or whether an output reload can be deleted.
7095         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7096         when setting up new_spill_reg_store.  Load it from
7097         reload_reg_rtx_for_output, moving the mode and register
7098         calculation to...
7099         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7100         instead of the original when deciding whether an output reload
7101         would be a no-op.  Do the same when modifying insn notes.
7102         Use rtx_equal_p instead of == to compare the registers.
7103         (inherit_piecemeal_p): Take a mode and two register numbers
7104         as argument.
7105         (emit_reload_insns): Clear new_spill_reg_store for every hard
7106         register in the reload register.  Remove spill registers
7107         from reg_reloaded_valid before considering whether to record
7108         inheritance information for them.  Use reload_reg_rtx_for_output
7109         instead of reg_rtx when recording output reloads.  Use
7110         reload_reg_rtx_for_input instead of reg_rtx when recording
7111         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7112         at the same time as setting reg_reloaded_valid.
7113         (delete_output_reload): Add a new_reload_reg parameter and use it
7114         instead of rld[j].reg_rtx.
7115         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7116         calls accordingly.
7117
7118 2008-03-25  Tom Tromey  <tromey@redhat.com>
7119
7120         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7121         (build/genattr.o): Likewise.
7122         (build/genattrtab.o): Likewise.
7123         (build/gencodes.o): Likewise.
7124         (build/genconfig.o): Likewise.
7125         (build/genconstants.o): Likewise.
7126         (build/genemit.o): Likewise.
7127         (build/genextract.o): Likewise.
7128         (build/genflags.o): Likewise.
7129
7130 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7131         
7132         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7133         instead of size_int for integer types.
7134         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7135         to match type of MINUS_EXPR.
7136         
7137 2008-03-25  Tom Tromey  <tromey@redhat.com>
7138
7139         * configure: Rebuilt.
7140         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7141         Makefile.
7142
7143 2008-03-25  Tom Tromey  <tromey@redhat.com>
7144
7145         * config/x-solaris (host-solaris.o): Update.
7146         * config/x-linux (host-linux.o): Update.
7147         * config/x-hpux (host-hpux.o): Update.
7148         * config/x-darwin (host-darwin.o): Update.
7149         * config/v850/t-v850e (v850-c.o): Update.
7150         * config/v850/t-v850 (v850-c.o): Update.
7151         * config/t-vxworks (vxworks.o): Update.
7152         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7153         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7154         * config/spu/t-spu-elf (spu-c.o): Update.
7155         (spu.o): Remove.
7156         * config/sh/t-symbian (sh-c.o): Update.
7157         (symbian.o): Update.
7158         * config/sh/t-sh (sh-c.o): Update.
7159         * config/score/t-score-elf (score7.o, score3.o): Update.
7160         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7161         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7162         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7163         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7164         (rs6000.o): Remove.
7165         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7166         * config/m32c/t-m32c (m32c-pragma.o): Update.
7167         * config/ia64/t-ia64 (ia64-c.o): Update.
7168         * config/i386/x-mingw32 (host-mingw32.o): Update.
7169         * config/i386/x-i386 (driver-i386.o): Update.
7170         * config/i386/x-darwin (host-i386-darwin.o): Update.
7171         * config/i386/x-cygwin (host-cygwin.o): Update.
7172         * config/i386/t-nwld (nwld.o): Update.
7173         * config/i386/t-netware (netware.o): Update.
7174         * config/i386/t-interix (winnt.o): Update.
7175         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7176         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7177         msformat-c.o): Update.
7178         * config/bfin/t-bfin-linux (generated_files): Add
7179         linux-sysroot-suffix.h.
7180         * config/arm/t-wince-pe (pe.o): Update.
7181         * config/arm/t-strongarm-pe (pe.o): Update.
7182         * config/arm/t-pe (pe.o): Update.
7183         * config/arm/t-arm (arm-c.o): Update.
7184         * doc/install.texi (Prerequisites): Require make 3.80.
7185         * Makefile.in: Remove .o targets.
7186         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7187         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7188         (simple_generated_h, simple_generated_c): Move earlier.
7189         (generated_files): New variable.
7190         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7191         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7192         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7193         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7194         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7195         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7196         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7197         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7198         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7199         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7200         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7201         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7202         (.c.o): Remove.
7203         (COMPILE.base, COMPILE): New variables.
7204         (%.o): New pattern rule.
7205         (ALL_HOST_OBJS): New variable.
7206         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7207         (dummy-checksum.o, cc1-checksum.o): Remove.
7208         (DRIVER_SHLIB): New variable.
7209         (DRIVER_DEFINES): Use it.
7210         (gencondmd.c): Move out of build/.
7211         (s-conditions): Update.
7212         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7213         (ALL_BUILD_OBJS): Likewise.
7214         (build/%.o): Use BUILDCOMPILE.
7215         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7216         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7217         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7218         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7219         build/genconfig.o, build/genconstants.o, build/genemit.o,
7220         build/genextract.o, build/genflags.o, build/genmddeps.o,
7221         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7222         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7223         build/gen-protos.o, build/scan.o, build/fix-header.o,
7224         build/scan-decls.o): Simplify.
7225         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7226         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7227         prefix.o, toplev.o): Reduce to variable setting.
7228         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7229         ($(out_object_file), gcc-options.o): New targets.
7230         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7231         * configure: Rebuilt.
7232         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7233         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7234
7235 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7236
7237         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7238         complain when we hit an error, return ERROR_MARK_NODE.
7239
7240 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7241
7242         * config/sh/constraints.md (Pso, Psz): New constraints.
7243         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7244         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7245
7246 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7247
7248         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7249         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7250
7251 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7252
7253         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7254         (prefetch_sh2a): New.   
7255
7256 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7257             Naveen.H.S  <naveen.hs@kpitcummins.com>
7258
7259         * config/sh/constraints.md (I28): New constraint.
7260         * config/sh/sh.c (broken_move): Add support for movi20s.
7261         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7262
7263 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7264             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7265             Naveen.H.S  <naveen.hs@kpitcummins.com>
7266
7267         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7268         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7269         (print_operand): Handle resbank in %@ operand code.
7270         (sh_encode_section_info): New.
7271         (push_regs): Add conditions for resbank.
7272         (sh_expand_epilogue): Likewise.
7273         (sh_insert_attributes): Likewise.
7274         (sh_attribute_table): Likewise.
7275         (sh_handle_resbank_handler_attribute): New.
7276         (sh2a_handle_function_vector_handler_attribute): New.
7277         (sh2a_is_function_vector_call): New.
7278         (sh2a_get_function_vector_number): New.
7279         (sh2a_function_vector_p): New.
7280         (sh_cfun_resbank_handler_p): New.
7281         * config/sh/sh.md (calli): Emit jsr/n if possible.
7282         (calli_tbr_rel): New.
7283         (calli_pcrel): Emit jsr/n if possible.
7284         (return_i): Emit rts/n if possible.
7285         (call_valuei_tbr_rel): New.
7286         (call_valuei_pcrel): Add condition for SH2A target.
7287         (call_value): Likewise.
7288         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7289         (sh2a_get_function_vector_number): Likewise.
7290         (sh2a_is_function_vector_call): Likewise.
7291         * doc/extend.texi: Document TBR relative addressing of SH2A.
7292         (resbank): Add description for SH2A.
7293
7294 2008-03-24  Richard Guenther  <rguenther@suse.de>
7295
7296         PR c/22371
7297         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7298         pointer assignments change conversions according to middle-end rules.
7299         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7300         * configure.ac: Include type checking in yes.
7301         * configure: Regenerate.
7302
7303 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7304
7305         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7306         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7307         
7308 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7309
7310         * gthr-vxworks.h (UNUSED): Define.
7311
7312 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7313
7314         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7315
7316 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7317
7318         * doc/extend.texi (Function Attributes): Add missing comma in the
7319         example of the "alloc_size" attribute.
7320         
7321 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7322
7323         Revert:
7324         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7325
7326         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7327         32bit host.
7328
7329         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7330
7331         PR target/35496
7332         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7333         of the underlying type of a MS bitfield layout to the natural
7334         alignment of the type.
7335
7336         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7337
7338         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7339         to their natural alignment to avoid store forwarding stalls.
7340
7341 2008-03-22  Richard Guenther  <rguenther@suse.de>
7342
7343         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7344         For PHI nodes verify the address is invariant.
7345         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7346         (get_symbol_constant_value): Use is_gimple_min_invariant.
7347         (maybe_fold_stmt_indirect): Likewise.
7348
7349 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7350
7351         PR rtl-optimization/33927
7352         * Makefile.in (dse.o): Depend on $(TM_P_H).
7353         * expr.h (extract_low_bits): Declare.
7354         * expmed.c (extract_low_bits): New function.
7355         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7356         * dse.c: Include tm_p.h.
7357         (find_shift_sequence): Remove the read_reg argument and return the
7358         read value.  Emit the instructions instead of returning them.
7359         Iterate on new_mode rather than calculating it each time.
7360         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7361         source to NEW_MODE and extract_low_bits to convert the shifted
7362         value to READ_MODE.
7363         (replace_read): Allow the load and store to have different mode
7364         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7365         or extraction instructions before trying the replacement.  Update
7366         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7367
7368 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7369
7370         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7371         to their natural alignment to avoid store forwarding stalls.
7372
7373 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7374
7375         PR target/27946
7376         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7377         encouraging but not allowing gprs for input;
7378         change the input constraint to !f#r.
7379         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7380         gprs for output;
7381         change the output constraint to !f#r.
7382
7383 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7384
7385         PR target/13958
7386         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7387         corresponding post-reload splitters.
7388         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7389         when x87 FP math is selected.
7390         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7391         New function prototype.
7392         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7393         unreachable function to ease macroization of insn patterns.
7394
7395 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7396
7397         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7398         reference dumps if ddr is NULL or dependence is unknown.
7399
7400 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7401
7402         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7403         unsigned extension into account.
7404         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7405         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7406         Do computations on a scratch register.
7407
7408 2008-03-21  Richard Guenther  <rguenther@suse.de>
7409
7410         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7411         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7412         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7413         * tree-ssa-dom.c (record_equality): Likewise.
7414         * tree-inline.c (copy_body_r): Likewise.
7415         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7416         TREE_INVARIANT.
7417
7418 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7419
7420         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7421         as 'delete_unused' argument.
7422
7423 2008-03-20  Richard Guenther  <rguenther@suse.de>
7424
7425         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7426         special casing of constant qualifiers.
7427         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7428         care about them in general.
7429         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7430         regardless of their type.
7431         (fold_stmt_r): Forcefully fold *& if we end up with that.
7432
7433 2008-03-20  Paul Brook  <paul@codesourcery.com>
7434
7435         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7436         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7437         linker flags.
7438         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7439         definition.
7440         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7441         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7442
7443 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7444
7445         * common.opt (Wmudflap): New option.
7446         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7447         (mx_register_decls): Likewise.
7448         (mudflap_finish_file): Likewise.
7449         * doc/invoke.texi: Document -Wno-mudflap.
7450
7451 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7452
7453         * c-format.c (replace_format_name_to_system_name): New.
7454         (cmp_attribs): New.
7455         (convert_format_name_to_system_name): New.
7456         (decode_format_attr): Add use of convert_format_name_to_system_name.
7457         (format_types_orig): Add gnu_ prefix to names.
7458         (check_format_info_main): Special treating of \0 escaped names for
7459         supporting multi-character format specifiers as I32, I64.
7460         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7461         (gnu_target_overrides_format_attributes): New.
7462         * c-format.h: Add structure target_ovr_attr to hold
7463         system specific formatter names.
7464         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7465         msformat-c.o file to c_target_objs and cxx_target_objs.
7466         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7467         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7468         (TARGET_N_FORMAT_TYPES): New.
7469         * config/i386/msformat-c.c: New.
7470         * config/i386/t-cygming: Add build rule for msformat-c.o.
7471         * doc/extend.texi: Add new format names gnu_* and ms_* and
7472         further details.
7473         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7474
7475 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7476
7477         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7478         optimizations turned on under -O3.
7479         (ftree-vectorize): Add that the flag is turned on with -O3.
7480
7481 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7482
7483         * regmove.c (try_auto_increment): Fix spelling error in comment.
7484         * final.c (final_scan_insn): Likewise.
7485
7486 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7487
7488         PR target/14552
7489         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7490         allocator preferences for "y" and "r" class registers.
7491         ("*mov<mode>_internal"): Ditto.
7492         ("*movv2sf_internal_rex64"): Ditto.
7493         ("*movv2sf_internal"): Ditto.
7494
7495 2008-03-19  Michael Matz  <matz@suse.de>
7496
7497         PR middle-end/35616
7498         * calls.c (expand_call): Check overlap of arguments with call
7499         address for sibcalls.
7500
7501 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7502
7503         PR target/35496
7504         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7505         of the underlying type of a MS bitfield layout to the natural
7506         alignment of the type.
7507
7508 2008-03-19  Jan Hubicka  <jh@suse.cz>
7509
7510         PR other/35094
7511         * toplev.c (decode_d_option): Handle all CPP flags.
7512         * tree-vrp.c: Update tree_pass descriptors.
7513         * regrename.c: Update tree_pass descriptors.
7514         * fwprop.c: Update tree_pass descriptors.
7515         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7516         * tree-into-ssa.c: Update tree_pass descriptors.
7517         * tree-dump.c: Update tree_pass descriptors.
7518         * tree-complex.c: Update tree_pass descriptors.
7519         * tree-dump.h: Update tree_pass descriptors.
7520         * see.c: Update tree_pass descriptors.
7521         * cgraphbuild.c: Update tree_pass descriptors.
7522         * tracer.c: Update tree_pass descriptors.
7523         * tree-loop-distribution.c: Update tree_pass descriptors.
7524         * cgraph.c: Update tree_pass descriptors.
7525         * postreload-gcse.c: Update tree_pass descriptors.
7526         * postreload.c: Update tree_pass descriptors.
7527         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7528         * tree-tailcall.c: Update tree_pass descriptors.
7529         * tree-pass.h (tree_opt_pass): Rename to ...
7530         (opt_pass) ... this one; add "type" field and remove letter field.
7531         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7532         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7533         all_lowering_passes): Update declaration.
7534         * ipa-cp.c: Update tree_pass descriptors.
7535         * final.c: Update tree_pass descriptors.
7536         * omp-low.c: Update tree_pass descriptors.
7537         * tree-ssa-dse.c: Update tree_pass descriptors.
7538         * ipa-reference.c: Update tree_pass descriptors.
7539         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7540         * auto-inc-dec.c: Update tree_pass descriptors.
7541         * reorg.c: Update tree_pass descriptors.
7542         * cgraphunit.c: Update tree_pass descriptors.
7543         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7544         * tree-ssa-ccp.c: Update tree_pass descriptors.
7545         * df-core.c: Update tree_pass descriptors.
7546         * mode-switching.c: Update tree_pass descriptors.
7547         * tree-nomudflap.c: Update tree_pass descriptors.
7548         * modulo-sched.c: Update tree_pass descriptors.
7549         * ipa-pure-const.c: Update tree_pass descriptors.
7550         * cse.c: Update tree_pass descriptors.
7551         * web.c: Update tree_pass descriptors.
7552         * tree-stdarg.c: Update tree_pass descriptors.
7553         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7554         * tree-ssa-dom.c: Update tree_pass descriptors.
7555         * tree-nrv.c: Update tree_pass descriptors.
7556         * tree-ssa-alias.c: Update tree_pass descriptors.
7557         * loop-init.c: Update tree_pass descriptors.
7558         * gimple-low.c: Update tree_pass descriptors.
7559         * ipa-inline.c: Update tree_pass descriptors.
7560         * tree-ssa-sink.c: Update tree_pass descriptors.
7561         * global.c: Update tree_pass descriptors.
7562         * ifcvt.c: Update tree_pass descriptors.
7563         * jump.c: Update tree_pass descriptors.
7564         * predict.c: Update tree_pass descriptors.
7565         * tree-ssa-loop.c: Update tree_pass descriptors.
7566         * recog.c: Update tree_pass descriptors.
7567         * dse.c: Update tree_pass descriptors.
7568         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7569         * tree-eh.c: Update tree_pass descriptors.
7570         * regmove.c: Update tree_pass descriptors.
7571         * local-alloc.c
7572         * function.c: Update tree_pass descriptors.
7573         * tree-vectorizer.c: Update tree_pass descriptors.
7574         * gcse.c: Update tree_pass descriptors.
7575         * ipa-type-escape.c: Update tree_pass descriptors.
7576         * tree-if-conv.c: Update tree_pass descriptors.
7577         * init-regs.c: Update tree_pass descriptors.
7578         * ipa.c: Update tree_pass descriptors.
7579         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7580         * rtl-factoring.c: Update tree_pass descriptors.
7581         * lower-subreg.c: Update tree_pass descriptors.
7582         * bt-load.c: Update tree_pass descriptors.
7583         * tree-dfa.c: Update tree_pass descriptors.
7584         * except.c: Update tree_pass descriptors.
7585         * emit-rtl.c: Update tree_pass descriptors.
7586         * cfgexpand.c: Update tree_pass descriptors.
7587         * tree-cfgcleanup.c: Update tree_pass descriptors.
7588         * cfgcleanup.c: Update tree_pass descriptors.
7589         * tree-ssa-pre.c: Update tree_pass descriptors.
7590         * tree-sra.c: Update tree_pass descriptors.
7591         * tree-mudflap.c: Update tree_pass descriptors.
7592         * tree-ssa-copy.c: Update tree_pass descriptors.
7593         * cfglayout.c: Update tree_pass descriptors.
7594         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7595         * tree-ssa-dce.c: Update tree_pass descriptors.
7596         * tree-ssa.c: Update tree_pass descriptors.
7597         * regclass.c: Update tree_pass descriptors.
7598         * integrate.c: Update tree_pass descriptors.
7599         * tree-optimize.c: Update tree_pass descriptors.
7600         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7601         * tree-object-size.c: Update tree_pass descriptors.
7602         * combine.c: Update tree_pass descriptors.
7603         * tree-outof-ssa.c: Update tree_pass descriptors.
7604         * bb-reorder.c: Update tree_pass descriptors.
7605         * stack-ptr-mod.c: Update tree_pass descriptors.
7606         * var-tracking.c: Update tree_pass descriptors.
7607         * tree-profile.c: Update tree_pass descriptors.
7608         * tree-vect-generic.c: Update tree_pass descriptors.
7609         * reg-stack.c: Update tree_pass descriptors.
7610         * sched-rgn.c: Update tree_pass descriptors.
7611         * tree-ssa-structalias.c: Update tree_pass descriptors.
7612         * tree-cfg.c: Update tree_pass descriptors.
7613         * passes.c (current_pass): Update declaration.
7614         (finish_optimization_passes): Update.
7615         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7616         (register_one_dump_file, register_dump_files_1, next_pass_1):
7617         Update arguments.
7618         (init_optimization_passes): Update handling of new types.
7619         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7620         * ipa-struct-reorg.c: Update tree_pass descriptors.
7621         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7622         * combine-stack-adj.c: Update tree_pass descriptors.
7623         * cfgrtl.c: Update tree_pass descriptors.
7624         * dce.c: Update tree_pass descriptors.
7625         * tree-ssanames.c: Update tree_pass descriptors.
7626
7627 2008-03-19  Richard Guenther  <rguenther@suse.de>
7628
7629         PR middle-end/35609
7630         * tree-ssa.c (walk_data): New structure.
7631         (warn_uninitialized_var): If not always_executed warn with "maybe"
7632         instead of "is".
7633         (execute_early_warn_uninitialized): Compute post-dominators.
7634         Initialize always_executed before processing each basic block.
7635
7636 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7637
7638         PR target/35504
7639         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7640         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7641
7642 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7643
7644         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7645
7646 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7647
7648         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7649         is true.
7650         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7651         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7652         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7653         target after ignore has been set, and move there also the commputation
7654         of subtarget and original_target.
7655         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7656         (LANG_HOOKS_INITIALIZER): Remove it.
7657         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7658
7659 2008-03-18  Richard Guenther  <rguenther@suse.de>
7660
7661         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7662         found an expression with constants, note that in the VN for the lhs.
7663         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7664         fold them to constants if possible.  Run cleanup_cfg if done so.
7665         (execute_pre): Return todo.
7666         (do_pre): Likewise.
7667         (execute_fre): Likewise.
7668         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7669         of constants.
7670         (get_prop_source_stmt): Look through pointer conversions.
7671
7672 2008-03-18  Jan Hubicka  <jh@suse.cz>
7673
7674         * tree-pretty-print.c: Include predict.h.
7675         (dump_generic_node): Dump predictor.
7676         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7677         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7678         * gimple-low.c (lower_stmt): Likewise.
7679         * expr.c (expand_expr_real): Likewise.
7680         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7681         them.
7682         (build_predict_expr, build_predict_expr): New.
7683         * predict.h (predictor_name, build_predict_expr): Update.
7684         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7685         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7686         * predict.def (PRED_CONTINUE): Update hitrate.
7687         * tree.def (PREDICT_EXPR): Define.
7688         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7689         do not handle BIND_EXPR.
7690         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7691         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7692         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7693         operands.
7694
7695 2008-03-18  Michael Matz  <matz@suse.de>
7696
7697         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7698
7699 2008-03-18  Richard Guenther  <rguenther@suse.de>
7700
7701         * tree-gimple.h (is_gimple_invariant_address): Declare.
7702         (is_gimple_constant): Likewise.
7703         * tree-gimple.c (is_gimple_constant): New function.
7704         (is_gimple_invariant_address): Likewise.
7705         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7706         and is_gimple_invariant_address.
7707         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7708         previous change.
7709         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7710         an addressable base.
7711
7712 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7713
7714         PR middle-end/35611
7715         * gimplify.c (gimplify_expr): Gimplify second operand of
7716         OMP_ATOMIC_LOAD.
7717
7718 2008-03-17  Richard Guenther  <rguenther@suse.de>
7719
7720         PR tree-optimization/19637
7721         * fold-const.c (fold_unary): Remove restrictions of removing
7722         intermediate pointer-conversions (P2)(P1)P0.
7723         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7724         conversion to void pointer.
7725         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7726
7727 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7728
7729         PR debug/31510
7730         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7731         emulated thread local variables.
7732
7733 2008-03-16  Richard Guenther  <rguenther@suse.de>
7734
7735         PR middle-end/35607
7736         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7737         expand TREE_INVARIANT operations that are not gimple invariant.
7738
7739 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7740
7741         * doc/extend.texi (Alignment): Say that the ABI controls
7742         the __alignof__ for non-strict-alignment targets rather
7743         than being a recommendation.
7744
7745 2008-03-15  Paul Brook  <paul@codesourcery.com>
7746
7747         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7748         annotations.
7749         (arm_output_fn_unwind): Mark functions that can not be unwound.
7750
7751 2008-03-15  Paul Brook  <paul@codesourcery.com>
7752
7753         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7754         extension instructions.
7755
7756 2008-03-15  Richard Guenther  <rguenther@suse.de>
7757
7758         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7759         and fold constant aggregate refs.
7760         (fold_const_aggregate_ref): Handle string constants
7761         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7762         (evaluate_stmt): Simplify now that ccp_fold folds constant
7763         aggregate refs.
7764
7765 2008-03-15  Paul Brook  <paul@codesourcery.com>
7766
7767         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7768         (extzv): Use gen_extzv_t2.
7769         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7770
7771 2008-03-15  Richard Guenther  <rguenther@suse.de>
7772
7773         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7774         (fold_const_aggregate_ref): Likewise.
7775         (get_value): Return NULL if we don't have any values.
7776         (ccp_finalize): Set const_val to NULL after freeing it.
7777         * tree-flow.h (get_symbol_constant_value): Declare.
7778         (fold_const_aggregate_ref): Likewise.
7779         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7780
7781 2008-03-15  Richard Guenther  <rguenther@suse.de>
7782
7783         PR middle-end/35593
7784         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7785         to not produce negative array indices if not allowed.  Add
7786         parameter to indicate that.
7787         (maybe_fold_offset_to_component_ref): Allow negative array
7788         indices only for the first member of a structure.
7789         (maybe_fold_offset_to_reference): Allow negative array indices.
7790         (maybe_fold_stmt_addition): Likewise.
7791
7792 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7793             Anatoly Sokolov <aesok@post.ru>
7794
7795         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7796         (avr_arch): Add ARCH_AVR6.
7797         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7798         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7799         instead of fixed value 2.
7800         (print_operand_address): Use gs() asm specifier instead of pm().
7801         (avr_assemble_integer): (Ditto.).
7802         (avr_output_addr_vec_elt): (Ditto.).
7803         (print_operand): Handle "!" code.
7804         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7805         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7806         (AVR_HAVE_EIJMP_EICALL): Define.
7807         (AVR_3_BYTE_PC): Redefine.
7808         (AVR_2_BYTE_PC): (Ditto.).
7809         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7810         (LINK_SPEC): Add atmega2560 and atmega2561.
7811         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7812         (crtm2561.o).
7813         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7814         for 3 byte PC devices.
7815         (call_value_insn): (Ditto.).
7816         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7817         (indirect_jump): Use only for for 2 byte PC devices.
7818         (*tablejump): (Ditto.).
7819         (*indirect_jump_avr6): Add insn.
7820         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7821         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7822         instead of ijmp for 3 byte PC devices.
7823         (__tablejump2__): (Ditto.).
7824         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7825         (MULITLIB_DIRNAMES): (Ditto.). 
7826         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7827
7828 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7829
7830         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7831         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7832         ("mmx_psadbw"): Use V1DI mode for operand 0.
7833         * config/i386/i386-modes.def (V1SI): New vector mode.
7834         * config/i386/i386.c (struct builtin_description)
7835         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7836         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7837         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7838         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7839         v1di_ftype_v8qi_v8qi type.
7840         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7841
7842         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7843         __builtin_ia32_pmuludq]: Fix the mode of return value.
7844
7845 2008-03-15  Richard Guenther  <rguenther@suse.de>
7846
7847         PR middle-end/35595
7848         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7849         being a PHI_NODE.
7850
7851 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7852         
7853         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7854         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7855         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7856         unless TARGET_SERIALIZE_VOLATILE is enabled.
7857         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7858         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7859         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7860
7861 2008-03-14  Richard Guenther  <rguenther@suse.de>
7862
7863         PR tree-optimization/34172
7864         * tree-flow.h (refs_may_alias_p): Declare.
7865         (get_single_def_stmt): Likewise.
7866         (get_single_def_stmt_from_phi): Likewise.
7867         (get_single_def_stmt_with_phi): Likewise.
7868         * tree-dfa.c (refs_may_alias_p): New function.
7869         (get_single_def_stmt): Likewise.
7870         (get_single_def_stmt_from_phi): Likewise.
7871         (get_single_def_stmt_with_phi): Likewise.
7872         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7873         (vn_reference_lookup_1): New helper function.
7874         (vn_reference_lookup): Walk the virtual use-def chain to
7875         continue searching for a match if the def does not alias the
7876         reference we are looking for.
7877
7878 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7879
7880         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7881         archive and Perzl.  Update The Written Word listing.
7882
7883 2008-03-14  Richard Guenther  <rguenther@suse.de>
7884
7885         PR tree-optimization/34043
7886         PR tree-optimization/33989
7887         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7888         when doing FRE.
7889         (bitmap_find_leader): Use extra argument to verify dominance
7890         relationship inside a basic-block.
7891         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7892         (find_leader_in_sets): Adjust.
7893         (create_component_ref_by_pieces): Take extra argument for
7894         dominance check, handle lookup failures.
7895         (find_or_generate_expression): Likewise.
7896         (create_expression_by_pieces): Likewise.
7897         (insert_into_preds_of_block): Adjust.
7898         (create_value_expr_from): If asked for, verify all operands
7899         are in the blocks AVAIL_OUT set.
7900         (make_values_for_stmt): Check for SSA_NAMEs that are life
7901         over an abnormal edge.
7902         (compute_avail): Remove such check.
7903         (do_SCCVN_insertion): New function.
7904         (eliminate): If we do not find a leader suitable for replacement
7905         insert a replacement expression from SCCVN if available.
7906         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7907         (struct vn_ssa_aux): Add needs_insertion flag.
7908         * tree-ssa-sccvn.c (may_insert): New global flag.
7909         (copy_reference_ops_from_ref): Value-number union member access
7910         based on its size, not type and member if insertion is allowed.
7911         (visit_reference_op_load): For a weak match from union type
7912         punning lookup a view-converted value and insert a SSA_NAME
7913         for that value if that is not found.
7914         (visit_use): Make dumps shorter.  Do not disallow value numbering
7915         SSA_NAMEs that are life over an abnormal edge to constants.
7916         (free_scc_vn): Release inserted SSA_NAMEs.
7917         (run_scc_vn): New flag to specify whether insertion is allowed.
7918         Process SSA_NAMEs in forward order.
7919         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7920         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7921         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7922         pointer type to/from integral types that do not change the
7923         precision to regular conversions.
7924
7925 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7926
7927         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7928         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7929         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7930         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7931         input arguments and the mode of return value.  Built-in functions
7932         that operate on whole 64-bit MMX register now use V1DI mode.
7933
7934 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7935             Olga Golovanevsky  <olga@il.ibm.com>
7936
7937         PR tree-optimization/35041
7938         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7939         to locate the right position in a statement.
7940
7941 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7942
7943         PR target/34000
7944         PR target/35553
7945         * config/i386/xmmintrin.h:  Change all static inline functions to
7946         extern inline and add __gnu_inline__ attribute.
7947         * config/i386/bmintrin.h: Ditto.
7948         * config/i386/smmintrin.h: Ditto.
7949         * config/i386/tmmintrin.h: Ditto.
7950         * config/i386/mmintrin-common.h: Ditto.
7951         * config/i386/ammintrin.h: Ditto.
7952         * config/i386/emmintrin.h: Ditto.
7953         * config/i386/pmmintrin.h: Ditto.
7954         * config/i386/mmintrin.h: Ditto.
7955         * config/i386/mm3dnow.h: Ditto.
7956
7957 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7958
7959         PR middle-end/35185
7960         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7961         (lower_omp_2): New function.
7962         (lower_omp_1, lower_omp): Rewritten.
7963
7964 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7965
7966         PR 35054
7967         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7968         with the phrase "Microsoft Windows compilers".
7969         (Push/Pop Macro Pragmas): New subsection. Document
7970         #pragma push_macro and pragma pop_macro.
7971
7972 2008-03-12  Paul Brook  <paul@codesourcery.com>
7973
7974         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7975
7976 2008-03-12  Paul Brook  <paul@codesourcery.com>
7977
7978         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7979         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7980         (thumb2_addsi_shortim): Rename ...
7981         (thumb2_addsi_short): ... to this.  Allow register operands.
7982         (thumb2_subsi_short): New pattern.
7983         (thumb2_one_cmplsi2_short,
7984         thumb2_negsi2_short): New patterns and peepholes.
7985
7986 2008-03-12  Paul Brook  <paul@codesourcery.com>
7987
7988         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7989
7990 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7991
7992         * config/i386/i386.md (int_cond): New code iterator.
7993         (fp_cond): Ditto.
7994         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7995         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7996         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7997         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7998         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7999         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8000         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8001         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8002
8003 2008-03-12  Paul Brook  <paul@codesourcery.com>
8004
8005         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8006         instead of {arm,thumb}_compute_save_reg_mask.
8007         (output_return_instruction): Ditto.
8008         (thumb_unexpanded_epilogue): Ditto.
8009         (thumb1_expand_prologue): Ditto.
8010         (thumb1_output_function_prologue): Ditto.
8011         (arm_set_return_address): Ditto.
8012         (thumb_set_return_address): Ditto.
8013         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
8014         regs to achieve stack alignment.
8015         (thumb1_compute_save_reg_mask): Fix compiler warning.
8016         (arm_output_epilogue): Use offsets->saved_regs_mask.
8017         Adjust stack pointer by poping call clobered registers.
8018         (arm_expand_prologue): Use offsets->saved_regs_mask.
8019         Adjust stack pointer by pushing extra registers.
8020         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
8021
8022 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
8023
8024         PR tree-opt/35422
8025         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8026         conversion to the operands of a multiplication.
8027
8028 2008-03-12  Richard Guenther  <rguenther@suse.de>
8029
8030         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8031         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8032         * timevar.def (TV_TREE_PHIPROP): Add.
8033         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8034         pass description.  Use TV_TREE_PHIPROP.
8035         * tree-ssa-forwprop.c: Remove phiprop code.
8036
8037 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8038
8039         PR middle-end/35549
8040         * omp-low.c (maybe_lookup_decl): Constify first argument.
8041         (use_pointer_for_field): Change last argument from bool to
8042         omp_context *.  Disallow shared copy-in/out in nested
8043         parallel if decl is shared in outer parallel too.
8044         (build_outer_var_ref, scan_sharing_clauses,
8045         lower_rec_input_clauses, lower_copyprivate_clauses,
8046         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8047
8048 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8049             Ira Rosen  <irar@il.ibm.com>
8050
8051         * tree-vectorizer.c (free_stmt_vec_info): New function.
8052         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8053         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8054         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8055         * tree-vect-transform.c (vectorizable_conversion): Free
8056         vec_oprnds0 if it was allocated.
8057         (vect_permute_store_chain): Remove unused VECs.
8058         (vectorizable_store): Free VECs that are allocated in the..
8059         function.
8060         (vect_transform_strided_load, vectorizable_load): Likewise.
8061         (vect_remove_stores): Simplify the code.
8062         (vect_transform_loop): Move code to vect_remove_stores().
8063         Call vect_remove_stores() and free_stmt_vec_info().
8064
8065 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8066
8067         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8068         TARGET_HPUX.  Revise comment.
8069         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8070         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8071         Use sr4 variant of `be' instruction when not generating PIC code.
8072         (attr_length_call): Adjust for above change.
8073
8074 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8075
8076         * ipa-reference.c (static_execute): Remove module_statics_const and
8077         associated setting code.
8078
8079 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8080
8081         PR target/35540
8082         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8083         predicate for operand 1.
8084         (paritysi2_cmp): Use register_operand predicate for operand 2.
8085         Use earlyclobber modifier for operand 1.  Remove support for
8086         memory operands.
8087         (paritydi2_cmp): Use register_operand predicate for operand 3.
8088         Use earlyclobber modifier for operand 1.  Remove support for
8089         memory operands.
8090
8091 2008-03-11  Paul Brook  <paul@codesourcery.com>
8092             Vladimir Prus  <vladimir@codesourcery.com>
8093
8094         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8095         (arm_compute_save_reg0_reg12_mask): Always
8096         check if register 11 must be saved.  Always safe hard frame pointer
8097         when frame_pointer_needeed.
8098         (arm_compute_save_reg_mask): Save IP and PC
8099         only with apcs frames.
8100         (arm_output_epilogue): Adjust Thumb2 codepath to
8101         be also invoked and work for ARM non-apcs frames.
8102         (arm_expand_prologue): Don't bother saving IP
8103         for non-apcs frame, since it's not clobbered by
8104         prologue code.  Implement non-apcs frame
8105         layout.
8106
8107 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8108
8109         PR rtl-optimization/35281
8110         * expr.c (convert_move): Use a new pseudo for the intermediate
8111         from_mode->word_mode result.
8112
8113 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8114
8115         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8116         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8117         * toplev.c (compile_file): Don't call it.
8118
8119 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8120
8121         PR middle-end/35526
8122         * expr.c (store_expr): Call emit_block_move if the mode
8123         of "temp" RTX is BLKmode.
8124
8125 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8126             Richard Guenther  <rguenther@suse.de>
8127
8128         PR tree-optimization/31358
8129         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8130         the step with a NULL_TREE.
8131         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8132         to sizetype if type is a pointer type.
8133         (add_candidate_1): Don't convert the base and step to
8134         the generic type if the orginal type is a pointer type.
8135         (add_iv_value_candidates): Use sizetype for the step
8136         if type is a pointer type.
8137         (cand_value_at): Likewise.
8138         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8139         for pointer types.
8140         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8141         Don't convert the tem affine to the type.
8142         (add_elt_to_tree): Use sizetype for the step if a pointer.
8143         Use POINTER_PLUS_EXPR for pointers.
8144         (aff_combination_to_tree): Use sizetype for the step if a
8145         pointer.
8146
8147 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8148
8149         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8150         Remove commutativity hint.
8151
8152 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8153
8154         PR c/35438
8155         PR c/35439
8156         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8157         errorneous type.  Check that v is a VAR_DECL.
8158
8159         PR middle-end/35099
8160         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8161
8162 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8163
8164         PR tree-optimization/35494
8165         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8166         may be overriden at link and run time.
8167
8168 2008-03-10  Richard Guenther  <rguenther@suse.de>
8169
8170         PR tree-optimization/34677
8171         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8172         (poolify_tree): Likewise.
8173         (modify_expr_template): Likewise.
8174         (poolify_modify_stmt): Likewise.
8175         (insert_fake_stores): Handle all component-ref style stores
8176         in addition to INDIRECT_REF.  Also handle complex types.
8177         Do not poolify the inserted load.
8178         (realify_fake_stores): Do not rebuild the tree but only
8179         make it a SSA_NAME copy.
8180         (init_pre): Remove initialzation of modify_expr_template.
8181         Do not allocate modify_expr_node_pool.
8182         (fini_pre): Do not free modify_expr_node_pool.
8183
8184 2008-03-10  Paul Brook  <paul@codesourcery.com>
8185
8186         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8187         to avoid conflicts.
8188
8189 2008-03-10  Paul Brook  <paul@codesourcery.com>
8190             Mark Shinwell  <shinwell@codesourcery.com>
8191
8192         * config/arm/cortex-r4.md: New.
8193         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8194         insn attributes.
8195         * config/arm/arm.md: Include cortex-r4.md.
8196         (insn): Add smmls, sdiv and udiv values.
8197         (generic_sched): Don't use generic scheduling for Cortex-R4.
8198         (arm_issue_rate): New function.
8199         (TARGET_SCHED_ISSUE_RATE): Define.
8200
8201 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8202
8203         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8204
8205 2008-03-10  Richard Guenther  <rguenther@suse.de>
8206
8207         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8208         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8209
8210 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8211
8212         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8213         Set default to true.
8214
8215 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8216
8217         * c.opt (Wsynth): Deprecate.
8218         * doc/invoke.texi (Option Summary, Warning Options): Document
8219         -Wno-format-contains-nul.
8220
8221 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8222
8223         PR target/35496
8224         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8225         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8226
8227 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8228
8229         * config/rs6000/rs6000.c (builtin_description): Rename vector
8230         left shift operations.
8231         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8232         (altivec_vsl<VI_char>): Rename to ...
8233         (ashl<mode>3): ... new name.
8234         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8235         gen_ashlv4si3.
8236         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8237
8238 2008-03-08  Richard Guenther  <rguenther@suse.de>
8239
8240         * coverage.h (tree_coverage_counter_addr): Declare.
8241         * coverage.c (tree_coverage_counter_addr): New function.
8242         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8243         before using again.
8244         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8245         (tree_gen_one_value_profiler): Likewise.
8246         (tree_gen_ic_profiler): Likewise.
8247         (tree_gen_average_profiler): Likewise.
8248         (tree_gen_ior_profiler): Likewise.
8249
8250 2008-03-08  Richard Guenther  <rguenther@suse.de>
8251
8252         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8253         (vn_binary_op_insert): Likewise.
8254         (vn_unary_op_lookup): Likewise.
8255         (vn_unary_op_insert): Likewise.
8256         (vn_nary_op_lookup): Declare.
8257         (vn_nary_op_insert): Likewise.
8258         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8259         and binary hashes, use a single obstack for unary_op_pool
8260         and binary_op_pool.
8261         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8262         a single struct vn_nary_op_s.  Store tree code length and
8263         a variable number of operands.
8264         (struct vn_reference_op_struct): Remove unused op2.
8265         (vn_reference_op_eq): Do not compare op2.
8266         (vn_reference_op_compute_hash): Do not compute hash of op2.
8267         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8268         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8269         with vn_nary_op_compute_hash.
8270         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8271         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8272         vn_nary_op_lookup.
8273         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8274         vn_nary_op_insert.
8275         (visit_unary_op): Call nary functions.
8276         (visit_binary_op): Likewise.
8277         (process_scc): Adjust for struct vn_tables_s changes.
8278         (allocate_vn_table): Likewise.
8279         (free_vn_table): Likewise.
8280         * tree-vn.c (vn_add): Call nary functions.
8281         (vn_lookup): Likewise.
8282
8283 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8284
8285         PR target/35498
8286         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8287         wdst back after sync_compare_and_swapqhi_internal.
8288
8289 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8290
8291         PR target/22152
8292         * config/i386/i386-modes.def (V1DI): New vector mode.
8293         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8294         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8295         (MMXMODE248): Ditto.
8296         (MMXMODE): Add V1DI mode.
8297         (mmxvecsize): Change DI mode to V1DI mode.
8298         ("mov<mode>): Use MMXMODEI8 mode iterator.
8299         ("*mov<mode>_internal_rex64"): Ditto.
8300         ("*mov<mode>_internal"): Ditto.
8301         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8302         ("mmx_sub<mode>3"): Ditto.
8303         ("mmx_adddi3"): Remove insn pattern.
8304         ("mmx_subdi3"): Ditto.
8305         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8306         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8307         ("mmx_ashl<mode>3"): Ditto.
8308         ("mmx_lshrdi3"): Remove insn pattern.
8309         ("mmx_ashldi3"): Ditto.
8310         * config/i386/i386.c (classify_argument): Handle V1DImode.
8311         (function_arg_advance_32): Ditto.
8312         (function_arg_32): Ditto.
8313         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8314         mmx_addv1di3 insn pattern.
8315         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8316         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8317         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8318         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8319         Remove definitions of built-in functions.
8320         (V1DI_type_node): New node.
8321         (v1di_ftype_v1di_int): Ditto.
8322         (v1di_ftype_v1di_v1di): Ditto.
8323         (v2si_ftype_v2si_si): Ditto.
8324         (v4hi_ftype_v4hi_di): Remove node.
8325         (v2si_ftype_v2si_di): Ditto.
8326         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8327         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8328         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8329         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8330         Add new builtins using def_builtin_const.
8331         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8332         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8333         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8334         * config/i386/mmintrin.h (__v1di): New typedef.
8335         (_mm_add_si64): Cast arguments to __v1di type.
8336         (_mm_sub_si64): Ditto.
8337         (_mm_sll_pi16): Cast __count to __v4hi type.
8338         (_mm_sll_pi32): Cast __count to __v2si type.
8339         (_mm_sll_si64): Cast arguments to __v1di type.
8340         (_mm_srl_pi16): Cast __count to __v4hi type.
8341         (_mm_srl_pi32): Cast __count to __v2si type.
8342         (_mm_srl_si64): Cast arguments to __v1di type.
8343         (_mm_sra_pi16): Cast __count to __v4hi type.
8344         (_mm_sra_pi32): Cast __count to __v2si type.
8345         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8346         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8347         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8348         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8349         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8350         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8351         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8352         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8353         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8354         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8355         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8356         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8357
8358 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8359
8360         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8361
8362 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8363
8364         PR target/35373
8365         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8366         reg+const addressing for Altivec modes.  Don't generate reg+reg
8367         addressing for TFmode or TDmode quantities.
8368
8369 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8370
8371         * c-common.c (vector_types_convertible_p): Call langhook
8372         instead of comptypes.
8373
8374 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8375
8376         PR tree-opt/35402
8377         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8378         integral and scalar float variables which have a
8379         NULL DECL_INITIAL.
8380
8381 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8382
8383         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8384         dwarf_register_span hook when emitting unwind information for
8385         register-to-memory saves.
8386         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8387         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8388
8389 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8390
8391         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8392         for the same VAR_DECL.
8393
8394 2008-03-06  Tom Tromey  <tromey@redhat.com>
8395
8396         * treelang: Delete.
8397         * doc/standards.texi (Standards): Don't mention treelang.
8398         * doc/invoke.texi (Overall Options): Don't mention treelang.
8399         * doc/install.texi (Prerequisites): Don't mention bison or
8400         treelang.
8401         (Configuration): Don't mention treelang.
8402         (Building): Likewise.
8403         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8404
8405 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8406
8407         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8408         word-extractions out of a multi-word object.
8409
8410 2008-03-06  Richard Guenther  <rguenther@suse.de>
8411
8412         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8413         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8414         result type and precision.
8415         * expr.c (get_inner_reference): Set unsignedp based on the result
8416         type of BIT_FIELD_REF.
8417         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8418         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8419         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8420         for BIT_FIELD_REF.
8421         (sra_build_assignment): Likewise.
8422         (sra_build_elt_assignment): Likewise.
8423         (sra_explode_bitfield_assignment): Likewise.
8424         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8425         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8426         set BIT_FIELD_REF_UNSIGNED.
8427         (vectorizable_load): Likewise.
8428
8429 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8430
8431         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8432         at bb start.
8433
8434 2008-03-06  Richard Guenther  <rguenther@suse.de>
8435
8436         * alias.c (struct alias_set_entry): Move has_zero_child field
8437         to pack with alias_set.
8438
8439 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8440
8441         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8442         32bit host.
8443
8444 2008-03-05  Ian Lance Taylor  <iant@google.com>
8445
8446         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8447
8448 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8449
8450         * fwprop.c (update_df): Support width and offset parameters of
8451         df_ref_create.
8452         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8453         global_conflicts): Change DF_REF_EXTRACT to either
8454         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8455         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8456         * df-scan.c (df_ref_record, df_defs_record,
8457         df_ref_create_structure, df_def_record_1, df_uses_record,
8458         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8459         df_bb_refs_collect, df_entry_block_defs_collect,
8460         df_exit_block_uses_collect): Support new width and offset fields.
8461         (ref_extract_pool): New storage pool.
8462         (df_free_ref): New function.
8463         (df_reg_chain_unlink, df_free_collection_rec,
8464         df_sort_and_compress_refs): Call df_free_ref.
8465         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8466         of df_ref_extract.
8467         (df_ref_create_structure): Allocate df_ref_extract if offset and
8468         width fields are used.
8469         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8470         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8471         and SIGN_EXTRACT.
8472         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8473         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8474         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8475         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8476         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8477         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8478         (df_ref_extract): New structure.
8479         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8480         (df_ref_create): Add width and offset parameters.
8481         
8482 2008-03-05  Richard Guenther  <rguenther@suse.de>
8483
8484         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8485         Use ranges_overlap_p.
8486         (offset_overlaps_with_access): Rename
8487         to ranges_overlap_p and move ...
8488         * tree-flow-inline.h (ranges_overlap_p): ... here.
8489
8490         * tree.h (get_inner_reference, handled_component_p): Update
8491         comments.
8492
8493         * tree.h (record_component_aliases, get_alias_set,
8494         alias_sets_conflict_p, alias_sets_must_conflict_p,
8495         objects_must_conflict_p): Move declarations ...
8496         * alias.h (record_component_aliases, get_alias_set,
8497         alias_sets_conflict_p, alias_sets_must_conflict_p,
8498         objects_must_conflict_p): ... here.
8499         Include coretypes.h.
8500         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8501
8502 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8503
8504         * cfg.c: Include tree-flow.h.
8505         (remove_edge_raw): Call redirect_edge_var_map_clear.
8506         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8507         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8508         (redirect_edge_var_map_result): New.
8509         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8510         PENDING_STMT use with redirect_edge_var_map_*.
8511         * tree-ssa.c (edge_var_maps): New definition.
8512         (redirect_edge_var_map_add): New.
8513         (redirect_edge_var_map_clear): New.
8514         (redirect_edge_var_map_dup): New.
8515         (redirect_edge_var_map_vector): New.
8516         (redirect_edge_var_map_destroy): New.
8517         (ssa_redirect_edge): Replace PENDING_STMT use with
8518         redirect_edge_var_map_*.
8519         (flush_pending_stmts): Same.
8520         (delete_tree_ssa): Destroy edge var map.
8521         * tree-flow.h (struct _edge_var_map): New.
8522         Define edge_var_map vector type.
8523         Declare redirect_edge_var_map_* prototypes.
8524         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8525         * tree-cfg.c (reinstall_phi_args): Replace
8526         PENDING_STMT use with redirect_edge_var_map_*.
8527
8528 2008-03-05  Richard Guenther  <rguenther@suse.de>
8529
8530         PR tree-optimization/35472
8531         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8532         whose single use_stmt has a overlapping set of loaded and
8533         stored symbols as that use_stmt might be a noop assignment then.
8534
8535 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8536
8537         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8538
8539 2008-03-05  Richard Guenther  <rguenther@suse.de>
8540
8541         PR c++/35336
8542         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8543         should be constants.
8544         * tree-cfg.c (verify_expr): Verify it.
8545         * fold-const.c (fold_truthop): Remove code generating
8546         BIT_FIELD_REFs of structure bases.
8547         (fold_binary): Likewise.
8548         (fold_ternary): Position and size of BIT_FIELD_REFs are
8549         always host integers.
8550         (make_bit_field_ref): Remove.
8551         (optimize_bit_field_compare): Remove.
8552         (all_ones_mask_p): Remove.
8553
8554 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8555
8556         PR gcc/33009
8557         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8558         (split_block_and_df_analyze): New. Split basic block and rebuild
8559         dataflow.
8560         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8561         SPLIT_BLOCK.
8562         (split_pattern_seq): Likewise.
8563         (erase_matching_seqs): Likewise.
8564         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8565
8566 2008-03-04  Geoff Keating  <geoffk@apple.com>
8567
8568         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8569         declaration and code.
8570         (tree_invalid_nonnegative_warnv_p): Likewise.
8571
8572 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8573
8574         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8575         examples.  Truncate option-names then causing overfull hbox.
8576
8577 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8578
8579         PR target/35222
8580         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8581         on hpux10.
8582         * configure: Rebuilt.
8583
8584 2008-03-04  Rafael Espindola  <espindola@google.com>
8585
8586         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8587         (tree_unary_nonnegative_warnv_p): New.
8588         (tree_binary_nonnegative_warnv_p): New.
8589         (tree_single_nonnegative_warnv_p): New.
8590         (tree_invalid_nonnegative_warnv_p): New.
8591         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8592
8593 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8594
8595         PR 28322
8596         * opts.c (handle_option): Postpone 'unknown option' errors only for
8597         warning options.
8598
8599 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8600
8601         PR target/35453
8602         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8603         (_SIDD_XXX): This.
8604
8605 2008-03-04  Rafael Espindola  <espindola@google.com>
8606
8607         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8608         (tree_binary_nonzero_warnv_p): New.
8609         (tree_single_nonzero_warnv_p): New.
8610         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8611
8612 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8613
8614         PR middle-end/35456
8615         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8616         transformations for modes that have signed zeros.
8617         * ifcvt.c (noce_try_abs): Ditto.
8618
8619 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8620
8621         * config/i386/i386.c (override_options): Force
8622         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8623
8624 2008-03-04  Jan Hubicka  <jh@suse.cz>
8625
8626         PR c++/35262
8627         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8628         in last commit.
8629
8630 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8631
8632         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8633         label to probe the stack.
8634
8635 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8636
8637         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8638         (__gthr_win32_mutex_destroy): Declare.
8639         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8640         __gthr_win32_mutex_destroy.
8641         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8642
8643 2008-03-03  Jan Hubicka  <jh@suse.cz>
8644
8645         PR c++/35262
8646         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8647         aggressive on inlining cold calls.
8648
8649 2008-03-03  Richard Guenther  <rguenther@suse.de>
8650
8651         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8652         struct copies into the expression table.
8653         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8654         (try_to_simplify): Likewise.
8655         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8656         integral and pointer arguments which do not change the
8657         precision to NOP_EXPRs.
8658         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8659         VIEW_CONVERT_EXPR case.
8660
8661 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8662
8663         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8664         defined in a loop at depth 0 is invariant.
8665         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8666         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8667         be called at loop depth 0.
8668
8669 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8670
8671         PR driver/35420
8672         * gcc.c (process_command): Update copyright notice dates.
8673         * gcov.c (print_version): Likewise.
8674         * gcov-dump.c (print_version): Likewise.
8675         * mips-tfile.c (main): Likewise.
8676         * mips-tdump.c (main): Likewise.
8677
8678 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8679
8680         PR 24924
8681         * c-common.c (flag_permissive): Delete.
8682         (constant_expression_warnings): Check flags first.
8683         (constant_expression_error): New.
8684         * c-common.h (flag_permissive): Delete.
8685         (constant_expression_error): Declare.
8686         * flags.h (flag_permissive): Declare. Update description.
8687         * diagnostic.c (pedwarn): Update.
8688         (permerror): New.
8689         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8690         (permissive_error_kind): New.
8691         * toplev.c (flag_permissive): Define. Update description.
8692         * toplev.h (permissive_error_kind): Declare.
8693         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8694         (pedwarn_c90): Use pedantic_warning_kind.
8695         * c-opts.c (c_common_post_options): flag_permissive does not affect
8696         flag_pedantic_errors.
8697
8698 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8699
8700         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8701         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8702         __absvsi2, __absvDI2): Use unsigned arithmetic.
8703
8704 2008-03-02  Andi Kleen  <ak@suse.de>
8705             Richard Guenther  <rguenther@suse.de>
8706
8707         * struct-equiv.c: Remove file.
8708         * cfg_cleanup.c (condjump_equiv_p): Remove.
8709         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8710         (struct-equiv.o): Remove rule.
8711         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8712         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8713         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8714
8715 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8716
8717         * ifcvt.c (noce_process_if_block): Try to handle only the then
8718         block if the else block exists but isn't suitable.
8719
8720 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8721
8722         PR gcc/35063
8723         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8724         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8725         regression from previous patch.
8726
8727 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8728
8729         PR gcc/35063
8730         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8731         implemented.
8732         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8733         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8734         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8735         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8736         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8737         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8738         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8739         (__gthread_mutex_destroy_function): Rename to
8740         __gthread_mutex_destroy.
8741         * gthr-dce.h (__gthread_mutex_destroy): Call
8742         pthread_mutex_destroy.
8743         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8744         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8745         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8746
8747 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8748
8749         * df-scan.c (df_ref_chain_change_bb): Simplify.
8750         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8751         set_block_for_insn if there's any change.
8752         * df.h ((df_insn_change_bb): Fix prototype.
8753         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8754         df_insn_change_bb, don't call set_block_for_insn.
8755         * emit-rtl.c (reorder_insns): Likewise.
8756         * haifa-sched.c (move_insn): Likewise.
8757
8758 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8759
8760         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8761
8762 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8763
8764         * tree-flow-inline.h (next_readonly_imm_use): Return
8765         NULL_USE_OPERAND_P after the end.
8766
8767 2008-03-01  Richard Guenther  <rguenther@suse.de>
8768
8769         PR tree-optimization/35411
8770         * tree-sra.c (sra_build_assignment): Split conversion to
8771         final type to a separate statement if we are not assigning
8772         to a register.
8773
8774 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8775
8776         * fold-const.c (fold_convertible_p): Correct the logic to follow
8777         that in fold_convert().
8778
8779 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8780
8781         PR c++/35315
8782         * tree-inline.c (build_duplicate_type): When we make a
8783         duplicate type, make it unique in the canonical types system.
8784
8785 2008-02-29  Tom Tromey  <tromey@redhat.com>
8786
8787         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8788         input_file_stack_history, input_file_stack_restored): Remove.
8789         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8790         * input.h (struct file_stack): Remove.
8791         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8792         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8793         Likewise.
8794         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8795         type.
8796         (diagnostic_last_module_changed): Add 'map' argument.
8797         (diagnostic_set_last_function): Likewise.
8798         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8799         line map, not input_file_stack.
8800         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8801
8802 2008-02-29  Paul Brook  <paul@codesourcery.com>
8803
8804         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8805
8806 2008-02-29  Paul Brook  <paul@codesourcery.com>
8807
8808         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8809
8810 2008-02-29  Richard Guenther  <rguenther@suse.de>
8811
8812         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8813         vn_lookup_or_add.
8814         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8815         value for comparing for a store match.
8816         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8817         (try_to_simplify): Do not do a full-blown reference lookup.
8818
8819 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8820
8821         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8822         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8823
8824         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8825
8826 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8827
8828         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8829         strides against cache sizes.
8830
8831 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8832
8833         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8834         constant to fpul.
8835
8836 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8837
8838         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8839         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8840         is smaller than the original promoted value.
8841         (simplify_subreg): If OP is a SUBREG, try to preserve its
8842         SUBREG_PROMOTED_VAR_P information.
8843
8844 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8845
8846         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8847         (VN_INFO_GET): Allocate new objects on the obstack.
8848         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8849         for rpo_numbers_temp, for consistency.
8850         (free_scc_vn): Free the obstack.
8851
8852 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8853
8854         * doc/invoke.texi: Document -ftree-loop-distribution.
8855         * tree-loop-distribution.c: New.
8856         * tree-pass.h (pass_loop_distribution): New.
8857         * graphds.h (struct graph): Add htab_t indices.
8858         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8859         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8860         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8861         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8862         * tree-data-ref.c (debug_data_dependence_relations): New.
8863         (dump_data_dependence_relation): Also print data references.
8864         (free_data_ref): Extern.
8865         (same_access_functions): Moved...
8866         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8867         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8868         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8869         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8870         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8871         (stmts_from_loop): Skip LABEL_EXPR.
8872         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8873         New.
8874         (build_rdg): Initialize rdg->indices htab.
8875         (free_rdg, stores_from_loop, ref_base_address,
8876         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8877         have_similar_memory_accesses_1, ref_base_address_1,
8878         remove_similar_memory_refs): New.
8879         * tree-data-ref.h: Depend on tree-chrec.h.
8880         (debug_data_dependence_relations, free_data_ref): Declared.
8881         (same_access_functions): ... here.
8882         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8883         New.
8884         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8885         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8886         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8887         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8888         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8889         rdg_vertex_for_stmt): Declared.
8890         (struct rdg_edge): Add level.
8891         (RDGE_LEVEL): New.
8892         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8893         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8894         Declared.
8895         (rdg_has_similar_memory_accesses): New.
8896         * tree-vect-analyze.c: Remove unused static decls.
8897         * lambda.h (dependence_level): New.
8898         * common.opt (ftree-loop-distribution): New.
8899         * tree-flow.h (mark_virtual_ops_in_bb, 
8900         slpeel_tree_duplicate_loop_to_edge_cfg,
8901         rename_variables_in_loop): Declared.
8902         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8903         (OBJS-common): Add tree-loop-distribution.o.
8904         (tree-loop-distribution.o): New rule.
8905         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8906         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8907         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8908
8909 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8910
8911         PR target/33963
8912         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8913         other than structures and unions.
8914
8915 2008-02-28  Richard Guenther  <rguenther@suse.de>
8916
8917         Revert:
8918         2008-02-26  Richard Guenther  <rguenther@suse.de>
8919
8920         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8921         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8922         (lookup_decl_from_uid): Declare.
8923         (remove_decl_from_map): Likewise.
8924         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8925         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8926         (decl_for_uid_map): New global hashtable mapping DECL_UID
8927         to the decl tree.
8928         (init_ttree): Allocate it.
8929         (insert_decl_to_uid_decl_map): New helper function.
8930         (make_node_stat): Insert new decls into the map.
8931         (copy_node_stat): Likewise.
8932         (lookup_decl_from_uid): New function.
8933         (remove_decl_from_map): Likewise.
8934         (print_decl_for_uid_map_statistics): New helper.
8935         (dump_tree_statistics): Call it.
8936
8937         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8938         (referenced_var_iterator): Adjust.
8939         (FOR_EACH_REFERENCED_VAR): Adjust.
8940         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8941         (num_referenced_vars): Adjust.
8942         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8943         (first_referenced_var): Remove.
8944         (end_referenced_vars_p): Likewise.
8945         (next_referenced_var): Likewise.
8946         (referenced_var_iterator_set): New helper function.
8947         * tree-dfa.c (referenced_var_lookup): Adjust.
8948         (referenced_var_check_and_insert): Likewise.
8949         (remove_referenced_var): Likewise.
8950         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8951         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8952         (verify_call_clobbering): Likewise.
8953         (verify_memory_partitions): Likewise.
8954         (init_tree_ssa): Allocate bitmap instead of hashtable for
8955         referenced_vars.
8956         (delete_tree_ssa): Adjust.
8957         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8958         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8959         (compute_tag_properties): Likewise.
8960         (set_initial_properties): Likewise.
8961         (find_partition_for): Likewise.
8962         (update_reference_counts): Likewise.
8963         (dump_may_aliases_for): Likewise.
8964         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8965         (add_call_clobber_ops): Likewise.
8966         (add_call_read_ops): Likewise.
8967         (get_asm_expr_operands): Likewise.
8968         * tree-into-ssa.c (dump_decl_set): Likewise.
8969         (update_ssa): Likewise.
8970         * tree-sra.c (scan_function): Likewise.
8971         (decide_instantiations): Likewise.
8972         (scalarize_parms): Likewise.
8973         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8974         (dsa_named_for): Likewise.
8975         * tree-ssa-structalias.c (update_alias_info): Likewise.
8976         (merge_smts_into): Likewise.
8977
8978 2008-02-27  David Daney  <ddaney@avtrex.com>
8979
8980         PR target/34409
8981         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8982         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8983         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8984         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8985         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8986
8987 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8988
8989         PR target/25477
8990         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8991         (BUILT_IN_NEXTTOWARD): Remove.
8992         (BUILT_IN_NEXTTOWARDF): Ditto.
8993         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8994         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8995
8996 2008-02-27  Tom Tromey  <tromey@redhat.com>
8997
8998         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8999         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9000
9001 2008-02-27  Jan Beulich  <jbeulich@novell.com>
9002
9003         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9004         update the respective field on newdecl.
9005
9006 2008-02-27  Revital Eres  <eres@il.ibm.com>
9007
9008         PR rtl-optimization/34999
9009         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9010         crossing edges that ends with a call insn.
9011         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9012         call insn and clear the EDGE_CROSSING flag of the crossing edge
9013         when fixing fallthru edges.
9014
9015 2008-02-27  Richard Guenther  <rguenther@suse.de>
9016
9017         PR middle-end/35390
9018         * fold-const.c (fold_unary): Return the correct argument,
9019         converted to the result type.
9020
9021 2008-02-27  Richard Guenther  <rguenther@suse.de>
9022
9023         PR middle-end/34971
9024         * expr.c (expand_expr_real_1): Assert on rotates that operate
9025         on partial modes.
9026         * fold-const.c (fold_binary): Use the types precision, not the
9027         bitsize of the mode if folding rotate expressions.  Build rotates
9028         only for full modes.
9029
9030 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
9031
9032         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9033         and CPP_PRAGMA_EOL.
9034         * c-pragma.c (pragma_ns_name): New typedef.
9035         (registered_pp_pragmas): New variable.
9036         (c_pp_lookup_pragma): New function.
9037         (c_register_pragma_1): If flag_preprocess_only, do nothing
9038         for non-expanded pragmas, for expanded ones push pragma's
9039         namespace and name into registered_pp_pragmas vector.
9040         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9041         flag_preprocess_only, don't register GCC pch_preprocess
9042         pragma if flag_preprocess_only.
9043         * c-opts.c (c_common_init): Call init_pragma even if
9044         flag_preprocess_only.
9045         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9046         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9047         cpp_register_pragma if flag_preprocess_only.
9048
9049 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9050
9051         PR c/28800
9052         * c-parser.c (c_parser_translation_unit): Warn for empty
9053         translation unit, not empty source file.
9054
9055 2008-02-26  Paul Brook  <paul@codesourcery.com>
9056
9057         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9058         operand for Thumb-2.
9059         * config/arm/arm.h (reg_class): Add CORE_REGS.
9060         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9061         (BASE_REG_CLASS): Use CORE_REGS.
9062         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9063         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9064         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9065         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9066         ARM_REGNO_OK_FOR_INDEX_P.
9067         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9068         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9069         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9070         (ldm/stm peepholes): Ditto.
9071         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9072         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9073         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9074         * config/arm/constraints.md: Enable "k" constraint on ARM.
9075
9076 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9077
9078         * config/rs6000/rs6000.c: Annotate cache line size field in all
9079         instances of struct processor_costs.
9080
9081 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9082
9083         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9084         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9085         jump_bypass): New counters.
9086         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9087         * dce.c (gate_ud_dce): Same.
9088         (gate_fast_dce): Same.
9089         * dse.c (gate_dse1): New function.
9090         (gate_dse2): New function.
9091         (gate_dse): Merge results of new gate functions.
9092         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9093         (gate_handle_jump_bypass): Add dbg_cnt.
9094         (gate_handle_gcse): Add dbg_cnt.
9095         * ifcvt.c (gate_handle_if_conversion): Same.
9096         (gate_handle_if_after_combine): Same.
9097         (gate_handle_if_after_reload): Same.
9098         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9099
9100 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9101
9102         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9103         line sizes.
9104         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9105
9106 2008-02-26  Jason Merrill  <jason@redhat.com>
9107
9108         PR c++/35315
9109         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9110         alone if it's the naming decl for the type's main variant.
9111
9112 2008-02-26  Tom Tromey  <tromey@redhat.com>
9113
9114         * system.h (USE_MAPPED_LOCATION): Poison.
9115         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9116         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9117         (make_goto_expr_edges): Likewise.
9118         (remove_bb): Likewise.
9119         (execute_warn_function_return): Likewise.
9120         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9121         location_t.
9122         * c-common.c (fname_decl): Remove old location code.
9123         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9124         location code.
9125         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9126         variant.
9127         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9128         (gen_rtx_ASM_INPUT): Likewise.
9129         (gen_rtx_ASM_INPUT_loc): Likewise.
9130         (get_rtx_asm_OPERANDS): Remove.
9131         * cfglayout.c (insn_locators_alloc): Remove old location code.
9132         (set_curr_insn_source_location): Likewise.
9133         (curr_insn_locator): Likewise.
9134         * print-tree.c (print_node): Remove old location code.
9135         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9136         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9137         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9138         location_from_locus.
9139         (construct_exit_block): Remove old location code.
9140         * emit-rtl.c (force_next_line_note): Remove old location code.
9141         * profile.c (branch_prob): Remove old location code.
9142         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9143         LOC_LINE): Remove old-location variants.
9144         * langhooks.c (lhd_print_error_function): Remove old location
9145         code.
9146         * configure, config.in: Rebuilt.
9147         * configure.ac (--enable-mapped-location): Remove.
9148         * c-decl.c (c_init_decl_processing): Remove old location code.
9149         (finish_function): Likewise.
9150         * recog.c (decode_asm_operands): Remove old location code.
9151         * c-pch.c (c_common_read_pch): Remove old location code.
9152         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9153         variants.
9154         * gimple-low.c (lower_function_body): Remove old location code.
9155         * toplev.c (unknown_location): Remove.
9156         (push_srcloc): Remove old-location variant.
9157         (process_options): Remove old location code.
9158         (lang_dependent_init): Likewise.
9159         * input.h (UNKNOWN_LOCATION): Move definition.
9160         (location_t): Undeprecate.
9161         (source_locus): Remove.
9162         (location_from_locus): Remove.
9163         (struct location_s): Remove.
9164         Remove all old-location code.
9165         (input_line, input_filename): Remove.
9166         * final.c (final_scan_insn): Remove old location code.
9167         * diagnostic.c (diagnostic_build_prefix): Remove
9168         USE_MAPPED_LOCATION test.
9169         * tree.h (gimple_stmt) <locus>: Now a location_t.
9170         (tree_exp) <locus>: Likewise.
9171         (DECL_IS_BUILTIN): Remove old-location variant.
9172         (annotate_with_file_line, annotate_with_locus): Likewise.
9173         (expr_locus, set_expr_locus): Update.
9174         * tree.c (build1_stat): Remove old location code.
9175         (last_annotated_node): Remove.
9176         (annotate_with_file_line): Remove old-location variant.
9177         (annotate_with_locus): Likewise.
9178         (expr_location): Remove old location code.
9179         (set_expr_location): Likewise.
9180         (expr_has_location): Likewise.
9181         (expr_locus): Likewise.
9182         (set_expr_locus): Likewise.
9183         (expr_filename): Don't use location_from_locus.
9184         (expr_lineno): Likewise.
9185         * rtl-error.c (location_for_asm): Remove old location code.
9186         * c-lex.c (cb_line_change): Remove old location code.
9187         (fe_file_change): Likewise.
9188         (cb_def_pragma): Likewise.
9189         (c_lex_with_flags): Likewise.
9190         * gengtype.c (do_typedef): Don't special-case location types.
9191         (define_location_structures): Remove.
9192         (main): Don't call define_location_structures.
9193         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9194         code.
9195
9196 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9197
9198         PR 26264
9199         * builtins.def (BUILT_IN_STDARG_START): Remove.
9200         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9201         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9202         * tree-inline.c (inline_forbidden_p_1): Likewise.
9203         
9204 2008-02-26  Richard Guenther  <rguenther@suse.de>
9205
9206         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9207         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9208         (lookup_decl_from_uid): Declare.
9209         (remove_decl_from_map): Likewise.
9210         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9211         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9212         (decl_for_uid_map): New global hashtable mapping DECL_UID
9213         to the decl tree.
9214         (init_ttree): Allocate it.
9215         (insert_decl_to_uid_decl_map): New helper function.
9216         (make_node_stat): Insert new decls into the map.
9217         (copy_node_stat): Likewise.
9218         (lookup_decl_from_uid): New function.
9219         (remove_decl_from_map): Likewise.
9220         (print_decl_for_uid_map_statistics): New helper.
9221         (dump_tree_statistics): Call it.
9222
9223         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9224         (referenced_var_iterator): Adjust.
9225         (FOR_EACH_REFERENCED_VAR): Adjust.
9226         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9227         (num_referenced_vars): Adjust.
9228         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9229         (first_referenced_var): Remove.
9230         (end_referenced_vars_p): Likewise.
9231         (next_referenced_var): Likewise.
9232         (referenced_var_iterator_set): New helper function.
9233         * tree-dfa.c (referenced_var_lookup): Adjust.
9234         (referenced_var_check_and_insert): Likewise.
9235         (remove_referenced_var): Likewise.
9236         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9237         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9238         (verify_call_clobbering): Likewise.
9239         (verify_memory_partitions): Likewise.
9240         (init_tree_ssa): Allocate bitmap instead of hashtable for
9241         referenced_vars.
9242         (delete_tree_ssa): Adjust.
9243         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9244         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9245         (compute_tag_properties): Likewise.
9246         (set_initial_properties): Likewise.
9247         (find_partition_for): Likewise.
9248         (update_reference_counts): Likewise.
9249         (dump_may_aliases_for): Likewise.
9250         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9251         (add_call_clobber_ops): Likewise.
9252         (add_call_read_ops): Likewise.
9253         (get_asm_expr_operands): Likewise.
9254         * tree-into-ssa.c (dump_decl_set): Likewise.
9255         (update_ssa): Likewise.
9256         * tree-sra.c (scan_function): Likewise.
9257         (decide_instantiations): Likewise.
9258         (scalarize_parms): Likewise.
9259         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9260         (dsa_named_for): Likewise.
9261         * tree-ssa-structalias.c (update_alias_info): Likewise.
9262         (merge_smts_into): Likewise.
9263
9264 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9265
9266         PR 34351
9267         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9268         * c-opts.c (c_common_handle_option): Wall enables
9269         Wvolatile-register-var.
9270         * common.opt: Move Wvolatile-register-var to...
9271         * c.opt: ...here.
9272         
9273 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9274
9275         * common.opt (Wlarger-than=): New.
9276         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9277         -Wlarger-than=.
9278         * opts.c (common_handle_option): Handle -Wlarger-than=.
9279         * optc-gen.awk: Likewise.
9280         * opth-gen.awk: Likewise.
9281         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9282         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9283         
9284 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9285
9286         * c-common.c (match_case_to_enum_1): Add appropriate
9287         OPT_W* parameter to warning.
9288         (c_do_switch_warnings): Likewise.
9289         * c-typeck.c (warning_init): Add one more parameter following
9290         'warning' function.
9291         (push_init_level): Update call to warning_init.
9292         (pop_init_level): Likewise.
9293         (add_pending_init): Likewise.
9294         (output_init_element: Likewise.
9295
9296 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9297
9298         PR 28322
9299         * toplev.c (toplev_main): If there are warnings or error, print
9300         errors for ignored options.
9301         * opts.c (ignored_options): New static variable.
9302         (postpone_unknown_option_error): New.
9303         (print_ignored_options): New.
9304         (handle_option): Postpone errors for unknown -Wno-* options.
9305         * opts.h (print_ignored_options): Declare.
9306         
9307 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9308
9309         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9310         to "ghost".
9311
9312 2008-02-25  Richard Guenther  <rguenther@suse.de>
9313
9314         Revert:
9315         2008-02-25  Richard Guenther  <rguenther@suse.de>
9316
9317         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9318         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9319         (lookup_decl_from_uid): Declare.
9320         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9321         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9322         (decl_for_uid_map): New global hashtable mapping DECL_UID
9323         to the decl tree.
9324         (init_ttree): Allocate it.
9325         (insert_decl_to_uid_decl_map): New helper function.
9326         (make_node_stat): Insert new decls into the map.
9327         (copy_node_stat): Likewise.
9328         (lookup_decl_from_uid): New function.
9329         (print_decl_for_uid_map_statistics): New helper.
9330         (dump_tree_statistics): Call it.
9331
9332         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9333         (referenced_var_iterator): Adjust.
9334         (FOR_EACH_REFERENCED_VAR): Adjust.
9335         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9336         (num_referenced_vars): Adjust.
9337         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9338         (first_referenced_var): Remove.
9339         (end_referenced_vars_p): Likewise.
9340         (next_referenced_var): Likewise.
9341         (referenced_var_iterator_set): New helper function.
9342         * tree-dfa.c (referenced_var_lookup): Adjust.
9343         (referenced_var_check_and_insert): Likewise.
9344         (remove_referenced_var): Likewise.
9345         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9346         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9347         (verify_call_clobbering): Likewise.
9348         (verify_memory_partitions): Likewise.
9349         (init_tree_ssa): Allocate bitmap instead of hashtable for
9350         referenced_vars.
9351         (delete_tree_ssa): Adjust.
9352         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9353         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9354         (compute_tag_properties): Likewise.
9355         (set_initial_properties): Likewise.
9356         (find_partition_for): Likewise.
9357         (update_reference_counts): Likewise.
9358         (dump_may_aliases_for): Likewise.
9359         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9360         (add_call_clobber_ops): Likewise.
9361         (add_call_read_ops): Likewise.
9362         (get_asm_expr_operands): Likewise.
9363         * tree-into-ssa.c (dump_decl_set): Likewise.
9364         (update_ssa): Likewise.
9365         * tree-sra.c (scan_function): Likewise.
9366         (decide_instantiations): Likewise.
9367         (scalarize_parms): Likewise.
9368         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9369         (dsa_named_for): Likewise.
9370         * tree-ssa-structalias.c (update_alias_info): Likewise.
9371         (merge_smts_into): Likewise.
9372
9373 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9374
9375         PR fortran/29549
9376         * doc/invoke.texi (-fcx-limited-range): Document new option.
9377         * toplev.c (process_options): Handle -fcx-fortran-rules.
9378         * common.opt: Add documentation for -fcx-fortran-rules.
9379
9380 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9381
9382         PR c/35162
9383         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9384         actual behaviour and C99.
9385         
9386 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9387
9388         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9389         (ASM_CPU_POWER6_SPEC): Likewise.
9390         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9391         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9392         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9393
9394 2008-02-25  Richard Guenther  <rguenther@suse.de>
9395
9396         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9397         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9398         (lookup_decl_from_uid): Declare.
9399         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9400         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9401         (decl_for_uid_map): New global hashtable mapping DECL_UID
9402         to the decl tree.
9403         (init_ttree): Allocate it.
9404         (insert_decl_to_uid_decl_map): New helper function.
9405         (make_node_stat): Insert new decls into the map.
9406         (copy_node_stat): Likewise.
9407         (lookup_decl_from_uid): New function.
9408         (print_decl_for_uid_map_statistics): New helper.
9409         (dump_tree_statistics): Call it.
9410
9411         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9412         (referenced_var_iterator): Adjust.
9413         (FOR_EACH_REFERENCED_VAR): Adjust.
9414         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9415         (num_referenced_vars): Adjust.
9416         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9417         (first_referenced_var): Remove.
9418         (end_referenced_vars_p): Likewise.
9419         (next_referenced_var): Likewise.
9420         (referenced_var_iterator_set): New helper function.
9421         * tree-dfa.c (referenced_var_lookup): Adjust.
9422         (referenced_var_check_and_insert): Likewise.
9423         (remove_referenced_var): Likewise.
9424         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9425         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9426         (verify_call_clobbering): Likewise.
9427         (verify_memory_partitions): Likewise.
9428         (init_tree_ssa): Allocate bitmap instead of hashtable for
9429         referenced_vars.
9430         (delete_tree_ssa): Adjust.
9431         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9432         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9433         (compute_tag_properties): Likewise.
9434         (set_initial_properties): Likewise.
9435         (find_partition_for): Likewise.
9436         (update_reference_counts): Likewise.
9437         (dump_may_aliases_for): Likewise.
9438         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9439         (add_call_clobber_ops): Likewise.
9440         (add_call_read_ops): Likewise.
9441         (get_asm_expr_operands): Likewise.
9442         * tree-into-ssa.c (dump_decl_set): Likewise.
9443         (update_ssa): Likewise.
9444         * tree-sra.c (scan_function): Likewise.
9445         (decide_instantiations): Likewise.
9446         (scalarize_parms): Likewise.
9447         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9448         (dsa_named_for): Likewise.
9449         * tree-ssa-structalias.c (update_alias_info): Likewise.
9450         (merge_smts_into): Likewise.
9451
9452 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9453
9454         PR target/35258
9455         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9456         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9457         * alias.h (nonoverlapping_memrefs_p): Likewise.
9458
9459 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9460
9461         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9462         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9463         __emultls_get_address, __emultls_register_common,
9464         __floatundi?f, and _Unwind_GetIPInfo.
9465         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9466         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9467         (gen_regparm_prefix): Likewise.
9468         (i386_nlm_encode_section_info): Sync with
9469         config/i386/winnt.c:i386_pe_encode_section_info().
9470         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9471         i386_nlm_mangle_decl_assembler_name): New.
9472         (netware_override_options): New.
9473         * config/i386/netware.h (netware_override_options): Declare.
9474         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9475         (i386_nlm_mangle_decl_assembler_name): Declare.
9476         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9477
9478 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9479
9480         PR other/32948
9481         * c-decl.c (grokdeclarator): Remove unused local variables
9482         `typedef_type' and `type_as_written'.
9483         * bb-reorder.c
9484         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9485         unused local variable `has_hot_blocks'.
9486         (fix_crossing_conditional_branches): Remove unused local variable
9487         `prev_bb'.
9488         
9489 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9490
9491         PR middle-end/19984
9492         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9493         using DEF_C99_BUILTIN.
9494         (BUILT_IN_NANF): Ditto.
9495         (BUILT_IN_NANL): Ditto.
9496
9497 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9498             Revital Eres  <eres@il.ibm.com>
9499
9500         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9501         regarding the order of two dependent insns in the same row.
9502
9503 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9504
9505         * stor-layout.c (layout_decl): Do not bump the alignment of a
9506         bit-field to more than byte alignment if it is packed.
9507
9508 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9509
9510         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9511         e300c2 and e300c3.
9512
9513 2008-02-24  Diego Novillo  <dnovillo@google.com>
9514
9515         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9516
9517         PR 33738
9518         * tree-vrp.c (vrp_evaluate_conditional): With
9519         -Wtype-limits, emit a warning when comparing against a
9520         constant outside the natural range of OP0's type.
9521         * c.opt (Wtype-limits): Move ...
9522         * common.opt (Wtype-limits): ... here.
9523
9524 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9525
9526         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9527         * config/rs6000/e300c2c3.md: New file.
9528         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9529         e300c2 and e300c3.
9530         (rs6000_override_options): Add e300c2 and e300c3 cases to
9531         processor_target_table. Do not allow usage of Altivec or Spe
9532         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9533         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9534         * config/rs6000/rs6000.h (processor_type): Add
9535         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9536         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9537         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9538         and ppce300c3. Include e300c2c3.md.
9539
9540 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9541
9542         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9543         instead of TARGET_STRICT_ALIGN.
9544
9545 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9546
9547         * explow.c (memory_address): Assert that the generated address is
9548         valid.
9549
9550 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9551
9552         PR target/25477
9553         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9554         * config/darwin-ppc-ldouble-patch.def: New file.
9555         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9556         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9557         SUBTARGET_INIT_BUILTINS if defined.
9558         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9559         New functions.
9560
9561 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9562
9563         PR rtl-opt/33512
9564         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9565         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9566
9567 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9568
9569         PR pch/35027
9570         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9571         file" warning condtional on -Winvalid-PCH.
9572
9573 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9574
9575         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9576
9577 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9578
9579         PR target/22076
9580         PR target/34256 
9581         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9582         prevent reload from using MMX registers.
9583         (*mov<mode>_internal): Ditto.
9584         (*movv2sf_internal_rex64): Ditto.
9585         (*movv2sf_internal): Ditto.
9586
9587 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9588
9589         PR documentation/31569
9590         * doc/install.texi2html: Use makeinfo --no-number-sections.
9591
9592 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9593
9594         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9595         ensure that we can address an entire entity > 8 bytes.  Don't
9596         generate reg+reg addressing for such data.
9597
9598 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9599
9600         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9601         strings when optimizing for size, unless the target cares about
9602         alignment.
9603
9604 2008-02-22  Tom Tromey  <tromey@redhat.com>
9605
9606         * regclass.c (current_pass): Remove declaration.
9607
9608 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9609
9610         * config/avr/libgcc.S (__RAMPZ__): Define.
9611         (__do_copy_data): Add for devices with 128KB code memory.
9612
9613 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9614
9615         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9616         Use spe_abi.
9617         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9618
9619 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9620
9621         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9622         GENNONACR_REGS.
9623
9624 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9625
9626         PR c/19999
9627         * c-typeck.c (build_binary_op): Warn about floating point
9628         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9629
9630 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9631
9632         PR target/34526
9633         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9634         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9635         add vrsave.
9636         (rs6000_override_options): Set altivec_abi as default, not override,
9637         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9638         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9639         is used; use new member spe_abi.
9640         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9641         spe_abi and altivec_abi.
9642
9643 2008-02-22  Tomas Bily  <tbily@suse.cz>
9644
9645         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9646
9647 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9648
9649         PR bootstrap/35273
9650         * config.build (build_file_translate): Set to `CMD //c' only if
9651         it works.
9652         * Makefile.in (build_file_translate): Improve comment.
9653
9654 2008-02-21  Jan Hubicka  <jh@suse.cz>
9655
9656         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9657         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9658         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9659
9660 2008-02-21  Michael Matz  <matz@suse.de>
9661
9662         PR target/35264
9663         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9664
9665 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9666
9667         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9668         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9669         as insn constraint.
9670         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9671         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9672         SSE_VEC_FLOAT_MODE_P as insn constraint.
9673         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9674         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9675         sse4a_movntdf using MODEF mode iterator.
9676         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9677         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9678         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9679         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9680         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9681         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9682         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9683
9684 2008-02-21  Richard Guenther  <rguenther@suse.de>
9685
9686         * tree.def (PAREN_EXPR): New tree code.
9687         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9688         and PAREN_EXPR.
9689         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9690         * expr.c (expand_expr_real_1): Likewise.
9691         * tree-inline.c (estimate_num_insns_1): Likewise.
9692         * tree-complex.c (expand_complex_move): Likewise.
9693         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9694         as plain x.
9695
9696 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9697
9698         PR target/35225
9699         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9700
9701 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9702
9703         PR target/35190
9704         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9705
9706         * config/sh/sh.c (find_barrier): Don't go past
9707         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9708
9709 2008-02-20  DJ Delorie  <dj@redhat.com>
9710
9711         * config/h8300/h8300.md (insv): Force source operand to be a register.
9712
9713         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9714         as a jump, not as a plain insn.
9715         
9716 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9717
9718         * doc/invoke.texi (Warning Options): Add new option
9719         -Wframe-larger-than=.
9720         (-Wframe-larger-than): Document.
9721
9722         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9723         Add declarations for new option variables.
9724
9725         * final.c (final_start_function): Check the frame size
9726         before emission and issue a Wframe-larger-than warning.
9727
9728         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9729         Add definitions for new option variables.
9730         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9731
9732         * common.opt (Wframe-larger-than=): New option.
9733
9734 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9735
9736         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9737         (<sse>_div<mode>3): Ditto.
9738         (<sse>_vmdiv<mode>3): Ditto.
9739         (<sse>_vmsqrt<mode>2): Ditto.
9740         (*smax<mode>3): Ditto.
9741         (sse5_frcz<mode>2): Ditto.
9742         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9743         as insn constraint.
9744
9745 2008-02-20  Richard Guenther  <rguenther@suse.de>
9746
9747         PR middle-end/35265
9748         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9749         be happy with INTEGRAL_TYPE_P.
9750
9751 2008-02-20  Richard Guenther  <rguenther@suse.de>
9752
9753         * fold-const.c (split_tree): Associate floatig-point expressions
9754         if flag_associative_math is set.
9755
9756 2008-02-20  Richard Guenther  <rguenther@suse.de>
9757
9758         * tree.h (fold_real_zero_addition_p): Declare.
9759         * fold-const.c (fold_real_zero_addition_p): Export.
9760         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9761         floating-point operations with zero and one.
9762
9763 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9764
9765         * doc/install.texi: Correct references to CFLAGS, replacing them
9766         with BOOT_CFLAGS.  Document flags used during bootstrap for
9767         target libraries.
9768                                 
9769 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9770
9771         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9772         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9773         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9774         insn constraint.
9775         (smin<mode>3): Ditto from similar patterns.
9776         (smax<mode>3): Ditto.
9777         (*ieee_smin<mode>3): Ditto.
9778         (*ieee_smax<mode>3): Ditto.
9779         * config/i386/sse.md (sse): New mode attribute.
9780         (mov<mode>): Macroize expander from movv4sf and movv2df using
9781         SSEMODEF2P mode iterator.
9782         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9783         SSE_VEC_FLOAT_MODE_P as insn constraint.
9784         (storent<mode>): Ditto.
9785         (storent<mode>): Macroize expander from storentsf and storentdf using
9786         MODEF mode iterator.
9787         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9788         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9789         (abs<mode>2): Ditto from similar patterns.
9790         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9791         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9792         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9793         (<sse>_vmsqrt<mode>2): Ditto.
9794         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9795         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9796         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9797         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9798         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9799         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9800         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9801         insn constraint.
9802         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9803         iterator and SSE_FLOAT_MODE_P as insn constraint.
9804         (<sse>_ucomi): Ditto from similar patterns.
9805         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9806         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9807         SSE_VEC_FLOAT_MODE_P as insn constraint.
9808         (vcond<mode>): Ditto from similar patterns.
9809         (and<mode>3, *and<mode>3): Ditto.
9810         (<sse>_nand<mode>3): Ditto.
9811         (ior<mode>3, *ior<mode>3): Ditto.
9812         (xor<mode>3, *xor<mode>3): Ditto.
9813         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9814         iterator and SSE_FLOAT_MODE_P as insn constraint.
9815         (*nand<mode>3): Ditto from similar patterns.
9816         (*ior<mode>3): Ditto.
9817         (*xor<mode>3): Ditto.
9818
9819 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9820
9821         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9822         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9823         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9824
9825 2008-02-19  Jan Hubicka  <jh@suse.cz>
9826
9827         * predict.c (tree_bb_level_predictions): Remove variable next
9828         mistakely introduced by previous commit.
9829
9830 2008-02-19  Jan Hubicka  <jh@suse.cz>
9831
9832         * predict.c (predict_paths_leading_to): Rewrite.
9833         (predict_paths_for_bb): New.
9834         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9835
9836 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9837
9838         PR bootstrap/35218
9839         * Makefile.in (build_file_translate): New.
9840         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9841         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9842         * configure.ac (build_file_translate): Substitute it.
9843         * configure: Regenerate.
9844
9845 2008-02-19  Jan Hubicka  <jh@suse.cz>
9846
9847         PR rtl-optimization/34408
9848         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9849         invalid sharing.
9850
9851 2008-02-19  Jan Hubicka  <jh@suse.cz>
9852
9853         PR middle-end/28779
9854         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9855         call_expr.
9856
9857 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9858
9859         PR Ada/35186
9860         * config/i386/i386-modes.def: Revert the last DI alignment
9861         change until Ada people can look into it.
9862
9863 2008-02-19  Nick Clifton  <nickc@redhat.com>
9864
9865         * opts.c (print_specific_help): Fix typo in --help text.
9866
9867 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9868
9869         PR target/35239
9870         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9871         32-bit inline asm without asm alternatives for host GCC < 3.0.
9872
9873 2008-02-19  Richard Guenther  <rguenther@suse.de>
9874
9875         PR tree-optimization/34989
9876         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9877         Allow propagation to INDIRECT_REF if we can simplify only.
9878
9879 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9880
9881         * c-common.c (warn_for_collisions_1): Use appropriate option when
9882         warning.
9883
9884 2008-02-19  Nick Clifton  <nickc@redhat.com>
9885
9886         PR other/31349
9887         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9888         (handle_options): Fix indentation.
9889         (print_filtered_help): If no language-specific options were
9890         displayed tell the user how to list all the options supported by
9891         the language's front-end.
9892         (print_specific_help): Fix indentation and remove duplicate line.
9893         (common_handle_option): Handle the -v option.
9894         For --help enable the display of undocumented options if the -v
9895         switch has been included on the command line.
9896         For --help= check for overlaps in the arguments between the option
9897         classes and the language names and issue a warning when they
9898         cannot be disambiguated.
9899         * c.opt (v): Pass on to the common option handler.
9900
9901 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9902
9903         * modulo-sched.c (sms_schedule): Change dump message when
9904         create_ddg function fails.
9905         (try_scheduling_node_in_cycle): Rename row to cycle.
9906         (print_partial_schedule): Rename CYCLE to ROW.
9907
9908 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9909             Zdenek Dvorak  <ook@ucw.cz>
9910
9911         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9912
9913 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9914
9915         PR target/33555
9916         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9917         (*x86_movdicc_0_m1_se): Ditto.
9918
9919 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9920
9921         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9922         (CMPtype): Define as __gcc_CMPtype.
9923         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9924         (CMPtype): Define as __gcc_CMPtype.
9925
9926 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9927
9928         Support valgrind 3.3 for --enable-checking=valgrind.
9929         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9930         here.
9931         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9932         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9933         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9934         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9935         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9936         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9937         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9938         respectively.
9939         * ggc-zone.c: Similar.
9940         * ggc-page.c: Similar.
9941
9942 2008-02-19  Paul Brook  <paul@codesourcery.com>
9943
9944         PR target/35071
9945         * config/arm/ieee754-df.S: Fix do_it typo.
9946         * config/arm/ieee754-sf.S: Fix do_it typo.
9947
9948 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9949
9950         PR target/35189
9951         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9952         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9953         (OPTION_MASK_ISA_SSE_SET): Likewise.
9954         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9955         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9956         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9957         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9958         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9959         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9960         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9961         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9962         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9963         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9964         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9965         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9966         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9967         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9968         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9969         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9970         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9971         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9972         (OPTION_MASK_ISA_SSE4): Removed.
9973         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9974         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9975         (override_options): Don't turn on implied SSE/MMX bits in
9976         ix86_isa_flags.
9977
9978 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9979
9980         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9981         32bit host.
9982
9983 2008-02-18  Joey Ye  <joey.ye@intel.com>
9984
9985         PR middle-end/34921
9986         * tree-nested.c (insert_field_into_struct): Set type alignment
9987         to field alignment if the former is less than the latter.
9988
9989 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9990
9991         * BASE-VER: Set to 4.4.0.
9992
9993 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9994
9995         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9996         * doc/cfg.texi: Likewise.
9997         * doc/extend.texi: Likewise.
9998         * doc/gty.texi: Likewise.
9999         * doc/invoke.texi: Likewise.
10000         * doc/loop.texi: Likewise.
10001         * doc/md.texi: Likewise.
10002         * doc/passes.texi: Likewise.
10003         * doc/rtl.texi: Likewise.
10004         * doc/sourcebuild.texi: Likewise.
10005         * doc/tm.texi: Likewise.
10006         * doc/tree-ssa.texi: Likewise.
10007
10008 2008-02-17  Richard Guenther  <rguenther@suse.de>
10009
10010         PR middle-end/35227
10011         * tree-complex.c (init_parameter_lattice_values): Handle parameters
10012         without default definition.
10013
10014 2008-02-17  Richard Guenther  <rguenther@suse.de>
10015
10016         PR tree-optimization/35231
10017         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10018         if A | B != 1.
10019
10020 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
10021
10022         Revert:
10023         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
10024         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10025         libgcc_cmp_return mode.
10026
10027 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10028
10029         PR c/28368
10030         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10031
10032 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
10033
10034         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10035         multilibs.
10036
10037 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10038
10039         * doc/c-tree.texi: Use `@.' where appropriate.
10040         * doc/extend.texi: Likewise.
10041         * doc/install.texi: Likewise.
10042         * doc/invoke.texi: Likewise.
10043         * doc/loop.texi: Likewise.
10044         * doc/makefile.texi: Likewise.
10045         * doc/md.texi: Likewise.
10046         * doc/passes.texi: Likewise.
10047         * doc/standards.texi: Likewise.
10048         * doc/tm.texi: Likewise.
10049
10050 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10051
10052         PR middle-end/35196
10053         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10054         in entry_bb.
10055         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10056         rather than in entry_bb.
10057
10058 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10059
10060         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10061         libgcc_cmp_return mode.
10062
10063 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10064
10065         PR middle-end/35130
10066         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10067         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10068
10069 2008-02-15  Richard Guenther  <rguenther@suse.de>
10070             Zdenek Dvorak  <ook@ucw.cz>
10071
10072         PR tree-optimization/35164
10073         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10074         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10075         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10076         Only propagate addresses which do not have abnormal SSA_NAMEs
10077         in their operands.
10078
10079 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10080
10081         PR target/35088
10082         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10083
10084 2008-02-15  Jan Hubicka  <jh@suse.cz>
10085
10086         PR middle-end/35149
10087         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10088
10089 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10090
10091         PR middle-end/34621
10092         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10093         when calculating alignment_pad.
10094
10095 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10096
10097         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10098         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10099         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10100         and STACK_BOUNDARY define.
10101
10102 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10103
10104         PR preprocessor/35061
10105         * c-pragma.c (handle_pragma_pop_macro): Check that
10106         pushed_macro_table has been allocated.
10107
10108 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10109
10110         PR middle-end/35136
10111         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10112         (force_gimple_operand): Likewise.
10113         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10114         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10115         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10116         (find_interesting_uses_address): Check addressability and alignment
10117         of the base expression only after substituting bases of IVs into it.
10118
10119 2008-02-14  Michael Matz  <matz@suse.de>
10120
10121         PR target/34930
10122         * function.c (instantiate_virtual_regs_in_insn): Reload address
10123         before falling back to reloading the whole operand.
10124
10125 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10126
10127         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10128         before the first section switch note.
10129
10130 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10131
10132         * doc/bugreport.texi: Update copyright years.
10133         * doc/c-tree.texi: Likewise.
10134         * doc/cfg.texi: Likewise.
10135         * doc/cpp.texi: Likewise.
10136         * doc/cppinternals.texi: Likewise.
10137         * doc/fragments.texi: Likewise.
10138         * doc/frontends.texi: Likewise.
10139         * doc/gcc.texi: Likewise.
10140         * doc/gty.texi: Likewise.
10141         * doc/hostconfig.texi: Likewise.
10142         * doc/implement-c.texi: Likewise.
10143         * doc/libgcc.texi: Likewise.
10144         * doc/loop.texi: Likewise.
10145         * doc/makefile.texi: Likewise.
10146         * doc/options.texi: Likewise.
10147         * doc/passes.texi: Likewise.
10148         * doc/rtl.texi: Likewise.
10149         * doc/sourcebuild.texi: Likewise.
10150         * doc/standards.texi: Likewise.
10151         * doc/tree-ssa.texi: Likewise.
10152         * doc/trouble.texi: Likewise.
10153
10154         * doc/extend.texi: Use @: or add comma where appropriate.
10155         * doc/invoke.texi: Likewise.
10156         * doc/tm.texi: Likewise.
10157
10158 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10159
10160         PR target/34393
10161         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10162         to a reg.
10163
10164 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10165
10166         * doc/md.texi (clz, ctz): Add reference.
10167         * doc/rtl.texi (clz, ctz): Likewise.
10168
10169 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10170
10171         PR other/35148
10172         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10173         srcdir.
10174
10175 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10176
10177         * config/s390/s390.c (struct constant_pool): New field
10178         emit_pool_after added.
10179         (s390_mainpool_start): Set the emit_pool_after flag according
10180         to the section switch notes.
10181         (s390_mainpool_finish): Consider emit_pool_after when emitting
10182         the literal pool at the end of the function.
10183         (s390_chunkify_start): Force literal pool splits at section
10184         switch notes.
10185
10186 2008-02-13  Michael Matz  <matz@suse.de>
10187
10188         PR debug/35065
10189         * var-tracking.c (clobber_variable_part): Correctly traverse the
10190         list.
10191
10192 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10193
10194         PR 29673
10195         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10196         Add -fdump-ipa-inline.
10197         * tree-dump.c (dump_files): Remove tree-inlined dump.
10198         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10199         
10200 2008-02-12  Richard Guenther  <rguenther@suse.de>
10201
10202         PR tree-optimization/35171
10203         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10204         default defs.
10205
10206 2008-02-12  Richard Guenther  <rguenther@suse.de>
10207
10208         PR middle-end/35163
10209         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10210         value-preserving mode.  Disallow final truncation.
10211
10212 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10213
10214         PR middle-end/35136
10215         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10216         code from here to...
10217         (force_gimple_operand): ...here.
10218
10219 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10220
10221         PR c++/35144
10222         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10223         non-compatible pointers.
10224         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10225         different FIELD_DECLs, try harder by comparing field offsets, sizes
10226         and types.
10227
10228         PR inline-asm/35160
10229         * function.c (match_asm_constraints_1): Don't replace the same input
10230         multiple times.
10231
10232 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10233
10234         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10235         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10236         (expand_epilogue): Restore RAMPZ register.
10237         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10238
10239 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10240
10241         * config/i386/cygwin.asm: (__alloca): Correct calling
10242         convention and alignment.
10243         (__chkstk): Force 8 byte stack alignment.
10244
10245 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10246             Richard Guenther  <rguenther@suse.de>
10247
10248         PR tree-optimization/33992
10249         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10250         the zero we compare against.
10251
10252 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10253
10254         PR libfortran/35063
10255         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10256         to CloseHandle after unlocking to prevent accumulation of handle
10257         count.
10258
10259 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10260
10261         PR middle_end/34150
10262         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10263         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10264         and update LABEL_NUSES during and after reload.
10265
10266 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10267
10268         PR middle-end/34627
10269         * combine.c (simplify_if_then_else): Make sure the comparison is
10270         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10271
10272 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10273
10274         PR bootstrap/35051
10275         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10276         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10277         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10278         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10279         * tree.h (get_type_static_bounds): Likewise.
10280
10281 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10282
10283         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10284         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10285         Make -Wfoo language annotations match what the compiler outputs.
10286
10287 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10288
10289         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10290         intrinsics spu_convts, spu_convtu, spu_convtf.
10291
10292 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10293
10294         * doc/extend.texi (Function Attributes) <noinline>: Mention
10295         asm ("") as method to keep calls.
10296
10297 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10298
10299         PR other/32754
10300         * doc/options.texi (Options): Replace references to opts.sh with
10301         optc-gen.awk.
10302         * opts-common.c: Likewise.
10303         * optc-gen.awk: Likewise.
10304         
10305 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10306
10307         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10308
10309 2008-02-07  Richard Henderson  <rth@redhat.com>
10310
10311         PR rtl-opt/33410
10312         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10313         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10314         funny mode.
10315
10316 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10317
10318         PR tree-optimization/35085
10319         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10320         for operand entry oe2 in addition to operand entry oe3 in order to
10321         expose more opportunities for vectorizer sum reduction.
10322
10323 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10324
10325         PR other/35107
10326         * Makefile.in (LIBS): Remove $(GMPLIBS).
10327         (cc1-dummy, cc1): Add $(GMPLIBS).
10328
10329 2008-02-06  Jan Hubicka  <jh@suse.cz>
10330
10331         PR target/23322
10332         * i386.md (moddf_integer): Do not produce partial memory stalls for
10333         targets where it hurts.
10334
10335 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10336
10337         PR target/35083
10338         * optabs.c (expand_float): Do not check for decimal modes when
10339         expanding unsigned integer through signed conversion.
10340
10341 2008-02-06  Nick Clifton  <nickc@redhat.com>
10342
10343         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10344         inside the clobber with a match_operand and duplicated operand
10345         number in the constraint.
10346         (ineqbranchsi): Delete redundant comment.
10347
10348 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10349
10350         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10351         builtin_define ("__USE_INIT_FINI__").
10352         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10353         -msx multilibs.
10354         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10355
10356 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10357
10358         PR documentation/30330
10359         * doc/invoke.texi (C++ Dialect Options)
10360         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10361         For each warning option -Wfoo that allows -Wno-foo, ensure both
10362         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10363         entry of -Wswitch-default, index -Wnormalized= including the
10364         `=', and -Wlarger-than-@var{len} including @var{len}.
10365
10366 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10367
10368         * config/i386/i386.md (floatunssisf2): Use
10369         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10370         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10371         Macroize expander using MODEF mode iterator.
10372
10373 2008-02-05  Diego Novillo  <dnovillo@google.com>
10374
10375         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10376
10377         PR 33738
10378         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10379
10380 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10381
10382         PR other/35070
10383         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10384
10385 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10386
10387         PR target/35084
10388         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10389         to indicate if a message should be generated.
10390         (init_cumulative_args): Updated.
10391         (function_value_32): Likewise.
10392
10393 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10394
10395         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10396
10397 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10398
10399         PR target/35083
10400         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10401         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10402
10403 2008-02-04  Diego Novillo  <dnovillo@google.com>
10404
10405         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10406
10407         PR 33738
10408         * tree-vrp.c (vrp_evaluate_conditional): With
10409         -Wtype-limits, emit a warning when comparing against a
10410         constant outside the natural range of OP0's type.
10411
10412 2008-02-04  Richard Guenther  <rguenther@suse.de>
10413
10414         PR middle-end/33631
10415         * expr.c (count_type_elements): Give for unions instead of
10416         guessing.
10417
10418 2008-02-04  Richard Guenther  <rguenther@suse.de>
10419
10420         PR middle-end/35043
10421         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10422         to TYPE_DOMAINs base type instead of using bitsizetype here.
10423
10424 2008-02-03  Jason Merrill  <jason@redhat.com>
10425
10426         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10427
10428 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10429
10430         PR other/29972
10431         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10432         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10433         (RS/6000 and PowerPC Options): Fix typos and markup.
10434         * doc/passes.texi (Tree-SSA passes): Likewise.
10435
10436 2008-02-02  Michael Matz  <matz@suse.de>
10437
10438         PR target/35045
10439         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10440         from record_last_reg_set_info.
10441         (record_last_reg_set_info): Take an RTX argument, iterate over all
10442         constituent hardregs.
10443         (record_last_set_info, record_opr_changes): Change calls to
10444         new signature or to record_last_reg_set_info_regno.
10445
10446 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10447
10448         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10449
10450 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10451
10452         PR rtl-optimization/34773
10453         * reg-notes.def (EQUAL): Mention significance of combination of
10454         REG_EQUAL and REG_RETVAL.
10455         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10456         insn that has a REG_RETVAL.
10457
10458 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10459
10460         PR bootstrap/33781
10461         * configure.ac (--enable-fixed-point): Disable unless explicitly
10462         requested on IRIX.
10463         * configure: Regenerate.
10464
10465 2008-02-01  Richard Guenther  <rguenther@suse.de>
10466
10467         PR other/35042
10468         * invoke.texi (-finline-limit): Remove no longer true parts
10469         of the documentation.  Note that there is no default value.
10470
10471 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10472             Mark Mitchell  <mark@codesourcery.com>
10473             Ben Elliston  <bje@au.ibm.com>
10474
10475         PR c/29326
10476         * doc/extend.texi (Other Builtins): Document.
10477
10478 2008-01-31  Tom Browder <tom.browder@gmail.com>
10479
10480         * doc/c-tree.texi (Types): Fix grammar.
10481         (Expression trees): Ditto.
10482         * doc/passes.texi (Tree-SSA passes): Ditto.
10483         
10484         * doc/configterms.texi (Configure Terms): Fix typo.
10485         * doc/cpp.texi (Common Predefined Macros): Ditto.
10486         * doc/md.texi (Machine Constraints): Ditto.
10487         
10488         * doc/makefile.texi (Makefile): Add comma.
10489
10490 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10491             Gerald Pfeifer  <gerald@pfeifer.com>
10492         
10493         * doc/sourcebuild.texi (Front End): Remove references to CVS
10494         and CVSROOT/modules.
10495         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10496         (Back End): Remove reference to CVS.
10497
10498 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10499
10500         PR target/34900
10501         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10502         comment from...
10503         (mips16_gp_pseudo_reg): ...here.
10504         * config/mips/mips.md (load_const_gp): Replace with...
10505         (load_const_gp_<mode>): ...this :P-based insn.
10506
10507 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10508
10509         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10510         options. Minor fixes.
10511         (-std): Move reference to standards closer to where language
10512         standards are first mentioned.
10513         
10514 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10515
10516         PR rtl-optimization/34995
10517         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10518         parameter and return a bool.  If the rtx parameter is nonnull,
10519         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10520         (find_reloads): Update call accordingly.  Pass the new operand
10521         if it needed no address reloads, otherwise pass null.
10522
10523 2008-01-30  Richard Henderson  <rth@redhat.com>
10524
10525         PR c/34993
10526         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10527         for unbounded arrays.
10528
10529 2008-01-30  Silvius Rus  <rus@google.com>
10530
10531         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10532
10533 2008-01-30  Jan Hubicka  <jh@suse.cz>
10534
10535         PR target/34982
10536         * i386.c (init_cumulative_args): Use real function declaration when
10537         calling locally.
10538
10539 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10540
10541         PR rtl-optimization/34998
10542         * global.c (build_insn_chain): Treat non-subreg_lowpart
10543         SUBREGs of pseudos as clobbering all the words covered by the
10544         SUBREG, not just all the bytes.
10545         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10546         original df_ref rather than an extract parameter.
10547         (global_conflicts): Update call accordingly.
10548
10549 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10550
10551         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10552         the overflow check to make it easier to read.
10553         (__fixtfdi): Change the type of the ll member in union
10554         long_double to UDItype_x.
10555
10556 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10557
10558         PR middle-end/34969
10559         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10560         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10561         * tree-inline.c (fold_marked_statements): Call
10562         cgraph_update_edges_for_call_stmt if folding a call statement.
10563         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10564         debug_generic_stmt calls, reset it back afterwards.
10565
10566         PR c/35017
10567         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10568         static decls.
10569         * c-typeck.c (build_external_ref): Don't pedwarn about
10570         static vars in current function's scope.
10571
10572 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10573
10574         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10575
10576 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10577
10578         PR c/35002
10579         * ipa-struct-reorg.c: Fix spelling.
10580         * params.def: Ditto.
10581
10582 2008-01-29  Richard Guenther  <rguenther@suse.de>
10583
10584         PR middle-end/35006
10585         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10586         field.
10587         * tree-inline.c (remap_type): Increment remapping_type_depth
10588         around remapping types.
10589         (copy_body_r): Only add referenced variables if they are referenced
10590         from code, not types.
10591
10592 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10593
10594         PR c++/34055
10595         PR c++/34103
10596         PR c++/34219
10597         PR c++/34606
10598         PR c++/34753
10599         PR c++/34754
10600         PR c++/34755
10601         PR c++/34919
10602         PR c++/34961
10603         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10604         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10605
10606 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10607
10608         PR target/34412
10609         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10610         pointer for tiny stack.
10611
10612 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10613
10614         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10615
10616 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10617
10618         * config/vx-common.h: Fix typo in comment.
10619
10620 2008-01-28  Ian Lance Taylor  <iant@google.com>
10621
10622         PR c++/34862
10623         PR c++/33407
10624         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10625         coalesce pointers if they have different DECL_NO_TBAA_P values.
10626         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10627         between variables with different DECL_NO_TBAA_P values.
10628
10629 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10630
10631         PR 31535
10632         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10633         are not legitimate small data references on SPE targets.
10634
10635 2008-01-28  David Daney  <ddaney@avtrex.com>
10636
10637         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10638
10639 2008-01-28  David Daney  <ddaney@avtrex.com>
10640
10641         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10642
10643 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10644
10645         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10646         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10647         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10648         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10649         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10650         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10651         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10652         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10653
10654 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10655
10656         * basic-block.h (condjump_equiv_p): Fix comment.
10657
10658 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10659
10660         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10661         print_generic_stmt_indented): Fix comment.
10662
10663 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10664
10665         * configure.ac (__stack_chk_fail): Add detecion for availability
10666         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10667         * configure: Regenerate.
10668
10669 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10670
10671         PR middle-end/34688
10672         * final.c (output_addr_const): Handle TRUNCATE.
10673
10674 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10675
10676         PR target/34711
10677         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10678         (zero_cost, infinite_cost): New constants.
10679         (struct cost_pair): Change type of cost to comp_cost.
10680         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10681         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10682         New functions.
10683         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10684         split_address_cost, ptr_difference_cost, difference_cost,
10685         get_computation_cost_at, get_computation_cost,
10686         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10687         determine_use_iv_cost_condition, determine_use_iv_costs,
10688         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10689         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10690         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10691         Change type of cost to comp_cost.
10692         (determine_iv_cost): Increase cost of non-original ivs, instead
10693         of decreasing the cost of original ones.
10694         (get_address_cost): Indicate the complexity of the addressing mode 
10695         in comp_cost.
10696         (try_add_cand_for): Prefer using ivs not specific to some object.
10697         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10698
10699 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10700             Janis Johnson  <janis187@us.ibm.com>
10701
10702         PR target/34814
10703         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10704         (TARGET_INSTANTIATE_DECLS): Likewise.
10705         * target.h (expand_to_rtl_hook): New target hook.
10706         (instantiate_decls): Likewise.
10707         * function.c (instantiate_decl): Make non-static.  Rename to...
10708         (instantiate_decl_rtl): ... this.
10709         (instantiate_expr): Use instantiate_decl_rtl.
10710         (instantiate_decls_1): Likewise.
10711         (instantiate_decls): Likewise.
10712         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10713         * function.h (instantiate_decl_rtl): Add prototype.
10714         * cfgexpand.c (target.h): New include.
10715         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10716         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10717         (TARGET_INSTANTIATE_DECLS): Likewise.
10718         (TARGET_INITIALIZER): New target hooks added.
10719         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10720         New prototype.
10721         * config/rs6000/rs6000.c (tree-flow.h): New include.
10722         (machine_function): Add sdmode_stack_slot field.
10723         (rs6000_alloc_sdmode_stack_slot): New function.
10724         (rs6000_instantiate_decls): Likewise.
10725         (rs6000_secondary_memory_needed_rtx): Likewise.
10726         (rs6000_check_sdmode): Likewise.
10727         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10728         (TARGET_INSTANTIATE_DECLS): Likewise.
10729         (rs6000_hard_regno_mode_ok): Allow SDmode.
10730         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10731         (rs6000_emit_move): Handle SDmode.
10732         (function_arg_advance): Likewise.
10733         (function_arg): Likewise.
10734         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10735         SDmode var args for 32-bit compiles.
10736         (rs6000_secondary_reload_class): Handle SDmode.
10737         (rs6000_output_function_epilogue): Likewise.
10738         (rs6000_function_value): Simplify if statement.
10739         (rs6000_libcall_value): Likewise.
10740         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10741         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10742         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10743         (movsd_hardfloat): New define_insn.
10744         (movsd_softfloat): Likewise.
10745         (movsd_store): Likewise.
10746         (movsd_load): Likewise.
10747         (extendsddd2): Likewise.
10748         (extendsdtd2): Likewise.
10749         (truncddsd2): Likewise.
10750         (movdd_hardfloat64): Fixup comment.
10751         (UNSPEC_MOVSD_LOAD): New constant.
10752         (UNSPEC_MOVSD_STORE): Likewise.
10753
10754 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10755
10756         PR c++/34965
10757         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10758         TRUTH_XOR_EXPR.
10759         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10760         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10761         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10762         and TRUTH_XOR_EXPR.
10763
10764 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10765
10766         PR target/34794
10767         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10768         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10769         __LONGDOUBLE128 too.
10770         * config/rs6000/aix61.h: New file.
10771
10772 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10773
10774         PR rtl-optimization/34959
10775         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10776         popcount and parity rtxes the same mode as their operand.
10777         Truncate or extend the result to the return value's mode
10778         if necessary.
10779
10780 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10781
10782         PR target/34981
10783         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10784         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10785         to GOT_VERSION_REGNUM.
10786         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10787         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10788         * config/mips/mips.c (mips_emit_call_insn): New function.
10789         (mips_call_tls_get_addr): Call mips_expand_call directly.
10790         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10791         emit_call_insn.
10792         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10793         (mips_expand_call): Update the call to mips16_build_call_stub
10794         accordingly and a remove redundant condition.  Assert that MIPS16
10795         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10796         the call insn.
10797         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10798         TARGET_USE_GOT.
10799         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10800         (mips_avoid_hazard): Remove hazard_set handling.
10801         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10802         (UNSPEC_RESTORE_GP): ...this.
10803         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10804         (FAKE_CALL_REGNO): Rename to...
10805         (GOT_VERSION_REGNUM): ...this.
10806         (type): Add "ghost" value.  Add an associated insn reservation.
10807         (hazard_set): Remove.
10808         (exception_receiver): Rename to...
10809         (restore_gp): ...this and update the unspec identifier accordingly.
10810         (exception_receiver, nonlocal_got_receiver): New expanders.
10811         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10812         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10813         (set_got_version, update_got_version): New patterns.
10814
10815 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10816
10817         PR target/34970
10818         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10819
10820 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10821
10822         PR other/31955
10823         * doc/install.texi2html: Generate gcc-vers.texi.
10824
10825 2008-01-25  DJ Delorie  <dj@redhat.com>
10826
10827         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10828
10829 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10830
10831         * config/c4x: Remove directory.
10832         * config.gcc (crx-*, mt-*): Mark obsolete.
10833         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10834         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10835         sh-*-rtemscoff*): Remove cases.
10836         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10837         * real.c (encode_c4x_single, decode_c4x_single,
10838         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10839         c4x_extended_format): Remove.
10840         * real.h (c4x_single_format, c4x_extended_format): Remove.
10841         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10842         on C4x.
10843         (Pragmas): Remove comment about c4x pragmas.
10844         * doc/install.texi (c4x): Remove target-specific instructions.
10845         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10846         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10847         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10848         refer to C4x source files as examples.
10849         (C4X_FLOAT_FORMAT): Remove documentation.
10850
10851 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10852
10853         * config/bfin/bfin.c (override_options): Reorder tests so that
10854         flag_pic gets enabled for -msep-data.
10855
10856 2008-01-25  Richard Guenther  <rguenther@suse.de>
10857
10858         PR middle-end/32244
10859         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10860         to its bitfield precision if required.
10861
10862 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10863
10864         PR middle-end/33880
10865         * tree-nested.c (walk_omp_for): New function.
10866         (convert_nonlocal_reference, convert_local_reference): Call
10867         walk_omp_for on OMP_FOR.
10868         (convert_call_expr): Call walk_body on OMP_FOR's
10869         OMP_FOR_PRE_INIT_BODY.
10870
10871 2008-01-25  Richard Guenther  <rguenther@suse.de>
10872
10873         PR tree-optimization/34966
10874         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10875         default defs and PHI_NODEs we have to insert after the
10876         defining statement.
10877
10878 2008-01-24  Nick Clifton  <nickc@redhat.com>
10879
10880         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10881         Provide a default definition.
10882         (LIBGCC2_UNITS_PER_WORD): Likewise.
10883
10884         * config/stormy16/stormy16.c: Include df.h for the prototype
10885         for df_regs_ever_live_p.
10886         (xstormy16_expand_builtin_va_start): Convert the stack offset
10887         into a component_ref and then use POINTER_PLUS_EXPR to add it
10888         to the incoming_virtual_args_rtx.
10889         (xstormy16_gimplify_va_arg_expr): Rename to
10890         xstormy16_gimplify_va_arg_expr.
10891         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10892         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10893         xstormy16_gimplify_va_arg_expr.
10894         Fix up some formatting issues.
10895
10896         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10897         Move to predicates.md.
10898         (xs_hi_general_operand): Likewise.
10899         (xs_hi_nonmemory_operand): Likewise.
10900         * config/stormy16/predicates.md:
10901         (xstormy16_carry_plus_operand): New predicate.
10902         (xs_hi_general_operand): New predicate.
10903         (xs_hi_nonmemory_operand): New predicate.
10904         * config/stormy16/stormy16-protos.h:
10905         (xstormy16_carry_plus_operand): Delete prototype.
10906         (xs_hi_general_operand): Likewise.
10907         (xs_hi_nonmemory_operand): Likewise.
10908
10909         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10910         modifiers as they are no longer needed and they can trigger
10911         reload spill failures.
10912
10913         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10914         with a match_operand in order to help reload.
10915
10916         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10917         constraint with 'e' for the 8th alternative as this version of
10918         the mov.w instruction only accepts the lower 8 registers.
10919
10920 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10921
10922         PR target/34856
10923         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10924         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10925         vector elements.
10926
10927 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10928
10929         PR middle-end/33333
10930         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10931
10932 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10933
10934         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10935         New functions.
10936         (remove_structure): Update allocations list before removing structure.
10937         
10938 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10939
10940         * ipa-struct-reorg.c (is_safe_cond_expr, 
10941         create_new_stmts_for_cond_expr): Use integer_zerop function,
10942         that recognize not only zero-pointer, but zero-integer too.
10943
10944 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10945
10946         PR other/22232
10947         * fixproto: Escape "." in sed expression that strips leading "./".
10948
10949 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10950
10951         PR driver/34904
10952         * gcc.c (SWITCH_OK): Removed.
10953         (SWITCH_LIVE): Changed to bit.
10954         (SWITCH_FALSE): Likewise.
10955         (SWITCH_IGNORE): Likewise.
10956         (switchstr): Change live_cond to unsigned int.
10957         (process_command): Replace SWITCH_OK with 0.
10958         (do_self_spec): Likewise.
10959         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10960         (give_switch): Likewise.
10961         (used_arg): Likewise.
10962         (do_spec_1): Set the SWITCH_IGNORE bit.
10963         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10964         bits.  Set the SWITCH_LIVE bit.
10965
10966 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10967
10968         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10969
10970 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10971
10972         PR tree-optimization/34472
10973         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10974         parameter to a "bool *" and set *DATA to false if there is
10975         an unsafe access.  Do not delete the structure here.
10976         (check_cond_exprs): Delete it here instead.
10977         (check_cond_exprs, exclude_cold_structs): Do not increase
10978         I when removing a structure.
10979
10980 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10981
10982         PR target/34856
10983         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10984         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10985
10986 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10987
10988         PR middle-end/34934
10989         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10990         a fixed vector for stack.
10991
10992 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10993
10994         PR c++/25701
10995         * doc/gcc.texi (Software development): Add a direntry for g++.
10996         
10997 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10998
10999         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11000         stale and straggling -fforce-addr comments above.
11001
11002         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11003         define.
11004         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11005         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11006
11007 2008-01-23  Michael Matz  <matz@suse.de>
11008
11009         PR debug/34895
11010         * dwarf2out.c (force_type_die): Use modified_type_die instead of
11011         gen_type_die.
11012
11013 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
11014
11015         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11016         malloc result type.
11017
11018 2008-01-23 Anatoly Sokolov <aesok@post.ru>
11019
11020         * config/avr/avr.c (avr_current_arch): New variable.
11021         (avr_arch_types): Add 'avr31' and 'avr51' entries.
11022         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11023         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11024         (avr_override_options): Init 'avr_current_arch'. 
11025         (base_arch_s): Move from here...
11026         * config/avr/avr.h (base_arch_s): ... here. Add new members 
11027         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
11028         'mega' to 'have_jmp_call'.
11029         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
11030         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
11031         macros.
11032         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
11033         architectures.
11034         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
11035         MULTILIB_MATCHES): (Ditto.).
11036
11037 2008-01-23  Richard Guenther  <rguenther@suse.de>
11038
11039         PR middle-end/31529
11040         * cgraphunit.c (cgraph_reset_node): Always mark the node
11041         not reachable if it is not queued already.
11042
11043 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11044
11045         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11046         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11047         (cputype_selected): New static variable.
11048         (bfin_handle_option): Set it if -mcpu is used.
11049         (override_option): Select default set of workarounds if no cpu type
11050         selected on the command line.
11051         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11052
11053         From  Michael Frysinger  <michael.frysinger@analog.com>
11054         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11055         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11056
11057         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11058         for bf547, bf523, bf524, and bf526.
11059         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11060         bf526.
11061         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11062         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11063         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11064         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11065         * doc/invoke.texi (Blackfin Options): Document that
11066         -mcpu now accept bf547, bf523, bf524, and bf526.
11067
11068 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11069
11070         PR rtl-optimization/34628
11071         * combine.c (try_combine): Stop and undo after the first combination
11072         if an autoincrement side-effect on the first insn has effectively
11073         been lost.
11074
11075 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11076
11077         PR target/34529
11078         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11079         Offset addresses are not valid for Altivec or paired float modes.
11080
11081 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11082
11083         PR c++/34607
11084         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11085         if DECL_INITIAL (decl) is error_mark_node.
11086
11087         PR c++/34914
11088         * c-common.c (handle_vector_size_attribute): Only allow
11089         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11090         the same way as pointer, array etc. types.
11091         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11092
11093         PR c++/34917
11094         * tree.c (build_type_attribute_qual_variant): Call
11095         build_qualified_type if attributes are equal, but quals are not.
11096
11097 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11098
11099         PR 32102
11100         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11101         * flags.h (warn_strict_aliasing): Remove.
11102         (warn_strict_overflow): Remove.
11103         * opts.c (warn_strict_aliasing): Remove.
11104         (warn_strict_overflow): Remove.
11105         * c-opts.c (c_common_handle_option): -Wall only sets
11106         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11107         (c_common_post_options): Give default values to -Wstrict-aliasing
11108         and -Wstrict-overflow if they are uninitialized.
11109         * common.opt (Wstrict-aliasing): Specify Var and Init.
11110         (Wstrict-overflow): Likewise.
11111
11112 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11113
11114         PR rtl-optimization/26854
11115         PR rtl-optimization/34400
11116         PR rtl-optimization/34884
11117         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11118         DF_RD->gen.
11119         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11120         (df_rd_bb_info.expanded_lr_out): Deleted
11121         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11122         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11123         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11124         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11125         Removed code to allocate, initialize or free expanded_lr_out.
11126         (df_rd_bb_local_compute_process_def): Restructured to make more
11127         understandable.
11128         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11129         sets if the sets are being trimmed.
11130
11131 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11132
11133         PR bootstrap/32287
11134         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11135         (as_vers): Likewise.
11136         * configure: Regenerated.
11137
11138 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11139
11140         PR middle-end/33092
11141         * tree-pass.h (pass_build_alias): New pass.
11142         * tree-ssa-alias.c (gate_build_alias): New.
11143         (pass_build_alias): New.
11144         * passes.c (init_optimization_passes): Add pass_build_alias after
11145         pass_create_structure_vars.
11146
11147 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11148
11149         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11150         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11151         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11152         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11153         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11154         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11155         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11156         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11157         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11158         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11159         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11160         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11161         * config/s390/s390.md (FP_ALL): New mode iterator.
11162         (_d): New mode attribute.
11163         ("*signbit<mode>2>"): Changed mode of first operand.
11164         ("isinf<mode>2"): Changed mode of first operand.
11165         ("*TDC_insn"): Adaptation for DFP modes.
11166
11167 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11168
11169         * tree.c (check_qualified_type): Improve function description.
11170
11171 2008-01-21  Jason Merrill  <jason@redhat.com>
11172
11173         PR c++/34196
11174         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11175         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11176         if it is set.
11177
11178 2008-01-21  DJ Delorie  <dj@redhat.com>
11179
11180         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11181         return zero.
11182
11183 2008-01-21  Richard Guenther  <rguenther@suse.de>
11184
11185         PR middle-end/34856
11186         * tree-cfg.c (verify_expr): Allow all invariant expressions
11187         instead of just constant class ones as reference argument.
11188         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11189         like any other constant.
11190         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11191
11192 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11193
11194         * regmove.c (fixup_match_1): Update call crossed frequencies.
11195
11196 2008-01-21  Richard Guenther  <rguenther@suse.de>
11197
11198         PR c/34885
11199         * tree-inline.c (setup_one_parameter): Deal with mismatched
11200         types using a VIEW_CONVERT_EXPR.
11201
11202 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11203             Olga Golovanevsky  <olga@il.ibm.com>
11204         
11205         PR tree-optimization/34701
11206         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11207         when the structure size is not a power of 2.
11208
11209 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11210
11211         * doc/install.texi: Add doc for --enable-checking=df.
11212         
11213 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11214
11215         PR rtl-optimization/34808
11216         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11217
11218 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11219
11220         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11221         input.
11222
11223 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11224
11225         PR rtl-optimization/26854
11226         PR rtl-optimization/34400
11227         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11228         DF_RD->gen.
11229         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11230         (df_rd_bb_info.expanded_lr_out): New.
11231         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11232         * loop_iv.c (iv_analysis_loop_init): Ditto.
11233         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11234         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11235         Added code to allocate, initialize or free expanded_lr_out.
11236         (df_rd_bb_local_compute_process_def): Restructured to make
11237         more understandable.
11238         (df_rd_confluence_n): Add code to do nothing with fake edges and
11239         code to no apply invalidate_by_call sets if the sets are being trimmed.
11240         (df_lr_local_finalize): Renamed to df_lr_finalize.
11241         (df_live_local_finalize): Renamed to df_live_finalize.
11242
11243 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11244
11245         PR target/34831
11246         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11247         deciding whether to use reciprocal instructions.
11248
11249 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11250
11251         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11252         dwarf2out_note_section_used if cold_text_section is NULL.
11253
11254 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11255
11256         PR gcov-profile/34610
11257         * tree-cfg.c (make_edges): Mark both outgoing edges from
11258         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11259         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11260         from OMP_FOR and OMP_CONTINUE outgoing edges.
11261
11262         * tree-profile.c (tree_profiling): Return early if
11263         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11264         at the end.
11265         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11266         from cfun to child_cfun.
11267         * function.h (struct function): Add after_tree_profile bit.
11268
11269 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11270
11271         * config/avr/avr.S (_exit): Disable interrupt.
11272
11273 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11274             Steven Bosscher  <stevenb.gcc@gmail.com>
11275
11276         PR rtl-optimization/26854
11277         PR rtl-optimization/34400
11278         * df-problems.c (df_live_scratch): New scratch bitmap.
11279         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11280         (df_live_reset): Clear the proper bitmaps.
11281         (df_live_bb_local_compute): Only process the artificial defs once
11282         since the order is not important.
11283         (df_live_init): Init the df_live sets only with the variables
11284         found live by df_lr.
11285         (df_live_transfer_function): Use the df_lr sets to prune the
11286         df_live sets as they are being computed.  
11287         (df_live_free): Free df_live_scratch.
11288
11289 2008-01-18  Ian Lance Taylor  <iant@google.com>
11290
11291         * common.opt: Add fmerge-debug-strings.
11292         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11293         flag_merge_debug_strings rather than flag_merge_constants.
11294         * doc/invoke.texi (Option Summary): Mention
11295         -fmerge-debug-strings.
11296         (Debugging Options): Document -fmerge-debug-strings.
11297
11298 2008-01-18  Ian Lance Taylor  <iant@google.com>
11299
11300         PR c++/33407
11301         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11302         (struct tree_function_decl): Add new field operator_new_flag.
11303         * tree-inline.c (expand_call_inline): When inlining a call to
11304         operator new, force the return value to go into a variable, and
11305         set DECL_NO_TBAA_P on that variable.
11306         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11307
11308 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11309
11310         PR debug/34484
11311         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11312         DWARF2_DEBUGGING_INFO.
11313         (dwarf2out_note_section_used): Ditto.  Add prototype.
11314         (have_multiple_function_sections, text_section_used,
11315         cold_text_section_used, *cold_text_sections): Move declarations
11316         before their uses.
11317
11318 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11319
11320         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11321         field and add signal_ra.
11322         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11323         assignments to frame state pc.  Move end of stack check after
11324         MD_FALLBACK_FRAME_STATE_FOR.
11325         (uw_update_context_1): Use frame state signal_regs if set, instead
11326         of checking signal_frame flag.
11327         (uw_update_context): Use frame state signal_ra if set.
11328         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11329         * config/xtensa/linux-unwind.h: New file.
11330
11331 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11332
11333         * modulo-sched.c (get_sched_window): Fix comment typo.
11334
11335 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11336
11337         PR tree-optimization/34648
11338         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11339
11340 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11341
11342         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11343         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11344
11345 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11346
11347         PR rtl-optimization/34400
11348         * df-core.c (df_worklist_dataflow_overeager,
11349         df_worklist_dataflow_doublequeue): New functions.
11350         (df_worklist_dataflow): Two different worklist solvers.
11351         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11352         New param.
11353
11354 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11355
11356         PR testsuite/34821
11357         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11358         and ftree-parallelize-loops.
11359
11360 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11361
11362         PR rtl-optimization/34826
11363         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11364
11365 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11366
11367         * global.c (find_reg): Mark the eh regs as used if necessary.
11368         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11369         * ra.h (struct allocno): no_eh_reg field added.  Changed
11370         no_stack_reg type to bitfield.
11371
11372 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11373
11374         * tree.c (substitute_in_expr): Add missing 'break'.
11375
11376 2008-01-17  Richard Guenther  <rguenther@suse.de>
11377
11378         PR tree-optimization/34825
11379         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11380         x / x as division to handle.
11381
11382 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11383
11384         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11385         "-pthread" is specified.
11386         * pa-hpux11.h (LIB_SPEC): Likewise.
11387
11388 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11389             Peter Bergner  <bergner@vnet.ibm.com>
11390
11391         PR rtl-optimization/33796
11392         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11393
11394 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11395
11396         PR libgfortran/34699
11397         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11398         static links.
11399         * pa-hpux10.h (LINK_SPEC): Likewise.
11400         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11401
11402 2008-01-16  Richard Guenther  <rguenther@suse.de>
11403
11404         PR middle-end/32628
11405         * fold-const.c (fold_convert_const_int_from_int): Do not
11406         set overflow if that occured only because of a sign extension
11407         change when converting from/to a sizetype with the same
11408         precision and signedness.
11409
11410 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11411
11412         PR debug/34249
11413         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11414         location address to the correct place.  Update copyright year.
11415
11416 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11417
11418         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11419         no dependences in the dependence_relations vector.
11420
11421 2008-01-16  Jan Hubicka  <jh@suse.cz>
11422
11423         PR rtl-optimization/31396
11424         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11425         * cfg.c (dump_reg_info): Print it.
11426         * regs.h (struct reg_info_t): add freq_calls_crossed.
11427         (REG_FREQ_CALLS_CROSSED): New macro.
11428         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11429         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11430         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11431         regmove_optimize): Update call crossed frequencies.
11432         * local-alloc.c (struct qty): Add freq_calls_crossed.
11433         (alloc_qty): Copute freq_calls_crossed.
11434         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11435         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11436         * ra.h (struct allocno): Add freq_calls_crossed.
11437
11438 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11439
11440         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11441         libgomp when compiling with ftree-parallelize-loops.
11442         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11443
11444 2008-01-16  Richard Guenther  <rguenther@suse.de>
11445
11446         PR tree-optimization/34769
11447         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11448         * tree.c (int_cst_value): Instead make this function more
11449         permissive in what it accepts as valid input.  Document this
11450         function always sign-extends the value.
11451
11452 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11453             Richard Guenther  <rguenther@suse.de>
11454
11455         PR c/34668
11456         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11457         (gimple_fold_indirect_ref_rhs): ... this.
11458         (gimple_fold_indirect_ref): New function with foldings
11459         that preserve lvalueness.
11460         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11461         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11462         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11463         to fold an INDIRECT_REF, fall back to the old use of
11464         fold_indirect_ref_1.
11465
11466 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11467
11468         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11469         free_conflict_function.
11470         (compute_self_dependence): Same.
11471
11472 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11473
11474         PR debug/34249
11475         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11476         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11477         function global.
11478         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11479         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11480         for DWARF2_UNWIND_INFO targets.
11481
11482 2008-01-16  Richard Guenther  <rguenther@suse.de>
11483
11484         PR c/34768
11485         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11486         type qualifiers for function types.
11487
11488 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11489
11490         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11491         loop_iterator li from previous commit.
11492
11493 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11494
11495         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11496
11497 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11498
11499         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11500         (parallelize_loops): Don't parallelize irreducible components.
11501
11502 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11503
11504         PR c++/24924
11505         * c-opts (c_common_post_options): Do not enable CPP
11506         flag_pedantic_errors by default.
11507         
11508 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11509
11510         PR rtl-optimization/31944
11511         * cse.c (remove_pseudo_from_table): New function.
11512         (merge_equiv_classes): Use above function to remove pseudo-registers.
11513         (invalidate): Likewise.
11514
11515 2008-01-13  Richard Guenther  <rguenther@suse.de>
11516
11517         PR middle-end/34601
11518         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11519         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11520
11521 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11522
11523         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11524         validate_change to unshare the source of the PC set.
11525
11526 2008-01-12  Jan Hubicka  <jh@suse.cz>
11527
11528         PR middle-end/32135
11529         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11530         references above array bounds.  This might trigger bounds checks for
11531         pointers to arrays.
11532
11533 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11534
11535         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11536         new_replaceable_dependencies.
11537
11538 2008-01-12  Doug Kwan  <dougkwan@google.com>
11539
11540         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11541         instead of OPT_Wreturn_type in warning due to ignored return type
11542         qualifiers.
11543         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11544         options included in -Wextra.
11545         * c.opt: New option -Wignored_qualifiers.
11546         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11547         -Wignore_qualifiers.
11548         (-Wignored-qualifiers): Document.
11549         (-Wreturn-type): Remove description of functionality now handled
11550         by -Wignored-qualifiers.
11551
11552 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11553
11554         PR ada/33788
11555         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11556         NOP_EXPR if it is between integral types with the same precision.
11557
11558 2008-01-12  Jan Hubicka  <jh@suse.cz>
11559
11560         PR other/28023
11561         * invoke.texi (max-inline-recursive-depth): Fix default value.
11562
11563 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11564
11565         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11566         correct type.
11567
11568 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11569         
11570         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11571         
11572 2008-01-11  James E. Wilson  <wilson@specifix.com>
11573
11574         PR target/26015
11575         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11576
11577 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11578
11579         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11580         save/restore frame pointer register and don't use 'call-prologues' 
11581         optimization in function with "OS_task" attribute.
11582
11583 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11584
11585         PR middle-end/31309
11586         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11587         when copying to memory.
11588
11589 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11590
11591         PR rtl-optimization/30905
11592         * cfgcleanup.c: Include dce.h
11593         (crossjumps_occured): New global variable.
11594         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11595         If something changed, set crossjumps_occured to true.
11596         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11597         Don't add/remove fake edges to exit here...
11598         (cleanup_cfg): ...but do it here, when crossjumping.
11599         Run a fast DCE when successful crossjumps occured in the latest
11600         iteration of try_optimize_cfg.
11601
11602 2008-01-11  Richard Guenther  <rguenther@suse.de>
11603
11604         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11605         (struct vn_unary_op_s): Likewise.
11606         (vn_reference_insert): Free old reference on hash collision.
11607
11608 2008-01-10  Raksit Ashok  <raksit@google.com>
11609
11610         PR rtl-optimization/27971
11611         * combine.c (find_split_point): Split PLUS expressions which are
11612         inside a MEM rtx, and whose first operand is complex.
11613
11614 2008-01-10  DJ Delorie  <dj@redhat.com>
11615
11616         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11617         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11618         (m32c_hard_regno_ok): Call the underlying function.
11619
11620 2008-01-10  Richard Guenther  <rguenther@suse.de>
11621
11622         PR middle-end/34683
11623         * tree-cfg.c (tree_merge_blocks): Do not go through the
11624         full-blown folding and stmt updating path if we just deal
11625         with virtual operands.
11626         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11627         test for abnormal SSA_NAMEs.
11628
11629 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11630
11631         PR middle-end/34641
11632         * reload.c (push_reload): Add assertions.  All constants from
11633         reg_equiv_constant should have been used for replacing the respective
11634         pseudo earlier.
11635         (find_reloads_address): Invoke find_reloads_address_part for
11636         constant taken from the reg_equiv_constant array.
11637
11638 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11639
11640         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11641         field (valnum) the first in the struct.  Replace bools with
11642         unit bit fields.
11643
11644 2008-01-10  Richard Guenther  <rguenther@suse.de>
11645
11646         PR tree-optimization/34651
11647         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11648         types and ordering for masking and converting.
11649
11650 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11651
11652         PR tree-optimization/34017
11653         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11654         also for PHI_NODE expressions.
11655
11656 2008-01-09  Jan Hubicka  <jh@suse.cz>
11657
11658         PR tree-optimization/34708
11659         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11660         based on number of case labels.
11661         (init_inline_once): Remove switch_cost.
11662         * tree-inline.h (eni_weights_d): Remove switch_cost.
11663
11664 2008-01-09  Richard Guenther  <rguenther@suse.de>
11665         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11666
11667         PR middle-end/30132
11668         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11669         temporary if an rvalue is ok or an lvalue is not required.
11670
11671 2008-01-09  Richard Guenther  <rguenther@suse.de>
11672
11673         PR middle-end/34458
11674         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11675         adjust return type.
11676
11677 2008-01-09  Richard Guenther  <rguenther@suse.de>
11678
11679         PR middle-end/34679
11680         * tree.c (host_integerp): Check for sizetype only if the
11681         type is an integer type.
11682
11683 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11684
11685         PR debug/26364
11686         * opts.c (decode_options): Disable inlining of functions called
11687         once if not in unit-at-a-time mode.
11688
11689 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11690
11691         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11692
11693 2008-01-08  Richard Guenther  <rguenther@suse.de>
11694
11695         PR middle-end/31863
11696         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11697         out early if the result will be unused.
11698
11699 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11700
11701         PR target/34709
11702         Revert:
11703
11704         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11705         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11706         for TARGET_RECIP.       
11707         
11708 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11709         
11710         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11711         for vectorization tuned.
11712         
11713 2008-01-08  Richard Guenther  <rguenther@suse.de>
11714
11715         PR tree-optimization/34683
11716         * tree-ssa-operands.c (operand_build_cmp): Export.
11717         * tree-ssa-operands.h (operand_build_cmp): Declare.
11718         * tree-vn.c (vuses_compare): Remove.
11719         (sort_vuses): Use operand_build_cmp.
11720         (sort_vuses_heap): Likewise.
11721         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11722         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11723         (vdefs_to_vec): Do not sort already sorted VDEFs.
11724
11725 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11726
11727         PR middle-end/34694
11728         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11729
11730 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11731
11732         PR target/34702
11733         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11734         limitations of reciprocal sequences on x86 targets.
11735
11736 2008-01-08  Richard Guenther  <rguenther@suse.de>
11737
11738         PR tree-optimization/34683
11739         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11740
11741 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11742
11743         PR target/34622
11744         * config/darwin.c (darwin_mergeable_string_section): Don't use
11745         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11746
11747 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11748
11749         PR target/34682
11750         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11751         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11752         predicates of op0 and op1 to register_operand.
11753         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11754         expander using X87MODEF mode iterator.  Change predicates of
11755         op0 and op1 to register_operand.
11756         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11757         corresponding patterns and macroize using MODEF macro.  Change
11758         predicates of op0 and op1 to register_operand and remove
11759         "m" constraint. Disparage "r" alternative with "!".
11760         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11761         macroize using X87MODEF macro.  Change predicates of op0 and op1
11762         to register_operand and remove "m" constraint.  Disparage "r"
11763         alternative with "!".
11764         (absneg splitter with memory operands): Remove.
11765         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11766         patterns and macroize using X87MODEF mode iterator.
11767         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11768         Change predicate of op1 to register_operand.
11769         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11770         for memory operands.
11771
11772 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11773
11774         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11775
11776 2008-01-07  Richard Guenther  <rguenther@suse.de>
11777
11778         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11779         fields.
11780
11781 2008-01-07  Richard Guenther  <rguenther@suse.de>
11782
11783         PR tree-optimization/34683
11784         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11785         VOPs of the needed size to save memory.  Use VEC_quick_push
11786         to save compile-time.
11787         (vdefs_to_vec): Likewise.
11788
11789 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11790
11791         * config/spu/spu.md (divdf3): Genetate inline code for double
11792         division.  The implementation doesn't handle INF or NAN, therefore it
11793         only applies when -ffinite-math-only is given.
11794
11795 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11796
11797         PR libstdc++/34680
11798         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11799         * doc/cpp.texi ([Common Predefined Macros]): Document.
11800
11801 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11802
11803         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11804         order to use commutative addition instead of subtraction.
11805
11806 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11807             Mircea Namolaru  <namolaru@il.ibm.com>
11808             Vladimir Yanovsky  <yanov@il.ibm.com>
11809             Revital Eres  <eres@il.ibm.com>
11810
11811         PR tree-optimization/34263
11812         * tree-outof-ssa.c (process_single_block_loop_latch,
11813         contains_tree_r): New functions.
11814         (analyze_edges_for_bb): Call process_single_block_loop_latch
11815         function to empty single-basic-block latch block if possible.
11816
11817 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11818
11819         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11820         for TARGET_RECIP.
11821         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11822
11823 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11824
11825         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11826
11827 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11828
11829         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11830
11831 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11832
11833         PR tree-optimization/34618
11834         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11835         flag from T.
11836
11837 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11838
11839         PR target/34673
11840         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11841         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11842         Update copyright year.
11843
11844         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11845         Update copyright year.
11846         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11847         using NR fixup.
11848
11849 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11850
11851         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11852         edge does not point to current bb before changing need_assert.
11853
11854 2008-01-04  Richard Guenther  <rguenther@suse.de>
11855
11856         PR middle-end/34029
11857         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11858         for verifying purposes if they are is_gimple_min_invariant.
11859
11860 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11861
11862         PR tree-optimization/34448
11863         PR tree-optimization/34465
11864         * gimplify.c (gimplify_init_constructor): Add new parameter
11865         notify_temp_creation.  Use it.
11866         (gimplify_modify_expr_rhs): Take volatiles into account when
11867         optimizing constructors.
11868         Do not optimize constructors if gimplify_init_constructor will dump to
11869         memory.
11870         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11871         * gcc.c-torture/compile/pr34448.c: New.
11872
11873 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11874
11875         PR gcov-profile/34609
11876         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11877         return_slot if result is TREE_ADDRESSABLE.
11878
11879 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11880
11881         * config/mips/mips.md (sqrt_condition): Tweak comment.
11882         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11883
11884 2008-01-03  Tom Tromey  <tromey@redhat.com>
11885
11886         PR c/34457
11887         * c-common.c (c_type_hash): Handle VLAs.
11888
11889 2008-01-03  Jan Hubicka  <jh@suse.cz>
11890
11891         PR tree-optimization/31081
11892         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11893         0 when inlining and not inlining to first basic block.
11894         (remap_decl): When var is initialized to 0, don't set default_def.
11895         (expand_call_inline): Set entry_bb.
11896         * tree-inline.h (copy_body_data): Add entry_bb.
11897
11898 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11899
11900         PR c++/34619
11901         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11902         before returning.
11903
11904         PR tree-optimization/29484
11905         * tree-inline.c (inline_forbidden_p_2): New function.
11906         (inline_forbidden_p): Disallow inlining if some static var
11907         has an address of a local LABEL_DECL in its initializer.
11908         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11909         vs. inlining.
11910
11911 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11912
11913         PR tree-optimization/34635
11914         * tree-data-ref.c (add_other_self_distances): Make sure that the
11915         evolution step is constant.
11916
11917 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11918
11919         PR middle-end/34608
11920         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11921
11922 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11923
11924         * tree-sra.c (scalarize_init): Insert the generate_element_init
11925         statements after the generate_element_zero statements.
11926
11927 2008-01-02  Richard Guenther  <rguenther@suse.de>
11928
11929         PR middle-end/34093
11930         PR middle-end/31976
11931         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11932         for very large number of operands instead of ICEing.
11933
11934 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11935
11936         PR target/34013
11937         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11938         while stack probing.
11939
11940 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11941
11942         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11943         in C++0x mode.
11944
11945 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11946
11947         PR libmudflap/26442
11948         * tree-mudflap.c (mx_register_decls): Guard warning by
11949         !DECL_ARTIFICIAL check.
11950
11951 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11952
11953         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11954         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11955         sse5_perm<mode>): Fix constraints.