OSDN Git Service

2008-06-09 Kai Tietz <kai.tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
2
3         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
4
5 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
6
7         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
8         (sparc-sun-solaris2*): Likewise.
9
10 2008-06-09  Arnaud Charlet  <charlet@adacore.com
11
12         * doc/install.texi: Update requirements to build the Ada compiler.
13
14 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
15
16         * df-scan.c (struct df_scan_problem_data): Remove the
17         mw_link_pool alloc pool.
18         (df_scan_free_internal): Don't free it.
19         (df_scan_alloc): Don't allocate it.
20         * df.h (struct df_link): Update comment.
21
22 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
23
24         * except.h: Correct checks for when SJLJ exceptions must be used.
25
26 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
27
28         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
29         default.
30         
31 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
32
33         PR tree-optimization/36218
34         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
35         configure for the build system.
36         (BUILD_LDFLAGS): Define.
37         * configure: Regenerate.
38         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
39
40 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
41
42         PR target/36424
43         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
44         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
45         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
46
47 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
48
49         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
50
51 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
52
53         * config.gcc (Obsolete configurations): Remove list of
54         configurations.
55         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
56         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
57         targets matched by those patterns.
58         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
59         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
60         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
61         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
62         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
63         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
64         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
65         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
66         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
67         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
68         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
69         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
70         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
71         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
72         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
73         Make code for Solaris 7 and greater unconditional for Solaris.
74         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
75         Remove --with-* handling.
76         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
77         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
78         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
79         LINK_OS_WINDISS_SPEC): Remove.
80         * config/rs6000/sysv4.opt (mwindiss): Remove.
81         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
82         * configure: Regenerate.
83         * doc/cpp.texi: Don't mention BeOS.
84         * doc/extend.texi (interrupt): Don't mention MS1.
85         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
86         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
87         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
88         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
89         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
90         Remove.
91         * doc/invoke.texi (MT Options): Remove.
92         (-mwindiss): Remove.
93         (CRIS Options): Remove cris-axis-aout references.
94         (HPPA Options): Don't mention hppa1.1-*-pro.
95         * doc/md.texi: (MorphoTech family): Remove.
96         * libgcc2.c: Don't handle UWIN.
97         * config/alpha/t-unicosmk: Remove.
98         * config/alpha/unicosmk.h: Remove.
99         * config/arm/kaos-arm.h: Remove.
100         * config/arm/kaos-strongarm.h: Remove.
101         * config/arm/strongarm-coff.h: Remove.
102         * config/arm/strongarm-elf.h: Remove.
103         * config/arm/strongarm-pe.h: Remove.
104         * config/arm/t-strongarm-pe: Remove.
105         * config/arm/t-xscale-coff: Remove.
106         * config/arm/t-xscale-elf: Remove.
107         * config/arm/xscale-coff.h: Remove.
108         * config/arm/xscale-elf.h: Remove.
109         * config/chorus.h: Remove.
110         * config/cris/aout.h: Remove.
111         * config/cris/aout.opt: Remove.
112         * config/cris/t-aout: Remove.
113         * config/i386/beos-elf.h: Remove.
114         * config/i386/kaos-i386.h: Remove.
115         * config/i386/ptx4-i.h: Remove.
116         * config/i386/sco5.h: Remove.
117         * config/i386/sco5.opt: Remove.
118         * config/i386/sysv4-cpp.h: Remove.
119         * config/i386/sysv5.h: Remove.
120         * config/i386/t-beos: Remove.
121         * config/i386/t-sco5: Remove.
122         * config/i386/t-uwin: Remove.
123         * config/i386/uwin.asm: Remove.
124         * config/i386/uwin.h: Remove.
125         * config/kaos.h: Remove.
126         * config/mips/windiss.h: Remove.
127         * config/mt: Remove directory.
128         * config/pa/pa-osf.h: Remove.
129         * config/pa/pa-pro-end.h: Remove.
130         * config/pa/t-pro: Remove.
131         * config/ptx4.h: Remove.
132         * config/rs6000/beos.h: Remove.
133         * config/rs6000/kaos-ppc.h: Remove.
134         * config/rs6000/t-beos: Remove.
135         * config/rs6000/windiss.h: Remove.
136         * config/sh/kaos-sh.h: Remove.
137         * config/sol2-6.h: Remove.
138         * config/sparc/sol26-sld.h: Remove.
139         * config/sparc/sysv4-only.h: Remove.
140         * config/vax/bsd.h: Remove.
141         * config/vax/t-memfuncs: Remove.
142         * config/vax/ultrix.h: Remove.
143         * config/vax/vaxv.h: Remove.
144         * config/windiss.h: Remove.
145
146 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
147
148         PR rtl-optimization/36438
149         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
150         for vector shifts with constant scalar shift operands.
151
152 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
153
154         * doc/invoke.texi: Document -march=xlr.
155         * config/mips/xlr.md: New file.
156         * config/mips/mips.md: Include it.
157         (cpu): Add "xlr".
158         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
159         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
160         (mips_rtx_cost_data): Likewise.
161
162 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
163
164         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
165         PRE_INC and PRE_DEC cases.
166
167 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
168
169         PR rtl-optimization/36419
170         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
171         the emitting jump insn.
172
173         PR target/36362
174         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
175         is not bool, boolify the whole *expr_p and convert to the desired type.
176
177 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
178
179         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
180         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
181         Add omp_private_outer_ref hook, add another argument to
182         omp_clause_default_ctor hook.
183         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
184         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
185         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
186         hook_tree_tree_tree_tree_null.
187         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
188         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
189         * hooks.c (hook_tree_tree_tree_tree_null): New function.
190         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
191         * tree.def (OMP_TASK): New tree code.
192         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
193         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
194         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
195         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
196         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
197         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
198         OMP_CLAUSE_COLLAPSE_EXPR): Define.
199         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
200         (OMP_DIRECTIVE_P): Add OMP_TASK.
201         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
202         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
203         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
204         and OMP_CLAUSE_UNTIED entries.
205         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
206         num_ops to 2.
207         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
208         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
209         * tree-pretty-print.c (dump_omp_clause): Handle
210         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
211         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
212         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
213         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
214         warning about unsigned iterators.  Change decl/init/cond/incr
215         arguments to TREE_VECs, check arguments for all collapsed loops.
216         (c_finish_omp_taskwait): New function.
217         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
218         ws_clauses.
219         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
220         default_function_array_conversion on init.  Add par_clauses argument.
221         If decl is present in parallel's lastprivate clause, change it to
222         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
223         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
224         collapse count in clauses.
225         (c_parser_omp_for, c_parser_omp_parallel): Adjust
226         c_parser_omp_for_loop callers.
227         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
228         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
229         (c_parser_omp_clause_name): Handle collapse and untied clauses.
230         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
231         functions.
232         (c_parser_omp_clause_schedule): Handle schedule(auto).
233         Include correct location in the error message.
234         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
235         and PRAGMA_OMP_CLAUSE_UNTIED.
236         (OMP_TASK_CLAUSE_MASK): Define.
237         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
238         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
239         * tree-nested.c (convert_nonlocal_omp_clauses,
240         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
241         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
242         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
243         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
244         OMP_CLAUSE_DECL.
245         (conver_nonlocal_reference, convert_local_reference,
246         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
247         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
248         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
249         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
250         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
251         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
252         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
253         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
254         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
255         OMP_CLAUSE_UNTIED.
256         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
257         * c-common.h (c_finish_omp_taskwait): New prototype.
258         * gimple-low.c (lower_stmt): Handle OMP_TASK.
259         * tree-parloops.c (create_parallel_loop): Create 1 entry
260         vectors for OMP_FOR_{INIT,COND,INCR}.
261         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
262         (make_edges): Handle OMP_TASK.
263         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
264         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
265         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
266         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
267         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
268         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
269         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
270         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
271         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
272         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
273         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
274         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
275         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
276         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
277         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
278         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
279         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
280         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
281         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
282         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
283         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
284         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
285         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
286         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
287         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
288         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
289         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
290         original iterator is present in lastprivate clause or if
291         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
292         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
293         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
294         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
295         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
296         if it is set, lookup var in outer contexts too.  Handle
297         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
298         to be implicitly determined firstprivate for task regions.
299         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
300         if it is set, lookup var in outer contexts too.  Set
301         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
302         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
303         OMP_CLAUSE_UNTIED.  Take region_type as last argument
304         instead of in_parallel and in_combined_parallel.
305         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
306         Adjust callers.
307         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
308         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
309         (new_omp_context): Set default_kind to
310         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
311         (omp_region_type): New enum.
312         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
313         fields, add region_type.
314         (new_omp_context): Take region_type as argument instead of is_parallel
315         and is_combined_parallel.
316         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
317         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
318         ctx->is_combined_parallel checks.
319         (gimplify_omp_task): New function.
320         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
321         OMP_CLAUSE_UNTIED.
322         * omp-low.c (extract_omp_for_data): Use schedule(static)
323         for schedule(auto).  Handle pointer and unsigned iterators.
324         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
325         Add loops argument.  Extract data for collapsed OMP_FOR loops.
326         (expand_parallel_call): Assert sched_kind isn't auto,
327         map runtime schedule to index 3.
328         (struct omp_for_data_loop): New type.
329         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
330         Add loop, loops, collapse and iter_type fields.
331         (workshare_safe_to_combine_p): Disallow combined for if
332         iter_type is unsigned long long.  Don't combine collapse > 1 loops
333         unless all bounds and steps are constant.  Adjust extract_omp_for_data
334         caller.
335         (expand_omp_for_generic): Handle pointer, unsigned and long long
336         iterators.  Handle collapsed OMP_FOR loops.  Adjust
337         for struct omp_for_data changes.  If libgomp function doesn't return
338         boolean_type_node, add comparison of the return value with 0.
339         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
340         pointer, unsigned and long long iterators.  Adjust for struct
341         omp_for_data changes.
342         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
343         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
344         unsigned long long.  Allocate loops array, pass it to
345         extract_omp_for_data.  For collapse > 1 loops use always
346         expand_omp_for_generic.
347         (omp_context): Add sfield_map and srecord_type fields.
348         (is_task_ctx, lookup_sfield): New functions.
349         (use_pointer_for_field): Use is_task_ctx helper.  Change first
350         argument's type from const_tree to tree.  Clarify comment.
351         In OMP_TASK disallow copy-in/out sharing.
352         (build_sender_ref): Call lookup_sfield instead of lookup_field.
353         (install_var_field): Add mask argument.  Populate both record_type
354         and srecord_type if needed.
355         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
356         in srecord_type.
357         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
358         and DECL_FIELD_OFFSET.
359         (scan_sharing_clauses): Adjust install_var_field callers.  For
360         firstprivate clauses on explicit tasks allocate the var by value in
361         record_type unconditionally, rather than by reference.
362         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
363         Use is_taskreg_ctx instead of is_parallel_ctx.
364         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
365         (create_omp_child_function_name): Add task_copy argument, use
366         *_omp_cpyfn* names if it is true.
367         (create_omp_child_function): Add task_copy argument, if true create
368         *_omp_cpyfn* helper function.
369         (scan_omp_parallel): Adjust create_omp_child_function callers.
370         Rename parallel_nesting_level to taskreg_nesting_level.
371         (scan_omp_task): New function.
372         (lower_rec_input_clauses): Don't run constructors for firstprivate
373         explicit task vars which are initialized by *_omp_cpyfn*.  
374         Pass outer var ref to omp_clause_default_ctor hook if
375         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
376         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
377         OMP_CLAUSE_REDUCTION_INIT.
378         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
379         avoid duplicate setting of fields.  Handle
380         OMP_CLAUSE_PRIVATE_OUTER_REF.
381         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
382         copy-out if TREE_READONLY, only copy-in.
383         (expand_task_copyfn): New function.
384         (expand_task_call): New function.
385         (struct omp_taskcopy_context): New type.
386         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
387         New functions.
388         (lower_omp_parallel): Rename to...
389         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
390         Call create_task_copyfn if srecord_type is needed.  Adjust
391         sender_decl type.
392         (task_shared_vars): New variable.
393         (check_omp_nesting_restrictions): Warn if work-sharing,
394         barrier, master or ordered region is closely nested inside OMP_TASK.
395         Add warnings for barrier if closely nested inside of work-sharing,
396         ordered, or master region.
397         (scan_omp_1): Call check_omp_nesting_restrictions even for
398         GOMP_barrier calls.  Rename parallel_nesting_level to
399         taskreg_nesting_level.  Handle OMP_TASK.
400         (lower_lastprivate_clauses): Even if some lastprivate is found on a
401         work-sharing construct, continue looking for them on parent parallel
402         construct.
403         (lower_omp_for_lastprivate): Add lastprivate clauses
404         to the beginning of dlist rather than end.  Adjust for struct
405         omp_for_data changes.
406         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
407         not after it.  Handle collapsed OMP_FOR loops, adjust for
408         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
409         (get_ws_args_for): Adjust extract_omp_for_data caller.
410         (scan_omp_for): Handle collapsed OMP_FOR
411         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
412         (lower_omp_single_simple): If libgomp function doesn't return
413         boolean_type_node, add comparison of the return value with 0.
414         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
415         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
416         (parallel_nesting_level): Rename to...
417         (taskreg_nesting_level): ... this.
418         (is_taskreg_ctx): New function.
419         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
420         of is_parallel_ctx.
421         (execute_lower_omp): Rename parallel_nesting_level to
422         taskreg_nesting_level.
423         (expand_omp_parallel): Rename to...
424         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
425         Call omp_task_call for OMP_TASK regions.
426         (expand_omp): Adjust caller, handle OMP_TASK.
427         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
428
429         * bitmap.c (bitmap_default_obstack_depth): New variable.
430         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
431         if argument is NULL and bitmap_default_obstack is already initialized.
432         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
433         at the end.
434         * matrix-reorg.c (matrix_reorg): Likewise.
435
436 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
437
438         * config/i386/i386.md (*indirect_jump): Macroize using P
439         mode iterator.  Remove !TARGET_64BIT from insn constraints.
440         (*tablejump_1): Ditto.
441         (*indirect_jump_rex64): Remove insn pattern.
442         (*tablejump_1_rex64): Ditto.
443         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
444         and eh_return_si insn patterns.
445
446 2008-06-06  Richard Guenther  <rguenther@suse.de>
447
448         * tree-ssa-structalias.c (merge_smts_into): Remove.
449         (find_what_p_points_to): Do not bother to compute the
450         points-to set for pt_anything pointers.
451         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
452         for pt_anything pointers is ok.
453
454 2008-06-06  Jan Hubicka  <jh@suse.cz>
455
456         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
457
458 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
459
460         * cgraph.c: Fix typos in comments.
461         (cgraph_availability_names): Fix string typo.
462         * fold-const.c: Fix typos in comments.
463         (fold_binary): Fix typo in warning.
464         * genautomata.c: Fix typos in comments.
465         (check_presence_pattern_sets): Fix typo in local variable.
466         (output_description): Fix typo in output.
467         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
468         * hwint.h: Likewise.
469         * matrix-reorg.c (check_allocation_function): Likewise.
470         * omega.c (smooth_weird_equations): Likewise.
471         * auto-inc-dec.c: Fix typos in comments.
472         * bb-reorder.c: Likewise.
473         * builtins.c: Likewise.
474         * c-common.c: Likewise.
475         * c-cppbuiltin.c: Likewise.
476         * c-parser.c: Likewise.
477         * c-pretty-print.c: Likewise.
478         * cfgcleanup.c: Likewise.
479         * cfgexpand.c: Likewise.
480         * cfghooks.c: Likewise.
481         * cfglayout.c: Likewise.
482         * cfgloopmanip.c: Likewise.
483         * cgraphunit.c: Likewise.
484         * coverage.c: Likewise.
485         * dbxout.c: Likewise.
486         * df-byte-scan.c: Likewise.
487         * df-core.c: Likewise.
488         * df-problems.c: Likewise.
489         * df-scan.c: Likewise.
490         * dfp.c: Likewise.
491         * dominance.c: Likewise.
492         * domwalk.c: Likewise.
493         * dse.c: Likewise.
494         * dwarf2out.c: Likewise.
495         * emit-rtl.c: Likewise.
496         * et-forest.c: Likewise.
497         * function.c: Likewise.
498         * function.h: Likewise.
499         * gcc.c: Likewise.
500         * gcov-io.c: Likewise.
501         * gcov.c: Likewise.
502         * gcse.c: Likewise.
503         * genattrtab.c: Likewise.
504         * ggc-page.c: Likewise.
505         * gimplify.c: Likewise.
506         * gthr-lynx.h: Likewise.
507         * haifa-sched.c: Likewise.
508         * ipa-cp.c: Likewise.
509         * ipa-inline.c: Likewise.
510         * ipa-prop.h: Likewise.
511         * ipa-pure-const.c: Likewise.
512         * ipa-struct-reorg.c: Likewise.
513         * ipa-struct-reorg.h: Likewise.
514         * ipa-type-escape.c: Likewise.
515         * ipa.c: Likewise.
516         * loop-doloop.c: Likewise.
517         * mips-tfile.c: Likewise.
518         * mkmap-flat.awk: Likewise.
519         * mkmap-symver.awk: Likewise.
520         * modulo-sched.c: Likewise.
521         * omp-low.c: Likewise.
522         * optabs.c: Likewise.
523         * optabs.h: Likewise.
524         * opts.c: Likewise.
525         * passes.c: Likewise.
526         * postreload-gcse.c: Likewise.
527         * postreload.c: Likewise.
528         * predict.c: Likewise.
529         * pretty-print.h: Likewise.
530         * profile.c: Likewise.
531         * protoize.c: Likewise.
532         * ra-conflict.c: Likewise.
533         * real.c: Likewise.
534         * recog.c: Likewise.
535         * regclass.c: Likewise.
536         * regs.h: Likewise.
537         * reload.c: Likewise.
538         * rtl-error.c: Likewise.
539         * rtlanal.c: Likewise.
540         * scan.h: Likewise.
541         * sched-rgn.c: Likewise.
542         * see.c: Likewise.
543         * stmt.c: Likewise.
544         * target.h: Likewise.
545         * tree-dfa.c: Likewise.
546         * tree-eh.c: Likewise.
547         * tree-flow-inline.h: Likewise.
548         * tree-inline.c: Likewise.
549         * tree-into-ssa.c: Likewise.
550         * tree-loop-distribution.c: Likewise.
551         * tree-nested.c: Likewise.
552         * tree-parloops.c: Likewise.
553         * tree-pass.h: Likewise.
554         * tree-pretty-print.c: Likewise.
555         * tree-profile.c: Likewise.
556         * tree-scalar-evolution.c: Likewise.
557         * tree-sra.c: Likewise.
558         * tree-ssa-alias-warnings.c: Likewise.
559         * tree-ssa-ccp.c: Likewise.
560         * tree-ssa-coalesce.c: Likewise.
561         * tree-ssa-dom.c: Likewise.
562         * tree-ssa-dse.c: Likewise.
563         * tree-ssa-forwprop.c: Likewise.
564         * tree-ssa-live.c: Likewise.
565         * tree-ssa-live.h: Likewise.
566         * tree-ssa-loop-im.c: Likewise.
567         * tree-ssa-loop-ivopts.c: Likewise.
568         * tree-ssa-loop-niter.c: Likewise.
569         * tree-ssa-loop-prefetch.c: Likewise.
570         * tree-ssa-phiopt.c: Likewise.
571         * tree-ssa-phiprop.c: Likewise.
572         * tree-ssa-sccvn.c: Likewise.
573         * tree-ssa-ter.c: Likewise.
574         * tree-ssa-threadupdate.c: Likewise.
575         * tree-ssa.c: Likewise.
576         * tree-vect-analyze.c: Likewise.
577         * tree-vect-transform.c: Likewise.
578         * tree-vectorizer.c: Likewise.
579         * tree-vn.c: Likewise.
580         * tree-vrp.c: Likewise.
581         * tree.c: Likewise.
582         * tree.def: Likewise.
583         * tree.h: Likewise.
584         * unwind-dw2-fde.c: Likewise.
585         * unwind.inc: Likewise.
586         * value-prof.c: Likewise.
587         * vmsdbgout.c: Likewise.
588
589 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
590
591         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
592         always place FP constants in the TOC for TARGET_POWERPC64.
593         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
594
595 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
596
597         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
598         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
599         enable for TARGET_E500_DOUBLE.
600         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
601         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
602         floating-point modes like integer modes for E500 double.
603         (rs6000_legitimate_offset_address_p): Likewise.
604         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
605         addressing for DDmode for E500 double.
606         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
607         modes as using 64-bits of registers for E500 double.
608         (spe_build_register_parallel): Do not handle DDmode or TDmode.
609         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
610         specially for E500 double.
611         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
612         TDmode for E500 double.
613         (rs6000_gimplify_va_arg): Only handle SDmode in registers
614         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
615         (rs6000_split_multireg_move): Do not handle TDmode specially for
616         E500 double.
617         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
618         using 64-bit registers for E500 double.
619         (emit_frame_save): Do not handle DDmode specially for E500 double.
620         (gen_frame_mem_offset): Likewise.
621         (rs6000_function_value): Do not call spe_build_register_parallel
622         for DDmode or TDmode.
623         (rs6000_libcall_value): Likewise.
624         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
625         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
626         for E500 double.
627
628 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
629
630         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
631         in comments.
632
633 2008-06-04  Junjie Gu <jgu@tensilica.com>
634
635         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
636         comparison for frame pointers.
637
638 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
639
640         PR target/27386
641         * config/avr/avr.h (PUSH_ROUNDING): Remove.
642
643 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
644
645         PR target/30243
646         * builtins.c (expand_builtin_signbit): Don't take lowpart when
647         register is already smaller or equal to required mode. 
648
649 2008-06-04  Xinliang David Li  <davidxl@google.com>
650
651         * tree-call-cdce.c: New file. 
652         (cond_dead_built_in_calls): New static variable.
653         (input_domain): New struct.
654         (check_pow): New function.
655         (check_builtin_call): Ditto.
656         (check_target_format): Ditto.
657         (is_call_dce_candidate): Ditto.
658         (gen_one_condition): Ditto.
659         (gen_conditions_for_domain): Ditto.
660         (get_domain): Ditto.
661         (gen_conditions_for_pow_cst_base): Ditto.
662         (gen_conditions_for_pow_int_base): Ditto.
663         (gen_conditions_for_pow): Ditto.
664         (get_no_error_domain): Ditto.
665         (gen_shrink_wrap_conditions): Ditto.
666         (shrink_wrap_one_built_in_call): Ditto.
667         (shink_wrap_conditional_dead_built_in_calls): Ditto.
668         (tree_call_cdce): Ditto.
669         (gate_call_cdce): Ditto.
670         (pass_call_cdce): New gimple pass.
671         * passes.c: (init_optimization_passes): New pass.
672         * tree-pass.h: New pass declaration.
673         * opts.c (decode_options): New flag setting.
674         * common.opt: Add -ftree-builtin-call-dce flag.
675         * Makefile.in: Add new source file.
676         * tempvar.def: New tv_id.
677         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
678
679 2008-06-04  Richard Guenther  <rguenther@suse.de>
680
681         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
682         (is_call_clobbered): Always check var_ann->call_clobbered.
683         (mark_call_clobbered): Always set var_ann->call_clobbered.
684         (clear_call_clobbered): Always clear var_ann->call_clobbered.
685         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
686         (reset_alias_info): Clear call clobbering info on MTAGs and
687         globals as well.
688         (set_pt_anything): Set pt_global_mem.
689         (create_tag_raw): Adjust comment.
690         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
691
692 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
693             Maxim Kuvyrkov  <maxim@codesourcery.com>
694
695         * config/m68k/m68k.opt (mxgot): New option.
696         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
697         (m68k_output_addr_const_extra): New.
698         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
699         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
700         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
701         * doc/invoke.texi (M680x0 Options): Document -mxgot.
702
703 2008-06-04  Richard Guenther  <rguenther@suse.de>
704
705         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
706         negative or non-representable offsets.
707
708 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
709
710         * config/i386/i386.c (ix86_gen_leave): New.
711         (ix86_gen_pop1): Likewise.
712         (ix86_gen_add3): Likewise.
713         (ix86_gen_sub3): Likewise.
714         (ix86_gen_sub3_carry): Likewise.
715         (ix86_gen_one_cmpl2): Likewise.
716         (ix86_gen_monitor): Likewise.
717         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
718         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
719         ix86_gen_one_cmpl2 and ix86_gen_monitor.
720         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
721         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
722         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
723         (ix86_expand_epilogue): Updated.
724         (print_operand): Handle integer register operand for 'z'.
725         (ix86_expand_strlensi_unroll_1): Likewise.
726         (ix86_expand_strlen): Likewise.
727         (ix86_expand_builtin): Likewise.
728         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
729         mov{q}/mov{l} and add{q}/add{l}.
730
731 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
732
733         * config/i386/i386.md (P): New mode iterator.
734         (SFmode push_operand splitter): Macroize DImode and SImode pushes
735         using P mode iterator.
736         (DFmode push_operand splitter): Ditto.
737         (XFmode push_operand splitter): Ditto.
738         (DFmode float_extend SFmode push_operand splitter): Ditto.
739         (XFmode float_extend SFmode push_operand splitter): Do not generate
740         SImode pushes for 64bit target.  Macroize Dimode and SImode
741         pushes using P mode iterator.
742         (XFmode float_extend DFmode push_operand splitter): Ditto.
743
744 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
745
746         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
747         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
748         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
749         return type to int.
750         (ix86_call_abi_override): Remove check for call_used_regs.
751
752 2008-06-03  Richard Guenther  <rguenther@suse.de>
753
754         * tree-ssa-structalias.c (find_func_aliases): Add constraints
755         for the lhs of calls if the return type contains pointers.
756
757 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
758
759         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
760         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
761         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
762         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
763         of cfun and DEFAULT_ABI to deceide abi mode.
764         (DEFAULT_ABI): New.
765         (REG_PARM_STACK_SPACE): Removed.
766         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
767         (STACK_BOUNDARY): Use default target to deceide stack boundary.
768         * config/i386/i386-protos.h (ix86_cfun_abi): New.
769         (ix86_function_abi): Likewise.
770         (ix86_function_type_abi): Likewise.
771         (ix86_call_abi_override): Likewise.
772         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
773         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
774         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
775         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
776         specific defines.
777         (X86_64_REGPARM_MAX): New.
778         (X86_64_SSE_REGPARM_MAX): New.
779         (X64_REGPARM_MAX): New.
780         (X64_SSE_REGPARM_MAX): New.
781         (X86_32_REGPARM_MAX): New.
782         (X86_32_SSE_REGPARM_MAX): New.
783         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
784         (ix86_function_regparm): Handle user calling abi.
785         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
786         by DEFAULT_ABI versus SYSV_ABI check.
787         (ix86_reg_parm_stack_space): New.
788         (ix86_function_type_abi): New.
789         (ix86_call_abi_override): New.
790         (ix86_function_abi): New.
791         (ix86_cfun_abi): New.
792         (init_cumulative_args): Call abi specific initialization.
793         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
794         (function_arg_64): Extend SSE_REGPARM_MAX check.
795         (function_arg (): Remove TARGET_64BIT_MS_ABI.
796         (ix86_pass_by_reference): Likewise.
797         (ix86_function_value_regno_p): Likewise.
798         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
799         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
800         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
801         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
802         (setup_incoming_varargs_64): Adjust regparm for call abi.
803         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
804         (ix86_va_start): Likewise.
805         (ix86_gimplify_va_arg): Likewise.
806         (ix86_expand_prologue): Likewise.
807         (output_pic_addr_const): Likewise.
808         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
809         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
810         (x86_output_mi_thunk): Likewise.
811         (x86_function_profiler): Likewise.
812         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
813         (SYSV_ABI, MS_ABI): New constants.
814         (DEFAULT_ABI): New.
815         (init_regs): Add prototype of function in regclass.c file.
816         (OVERRIDE_ABI_FORMAT): New.
817         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
818         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
819         (OUTGOING_REG_PARM_STACK_SPACE): New.
820         (ix86_reg_parm_stack_space): New prototype.
821         (CUMULATIVE_ARGS): Add call_abi member.
822         (machine_function): Add call_abi member.
823         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
824         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
825
826 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
827
828         PR target/34879
829         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
830         (avr_builtin_setjmp_frame_value): New function.
831         * config/avr/avr.md (nonlocal_goto_receiver): Define.
832         (nonlocal_goto): Define.
833
834 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
835
836         * config/mips/mips.c (mips_emit_loadgp): Return early if
837         there is nothing do to, otherwise emit a blockage if
838         !TARGET_EXPLICIT_RELOCS || crtl->profile.
839         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
840
841 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
842
843         * configure.ac: Drop unneeded backslash ending up in config.in.
844         * acinclude.m4: Likewise.
845         * config.in: Regenerate.
846
847 2008-05-26  Jan Hubicka  <jh@suse.cz>
848
849         * predict.c (maybe_hot_frequency_p): Break out of...
850         (maybe_hot_bb_p): ... here.
851         (maybe_hot_edge_p): New.
852         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
853         * basic-block.h (maybe_hot_edge_p): Declare.
854
855 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
856
857         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
858         (*cmpfp_<mode>_cc): Ditto.
859         (*fp_jcc_8<mode>_387): Ditto.
860         (*fop_<MODEF:mode>_2_i387): Ditto.
861         (*fop_<MODEF:mode>_3_i387): Ditto.
862         (*fop_xf_2_i387): Ditto.
863         (*fop_xf_3_i387): Ditto.
864
865 2008-06-02  Tomas Bily  <tbily@suse.cz>
866
867         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
868
869 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
870
871         * config/mips/mips.c (mips_valid_offset_p): New function.
872         (mips_valid_lo_sum_p): Likewise.
873         (mips_classify_address): Use them.
874         (mips_force_address): New function.
875         (mips_legitimize_address): Use it.
876         * config/mips/mips.md (MOVE128): New mode iterator.
877         (movtf): Require TARGET_64BIT.  Remove empty strings.
878         (*movtf_internal): Rename to...
879         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
880         of "R" and use {,fp}{load,store} attributes instead of "multi".
881         Use a separate define_split.
882         (*movtf_mips16): New pattern.
883
884 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
885
886         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
887         * config/mips/mips.c (mips_expand_before_return): New function.
888         (mips_expand_epilogue): Call it.
889         * config/mips/mips.md (return): Turn into a define_expand.
890         (*return): New insn.
891
892 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
893
894         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
895         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
896         functions.  Do not emit uses and clobbers of CONCATs; individually
897         use and clobber their operands.
898         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
899         gen_clobber, emit_use and gen_use.
900         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
901         (expand_builtin_return): Likewise.
902         * cfgbuild.c (count_basic_blocks): Likewise.
903         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
904         * explow.c (emit_stack_restore): Likewise.
905         * expmed.c (extract_bit_field_1): Likewise.
906         * expr.c (convert_move, emit_move_complex_parts): Likewise.
907         (emit_move_multi_word, store_constructor): Likewise.
908         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
909         (thread_prologue_and_epilogue_insns): Likewise.
910         * lower-subreg.c (resolve_simple_move): Likewise.
911         * optabs.c (widen_operand, expand_binop): Likewise.
912         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
913         * reload.c (find_reloads): Likewise.
914         * reload1.c (eliminate_regs_in_insn): Likewise.
915         * stmt.c (expand_nl_goto_receiver): Likewise.
916         * config/alpha/alpha.md (builtin_longjmp): Likewise.
917         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
918         * config/arm/arm.c (arm_load_pic_register): Likewise.
919         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
920         * config/arm/arm.md (untyped_return): Likewise.
921         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
922         * config/avr/avr.c (expand_prologue): Likewise.
923         * config/bfin/bfin.c (do_unlink): Likewise.
924         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
925         * config/cris/cris.c (cris_expand_prologue): Likewise.
926         * config/darwin.c (machopic_indirect_data_reference): Likewise.
927         (machopic_legitimize_pic_address): Likewise.
928         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
929         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
930         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
931         (ix86_expand_convert_uns_didf_sse): Likewise.
932         (ix86_expand_vector_init_general): Likewise.
933         * config/ia64/ia64.md (eh_epilogue): Likewise.
934         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
935         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
936         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
937         (config/iq2000/iq2000.c): Likewise.
938         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
939         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
940         (builtin_longjmp): Likewise.
941         * config/mn10300/mn10300.md (call, call_value): Likewise.
942         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
943         * config/pdp11/pdp11.md (abshi2): Likewise.
944         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
945         * config/s390/s390.c (s390_emit_prologue): Likewise.
946         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
947         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
948         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
949         * config/sh/sh.c (prepare_move_operands): Likewise.
950         (output_stack_adjust, sh_expand_epilogue): Likewise.
951         (sh_set_return_address, sh_expand_t_scc): Likewise.
952         * config/sparc/sparc.c (load_pic_register): Likewise.
953         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
954         * config/spu/spu.c (spu_expand_epilogue): Likewise.
955         * config/v850/v850.c (expand_epilogue): Likewise.
956
957 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
958
959         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
960         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
961         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
962         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
963         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
964         stack pointer register.
965         (output_movhi): Remove code for interrupt specific writing to the 
966         stack pointer register.
967
968 2008-05-31  Richard Guenther  <rguenther@suse.de>
969
970         PR tree-optimization/34244
971         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
972         (tree_expr_nonzero_warnv_p): Likewise.
973         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
974         ssa_name_nonnegative_p.
975         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
976         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
977         not tree_expr_nonzero_warnv_p.
978
979         PR tree-optimization/36262
980         Revert
981         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
982
983         PR tree-optimization/34244
984         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
985         (record_numbers_of_iterations): New function.
986         (execute_vrp): Cache the numbers of iterations of loops.
987         * tree-scalar-evolution.c (scev_reset_except_niters):
988         New function.
989         (scev_reset): Use scev_reset_except_niters.
990         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
991
992 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
993
994         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
995         __WORKAROUND_RETS when appropriate.
996
997 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
998
999         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1000         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1001         mode iterator.
1002         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1003         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1004         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1005         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1006         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1007         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1008         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1009         *fop_df_1_sse insn patterns using MODEF mode iterator.
1010         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1011         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1012         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1013         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1014         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1015         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1016         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1017         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1018         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1019         (*fop_xf_5_i387): Ditto.
1020         (*fop_xf_6_i387): Ditto.
1021
1022 2008-05-30  Richard Guenther  <rguenther@suse.de>
1023
1024         * builtins.c (build_string_literal): Avoid generating
1025         a non-gimple_val result.
1026
1027 2008-05-30  DJ Delorie  <dj@redhat.com>
1028
1029         * exec-tool.in: Use an environment variable (private) instead of a
1030         file (shared) as a semaphore, so as to not break parallel builds.
1031
1032 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1033
1034         * optabs.c (maybe_encapsulate_block): Remove.
1035         (emit_libcall_block): Adjust accordingly.
1036         * optabs.h (maybe_encapsulate_block): Remove prototype.
1037
1038         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1039         Don't use maybe_encapsulate_block.
1040
1041 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1042
1043         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1044         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1045         rtx is a SYMBOL_REF before calling get_pool_constant.
1046
1047 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1048
1049         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1050
1051 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1052
1053         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1054         rather than OS names to choose INO_T_EQ definition.
1055         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1056         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1057
1058 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1059
1060         PR target/36348
1061         * config/darwin-f.c: New.
1062         * config/t-darwin: Added rule to build darwin-f.o.
1063         * config.gcc: Defined new variable, fortran_target_objs.
1064         (*-*-darwin*): Set fortran_target_objs.
1065         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1066         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1067         * configure: Regenerated.
1068
1069 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1070
1071         PR target/35771
1072         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1073         canonical type if needed.
1074
1075 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1076
1077         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1078
1079 2008-05-29  Richard Guenther  <rguenther@suse.de>
1080
1081         PR tree-optimization/36343
1082         PR tree-optimization/36346
1083         PR tree-optimization/36347
1084         * tree-flow.h (clobber_what_p_points_to): Declare.
1085         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1086         pointed-to variable is dereferenced is irrelevant to whether
1087         the pointer can access the pointed-to variable.
1088         (clobber_what_p_points_to): New function.
1089         * tree-ssa-alias.c (set_initial_properties): Use it.
1090         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1091         call clobber check for NMTs.
1092
1093 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1094         
1095         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1096         for printing gcov_type.
1097
1098 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1099
1100         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1101         and the eh region information.
1102         * value-prof.c (gimple_move_stmt_histograms): New function.
1103         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1104
1105 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1106
1107         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1108
1109 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1110
1111         * value-prof.c (tree_ic_transform): Print counts.
1112         * tree-profile.c (tree_gen_ic_func_profiler):
1113         Clear __gcov_indreict_call_callee variable to avoid misattribution
1114         of the profile.
1115
1116 2008-05-28  Rafael Espindola  <espindola@google.com>
1117
1118         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1119         invalid sharing.
1120
1121 2008-05-28  Richard Guenther  <rguenther@suse.de>
1122
1123         PR tree-optimization/36339
1124         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1125         and clobbering code out of the loop.
1126
1127 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1128
1129         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1130         letters defined.
1131
1132         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1133         s390_contiguous_bitmask_p, s390_symref_operand_p,
1134         s390_check_symref_alignment, s390_reload_larl_operand,
1135         s390_reload_symref_address): New functions.
1136         (s390_branch_condition_mnemonic): Support compare and branch
1137         instructions.
1138         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1139         and 'W' constraints.
1140         (s390_secondary_reload): Add secondary reloads for unaligned
1141         symbol refs or symbol refs to floating point or QI/TI mode
1142         integer values.
1143         (legitimate_address_p): Accept symbol references as addresses.
1144         (s390_expand_insv): Use rotate and insert selected bits
1145         instruction for insv when building for z10.
1146         (print_operand_address): Handle symbol ref addresses.
1147         (print_operand): Output modifier 'c' added for signed byte values.
1148         (s390_encode_section_info): Mark symbol refs with
1149         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1150
1151         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1152         (length attribute): RRF, RRR have 4 byte length.
1153         (FPALL, INTALL): New mode iterators added.
1154         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1155         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1156         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1157         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1158         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1159         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1160         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1161         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1162         instructions.
1163         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1164         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1165         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1166         reload<INTALL:mode><P:mode>_toreg_z10,
1167         reload<FPALL:mode><P:mode>_tomem_z10,
1168         reload<FPALL:mode><P:mode>_toreg_z10,
1169         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1170         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1171         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1172         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1173         definition.
1174         (movmem, clrmem, cmpmem): New splitters added.
1175
1176         * config/s390/predicates.md (larl_operand): Use
1177         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1178         SYMBOL_REF_ALIGN1_P.
1179         (s390_signed_integer_comparison,
1180         s390_unsigned_integer_comparison): New predicates.
1181
1182         * config/s390/s390-protos.h (s390_check_symref_alignment,
1183         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1184         s390_reload_symref_address,
1185         s390_compare_and_branch_condition_mask): Prototypes added.
1186
1187         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1188         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1189         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1190
1191 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1192
1193         * config/s390/s390.c (z10_cost): New cost function for z10.
1194         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1195         (s390_issue_rate): Adjust issue rate for z10.
1196         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1197         (processor_flags): Add PF_Z10.
1198         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1199         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1200         * gcc/config.gcc: Add z10.
1201
1202 2008-05-28  Richard Guenther  <rguenther@suse.de>
1203
1204         PR tree-optimization/36291
1205         * tree-flow. h (struct gimple_df): Remove var_anns member.
1206         * tree-flow-inline.h (gimple_var_anns): Remove.
1207         (var_ann): Simplify.
1208         * tree-dfa.c (create_var_ann): Simplify.
1209         (remove_referenced_var): Clear alias info from var_anns of globals.
1210         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1211         (delete_tree_ssa): Clear alias info from var_anns of globals.
1212         Do not free var_anns.
1213         (var_ann_eq): Remove.
1214         (var_ann_hash): Likewise.
1215
1216 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1217
1218         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1219         and loongson2f entries.
1220         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1221         * config/mips/mips.h (processor_type): Add Loongson-2E
1222         and Loongson-2F entries.
1223         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1224         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1225         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1226         * doc/invoke.texi (MIPS Options): Document loongson2e
1227         and loongson2f processor names.
1228
1229 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1230
1231         PR target/35767
1232         PR target/35771
1233         * config/i386/i386.c (ix86_function_arg_boundary): Use
1234         alignment of canonical type.
1235         (ix86_expand_vector_move): Check unaligned memory access for
1236         all SSE modes.
1237
1238 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1239
1240         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1241         Moved to the front of file.
1242
1243 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1244             H.J. Lu  <hongjiu.lu@intel.com>
1245
1246         * dwarf2out.c (current_fde): New.
1247         (add_cfi): Use it.
1248         (lookup_cfa:): Likewise.
1249         (dwarf2out_end_epilogue): Likewise.
1250         (dwarf2out_note_section_used): Likewise.
1251
1252 2008-05-27  Michael Matz  <matz@suse.de>
1253
1254         PR c++/27975
1255         * c.opt (Wenum-compare): New warning option.
1256         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1257
1258 2008-05-27  Michael Matz  <matz@suse.de>
1259
1260         PR middle-end/36326
1261         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1262         non-BLKmode types.
1263         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1264         into memory as tail calls.
1265
1266 2008-05-27  Richard Guenther  <rguenther@suse.de>
1267
1268         PR tree-optimization/36339
1269         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1270         pointers cause all addressable variables to be call clobbered.
1271
1272 2008-05-27  Richard Guenther  <rguenther@suse.de>
1273
1274         PR tree-optimization/36245
1275         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1276
1277 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1278
1279         * config/s390/s390.md: Replace all occurences of the 'm'
1280         constraint with 'RT'.
1281
1282 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1283
1284         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1285         definitions added.
1286         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1287         "*movdi_64".
1288         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1289         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1290         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1291
1292 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1293
1294         * reload.c: (find_reloads): Skip alternatives according to the
1295         "enabled" attribute. Constify the constraint variable.
1296         * recog.c (get_attr_enabled): Add default implementation.
1297         (extract_insn): Set the alternative_enabled_p array
1298         in the recog_data struct.
1299         (preprocess_constraints, constrain_operands): Skip
1300         alternatives according to the "enabled" attribute
1301         * recog.h (struct recog_data): New field alternative_enabled_p.
1302         (skip_alternative): New inline function.
1303         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1304         (record_reg_classes): Skip alternative according to the
1305         "enabled" attribute.
1306
1307         * doc/md.texi: Add documention for the "enabled" attribute.
1308
1309 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1310
1311         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1312         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1313         constraint with TARGET_MEM_CONSTRAINT.
1314         * recog.c (asm_operand_ok, preprocess_constraints,
1315         constrain_operands): Likewise.
1316         * regclass.c (record_reg_classes): Likewise.
1317         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1318         * reload1.c (maybe_fix_stack_asms): Likewise.
1319         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1320         * recog.h: Adjust comment.
1321         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1322         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1323         * doc/md.texi: Add a note to description of 'm' constraint.
1324         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1325
1326 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1327
1328         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1329         that the bitfield is of integral type before testing its precision.
1330
1331 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1332             Sa Liu  <saliu@de.ibm.com> 
1333
1334         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1335         __modti3, __udivti3, __umodti3 and __udivmodti4.
1336         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1337         that implement TImode mul and div functions.
1338         * config/spu/multi3.c: New. Implement __multi3.
1339         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1340         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1341         functions on SPU.
1342
1343 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1344
1345         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1346         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1347         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1348         tls_sysv_suffix): New mode and mode attribute iterators.
1349         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1350         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1351         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1352         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1353         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1354         iterators.
1355
1356 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1357
1358         PR tree-optimization/36329
1359         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1360         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1361         * cgraphbuild.c (initialize_inline_failed): Use the latter
1362         macro in lieu of the former.
1363         * ipa-inline.c (cgraph_mark_inline): Likewise.
1364         (cgraph_decide_inlining_of_small_function): Likewise.
1365         (cgraph_decide_inlining): Likewise.
1366         (cgraph_decide_inlining_incrementally): Likewise.
1367
1368 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1369             Anatoly Sokolov  <aesok@post.ru>
1370
1371         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1372         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1373         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1374         optimization for 'avr6' architecture.
1375
1376 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1377
1378         PR target/34932
1379         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1380
1381 2008-05-26  Richard Guenther  <rguenther@suse.de>
1382
1383         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1384         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1385
1386 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1387
1388         PR middle-end/36253
1389         * caller-save.c (insert_restore): Verify alignment of spill space.
1390         (insert_save): Likewise.
1391         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1392         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1393         (STACK_SLOT_ALIGNMENT): Likewise.
1394         * function.c (LOCAL_ALIGNMENT): Removed.
1395         (get_stack_local_alignment): New.
1396         (assign_stack_local): Use it.  Set alignment on stack slot.
1397         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1398         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1399         (STACK_SLOT_ALIGNMENT): New.
1400         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1401         stack slot in XFmode.
1402
1403         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1404
1405 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1406
1407         PR/36321
1408         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1409         argument operand in rax isn't removed.
1410
1411 2008-05-26  Richard Guenther  <rguenther@suse.de>
1412
1413         PR middle-end/36300
1414         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1415         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1416
1417 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1418
1419         PR bootstrap/36331
1420         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1421
1422 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1423
1424         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1425         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1426
1427 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1428
1429         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1430         build a trampoline if we don't want one.
1431         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1432         return zero for nested functions if we don't want a trampoline.
1433
1434 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1435
1436         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1437
1438 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1439
1440         PR fortran/18428
1441         * c.opt: Removed undocumented option '-lang-fortran'.
1442         * c-common.h: Removed global variable 'lang_fortran'.
1443         * c-opts.c (c_common_handle_option): Removed code to handle
1444         option '-lang-fortran'. Updated includes.
1445         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1446         definition of '__GFORTRAN__'.
1447         (define__GNUC__): Reimplemented to use BASEVER and
1448         cpp_define_formatted.
1449         (builtin_define_with_value_n): Removed.
1450         * c-incpath.h: Renamed to ...
1451         * incpath.h: ... this.
1452         * c-incpath.c: Renamed to ...
1453         * incpath.c: ... this. Updated includes.
1454         * fix-header.c: Updated includes.
1455         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1456         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1457         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1458
1459 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1460
1461         * tree.h: Update the table of flags used on tree nodes.
1462         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1463         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1464         (FORCED_LABEL): Add access check.
1465         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1466         (ASM_INPUT_P): Likewise.
1467         (ASM_VOLATILE_P): Likewise.
1468         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1469         (OMP_SECTION_LAST): Access private_flag directly.
1470         (OMP_RETURN_NOWAIT): Likewise.
1471         (OMP_PARALLEL_COMBINED): Likewise.
1472         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1473         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1474         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1475         deprecated_flag directly.
1476
1477 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1478
1479         * final.c (frame_pointer_needed): Removed.
1480         * flags.h (frame_pointer_needed): Likewise.
1481
1482         * function.h (rtl_data): Add frame_pointer_needed.
1483         (frame_pointer_needed): New.
1484
1485 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1486
1487         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1488
1489 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1490
1491         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1492         SRC is a REG.
1493
1494 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1495
1496         * c-common.c (strip_array_types): Move function to..
1497         * tree.c: ..here.
1498         (get_inner_array_type): Delete.
1499         * c-common.h (strip_array_types): Move declaration to..
1500         * tree.h: ..here.
1501         (get_inner_array_type): Delete.
1502         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1503         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1504         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1505         * config/pa/pa.c (emit_move_sequence): Likewise.
1506
1507 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1508
1509         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1510         attribute to 34.
1511
1512 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1513
1514         * function.c: Include target hook for nonlocal_goto frame value.
1515
1516 2008-05-24  Richard Guenther  <rguenther@suse.de>
1517
1518         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1519         variable can be only accessed through a pointer or a union.
1520
1521 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1522
1523         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1524         * doc/extend.texi: Likewise.
1525
1526 2008-05-23  DJ Delorie  <dj@redhat.com>
1527
1528         * config/m32c/jump.md (untyped_call): Add.
1529
1530         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1531         for A24 to PSImode.
1532         (m32c_address_cost): Detail costs for indirect offsets.
1533
1534 2008-05-23  Rafael Espindola  <espindola@google.com>
1535
1536         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1537         if a node is a SUBREG.
1538         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1539         is a SUBREG.
1540
1541 2008-05-23  Paul Brook  <paul@codesourcery.com>
1542             Carlos O'Donell  <carlos@codesourcery.com>
1543
1544         * doc/extend.texi: Clarify use of __attribute__((naked)).
1545         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1546         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1547         * function.c (use_register_for_decl): Use
1548         targetm.calls.allocate_stack_slots_for_args.
1549         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1550         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1551         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1552
1553 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1554
1555         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1556
1557 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1558
1559         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1560         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1561         is only rounded once.
1562
1563 2008-05-23  Richard Guenther  <rguenther@suse.de>
1564
1565         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1566
1567 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1568             Jakub Jelinek  <jakub@redhat.com>
1569
1570         PR target/36079
1571         * configure.ac: Handle --enable-cld.
1572         * configure: Regenerated.
1573         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1574         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1575         (ix86_current_function_needs_cld): New define.
1576         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1577         (cld): New isns pattern.
1578         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1579         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1580         * config/i386/i386.opt (mcld): New option.
1581         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1582         TARGET_CLD and ix86_current_function_needs_cld.
1583         (override_options): Use -mcld by default for 32-bit code if
1584         USE_IX86_CLD.
1585
1586         * doc/install.texi (Options specification): Document --enable-cld.
1587         * doc/invoke.texi (Machine Dependent Options)
1588         [i386 and x86-64 Options]: Add -mcld option.
1589         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1590
1591 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1592         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1593         (return_in_memory_64): Likewise.
1594         (return_in_memory_ms_64): Likewise.
1595
1596 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1597
1598         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1599         * builtins.c (fold_builtin_fpclassify): New.
1600         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1601         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1602         * c-common.c (handle_type_generic_attribute): Adjust to accept
1603         fixed arguments before an elipsis.
1604         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1605         * doc/extend.texi: Document __builtin_fpclassify.
1606
1607 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1608
1609         * omp-low.c (gate_expand_omp_ssa): Remove.
1610         (pass_expand_omp_ssa): Remove.
1611         (gate_expand_omp): Do not check for flag_openmp_ssa.
1612         * common.opt (-fopenmp-ssa): Remove.
1613         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1614
1615 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1616
1617         * config/sh/sh.opt (mfixed-range): New option.
1618         * config/sh/sh-protos.h (sh_fix_range): Declare.
1619         * config/sh/sh.c (sh_fix_range): New function.
1620         * config/sh/sh.h (sh_fixed_range_str): Declare.
1621         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1622         is not empty.
1623         * doc/invoke.texi (SH Options): Document -mfixed-range.
1624
1625 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1626
1627         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1628         it before the redeclaration.
1629
1630 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1631
1632         * config/avr/avr.c (get_sequence_length): Add new function.
1633         (expand_prologue, expand_epilogue): Remove duplicate code.
1634
1635 2008-05-22  Rafael Espindola  <espindola@google.com>
1636
1637         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1638         sharing.
1639
1640 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1641
1642         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1643         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1644
1645         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1646         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1647         (vect_update_misalignment_for_peel): Likewise.
1648         (vector_alignment_reachable_p): Likewise.
1649         * tree-vect-transform.c (vectorizable_load): Likewise.
1650         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1651         (get_vectype_for_scalar_type): Pass mode of scalar_type
1652         to UNITS_PER_SIMD_WORD.
1653
1654         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1655         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1656         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1657         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1658         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1659
1660 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1661
1662         PR tree-optimization/36293
1663         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1664         if the first load must be skipped because of a gap.
1665
1666 2008-05-22  Richard Guenther  <rguenther@suse.de>
1667
1668         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1669         more cases of offset disambiguation that is possible if
1670         strict-aliasing rules apply.
1671         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1672         for basic offset and type-based disambiguation.
1673
1674 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1675
1676         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1677         ix86_expand_vector_set on V16QImode for SSE4.1.
1678
1679 2008-05-21  Tom Tromey  <tromey@redhat.com>
1680
1681         * c.opt (Wimport): Mark as undocumented.
1682         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1683         -Wno-import.
1684         (Warning Options): Likewise.
1685         * doc/cppopts.texi: Don't mention -Wimport.
1686
1687 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1688
1689         PR tree-optimization/36287
1690         PR tree-optimization/36286
1691         * lambda-code.c (build_access_matrix): Do not use the loop->num
1692         for computing the number of induction variables: use the loop depth
1693         instead.
1694
1695 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1696
1697         PR/36280
1698         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1699         option -f(no-)leading-underscore.
1700
1701 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1702
1703         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1704         GET_MODE_NUNITS (mode).
1705
1706 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1707
1708         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1709         (-mmulhw): Add 464 to description.
1710         (-mdlmzb): Likewise.
1711         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1712         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1713         464fp entries.
1714         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1715         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1716         * config/rs6000/rs6000.md: Update comments for 464.
1717
1718 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1719
1720         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1721
1722 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1723
1724         * config/i386/sse.md (vec_extractv4sf): Removed.
1725         (vec_extractv2df): Likewise.
1726         (vec_extractv2di): Likewise.
1727         (vec_extractv4si): Likewise.
1728         (vec_extractv8hi): Likewise.
1729         (vec_extractv16qi): Likewise.
1730         (vec_extract<mode>): New.
1731
1732 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1733
1734         * config/i386/sse.md (vec_setv4sf): Removed.
1735         (vec_setv2df): Likewise.
1736         (vec_setv2di): Likewise.
1737         (vec_setv4si): Likewise.
1738         (vec_setv8hi): Likewise.
1739         (vec_setv16qi): Likewise.
1740         (vec_set<mode>): New.
1741
1742 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1743
1744         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1745         goto for vec_concat and vec_interleave.
1746
1747 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1748
1749         * config/i386/sse.md (vec_initv4sf): Removed.
1750         (vec_initv2df): Likewise.
1751         (vec_initv2di): Likewise.
1752         (vec_initv4si): Likewise.
1753         (vec_initv8hi): Likewise.
1754         (vec_initv16qi): Likewise.
1755         (vec_init<mode>): New.
1756
1757 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1758
1759         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1760
1761 2008-05-21  Tom Tromey  <tromey@redhat.com>
1762
1763         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1764         (zone_find_object_offset): Likewise.
1765         (gt_ggc_m_S): Likewise.
1766         (highest_bit): Likewise.
1767         * ggc-page.c (gt_ggc_m_S): New function.
1768         * stringpool.c (string_stack): Remove.
1769         (init_stringpool): Update.
1770         (ggc_alloc_string): Use ggc_alloc.
1771         (maybe_delete_ident): New function.
1772         (ggc_purge_stringpool): Likewise.
1773         (gt_ggc_m_S): Remove.
1774         * ggc-common.c (ggc_protect_identifiers): New global.
1775         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1776         ggc_protect_identifiers.
1777         * ggc.h (ggc_protect_identifiers): Declare.
1778         (gt_ggc_m_S): Update.
1779         (ggc_purge_stringpool): Declare.
1780         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1781         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1782         special case.
1783         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1784
1785 2008-05-21  David S. Miller  <davem@davemloft.net>
1786
1787         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1788         tmake_file.
1789
1790 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1791
1792         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1793         once finished.
1794
1795 2008-05-20  David Daney  <ddaney@avtrex.com>
1796
1797         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1798         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1799         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1800         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1801         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1802         (atomic_hiqi_op): New define_code_iterator.
1803         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1804         mips_expand_compare_and_swap_12.
1805         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1806         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1807         (sync_<optab><mode>, sync_old_<optab><mode>,
1808         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1809         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1810         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1811         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1812         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1813         (test_and_set_12): New insn.
1814         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1815         sync_new_<optab><mode>, sync_old_nand<mode>,
1816         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1817         clobber to operand 0 for SI and DI mode insns.
1818         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1819         mips_gen_fn_4): New typedefs.
1820         (mips_gen_fn_ptrs): Define new union type.
1821         (mips_expand_compare_and_swap_12): Remove declaration.
1822         (mips_expand_atomic_qihi): Declare function.
1823         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1824         (mips_expand_atomic_qihi): ... this.  Use new generator function
1825         parameter.
1826         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1827         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1828         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1829         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1830         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1831         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1832         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1833         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1834         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1835         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1836         New macros.
1837
1838 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1839
1840         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1841         the missing break.
1842
1843 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1844
1845         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1846         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1847         (avr_attribute_table): Add 'OS_main' function attribute.
1848         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1849         functions with 'OS_main' attribute.
1850
1851 2008-05-20  Richard Guenther  <rguenther@suse.de>
1852
1853         PR tree-optimization/35204
1854         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1855         helper, split out from ...
1856         (DFS): ... here.  Make the DFS walk non-recursive.
1857
1858 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1859             Jan Sjodin  <jan.sjodin@amd.com>
1860
1861         PR tree-optimization/36181
1862         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1863         (parallelize_loops): Don't parallelize when the loop has vector
1864         phi nodes.
1865
1866 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1867             Sebastian Pop  <sebastian.pop@amd.com>
1868
1869         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1870         matrix, and never look at the tree representation of the memory
1871         accesses.
1872         (linear_transform_loops): Computes parameters and access matrices.
1873         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1874         when fails.
1875         (access_matrix_get_index_for_parameter): New.
1876         * tree-data-ref.h (struct access_matrix): New.
1877         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1878         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1879         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1880         am_vector_index_for_loop): New.
1881         (struct data_reference): Add field access_matrix.
1882         (DR_ACCESS_MATRIX): New.
1883         (compute_data_dependences_for_loop): Update declaration.
1884         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1885         * lambda.h (lambda_vector_vec_p): Declared.
1886         * lambda-code.c: Depend on pointer-set.h.
1887         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1888         av_for_af_base, av_for_af, build_access_matrix,
1889         lambda_compute_access_matrices): New.
1890         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1891
1892 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1893
1894         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1895         $SOURCEDIR/include.
1896
1897 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1898             Sebastian Pop  <sebastian.pop@amd.com>
1899
1900         PR tree-optimization/36206
1901         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1902         FOLD_CONVERSIONS.
1903         (instantiate_scev_1): Rename flags to fold_conversions.
1904         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1905         outeside instantiation_loop.
1906         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1907         (evolution_function_is_affine_or_constant_p): Removed.
1908         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1909         instantiate_scev.
1910         (analyze_siv_subscript): Pass in the loop nest number.
1911         Call evolution_function_is_affine_in_loop instead of 
1912         evolution_function_is_affine_p.
1913         (analyze_overlapping_iterations): Pass in the loop nest number.
1914
1915 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1916             Sebastian Pop  <sebastian.pop@amd.com>
1917
1918         PR tree-optimization/36206
1919         * tree-chrec.h (chrec_fold_op): New.
1920         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1921         and other trees.
1922
1923 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1924
1925         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1926         (DIRS_EQ): New.
1927         (remove_duplicates): Do not set inode on non-inode systems.
1928         Use DIRS_EQ.
1929
1930 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1931
1932         * config.gcc (tm_file): Update comments about relative pathnames.
1933
1934 2008-05-20  Richard Guenther  <rguenther@suse.de>
1935
1936         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1937         * tree-ssa-sccvn.c (process_scc): Likewise.
1938         * tree-ssa-sink.c (execute_sink_code): Likewise.
1939         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1940         * tree-vrp.c (process_assert_insertions): Likewise.
1941         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1942         (perform_tree_ssa_dce): Likewise.
1943         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1944         (dump_dominator_optimization_stats): Likewise.
1945         * tree-vectorizer.c (vectorize_loops): Likewise.
1946
1947 2008-05-20  Richard Guenther  <rguenther@suse.de>
1948
1949         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1950
1951 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1952
1953         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1954         (ix86_i386elf_return_in_memory): Likewise.
1955         (ix86_i386interix_return_in_memory): Likewise.
1956         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1957         (SUBTARGET_RETURN_IN_MEMORY): New.
1958         * config/i386/i386elf.h: Likewise.
1959         * config/i386/ptx4-i.h: Likewise.
1960         * config/i386/sol2-10.h: Likewise.
1961         * config/i386/sysv4.h: Likewise.
1962         * config/i386/vx-common.h: Likewise.
1963         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1964         * config/i386/i386.c (ix86_return_in_memory): Made static and
1965         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1966         (ix86_i386elf_return_in_memory): Removed.
1967         (ix86_i386interix_return_in_memory): Removed.
1968         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1969         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1970
1971 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1972
1973         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1974
1975 2008-05-19  Xinliang David Li  <davidxl@google.com>
1976
1977         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1978         * opts.c: Ditto.
1979         * common.opt: Ditto.
1980         * doc/invoke.texi: Ditto.
1981
1982 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1983
1984         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1985         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1986
1987 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1988
1989         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1990         sizes of operand array from 8/4 to 4/2.
1991         (ix86_expand_vector_init_general): Change size of operand array
1992         from 32 to 16.  Remove op0, op1 and half_mode.
1993
1994 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1995
1996         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1997         (ix86_expand_vector_init_interleave): Likewise.
1998         (ix86_expand_vector_init_general): Use them.  Assert
1999         word_mode == SImode when n_words == 4.
2000
2001 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2002
2003         * config/i386/i386.c (ix86_secondary_reload): New static function.
2004         (TARGET_SECONDARY_RELOAD): New define.
2005         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2006         * config/i386/i386.md (reload_outqi): Remove.
2007
2008 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2009
2010         PR middle-end/35509
2011         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2012         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2013         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2014         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2015         (fold_builtin_1): Likewise.
2016         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2017         c-common.c (check_builtin_function_arguments): Handle
2018         BUILT_IN_ISINF_SIGN.
2019         * doc/extend.texi: Document __builtin_isinf_sign.
2020         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2021
2022 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2023
2024         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2025         EH cleanup at the end of the pass, search for those that have been
2026         turned into forwarder blocks and do the cleanup on their successor.
2027
2028 2008-05-18  Richard Guenther  <rguenther@suse.de>
2029
2030         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2031         pointers to sizetype and vice versa.
2032
2033 2008-05-18 Xinliang David Li   <davidxl@google.com>
2034
2035         * gcc/tree-ssa-dce.c: Coding style fix.
2036         (check_pow): Documentation comment. 
2037         (check_log): Documenation comment. Coding style fix.
2038         (is_unnecessary_except_errno_call): Ditto.
2039         (gen_conditions_for_pow): Ditto.
2040         (gen_conditions_for_log): Ditto.
2041         (gen_shrink_wrap_conditions): Ditto.
2042         (shrink_wrap_one_built_in_calls): Ditto.
2043         * gcc/doc/invoke.texi: Better documentation string.
2044         * ChangeLog: Fix wrong change log entries from 
2045         May 17 checkin on function call DCE.
2046
2047 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2048
2049         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2050
2051 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2052
2053         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2054         * df-problems.c (simulation routines): Fixed block comment to
2055         properly say how to add forwards scanning functions.
2056         
2057 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2058
2059         * tree-inline.c (setup_one_parameter): Remove dead code.
2060
2061 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2062
2063         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2064         a BIT_AND_EXPR only for an INTEGER_TYPE.
2065
2066 2008-05-17 Xinliang David Li   <davidxl@google.com>
2067
2068         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2069         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2070         functions to check for eliminating math functions that are pure 
2071         except for setting errno.
2072         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2073         general condition expressions for shrink-wrapping pow/log calls.
2074         (gen_shrink_wrap_conditions): Ditto.
2075         (shrink_wrap_one_built_in_call): Ditto.
2076         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2077         (mark_operand_necessary): If debugging, output if OP is necessary.
2078         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2079         unnecessary.
2080         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2081         opt level >= 2.
2082         * gcc/common.opt: New user flag -ftree-builtin-dce.
2083         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2084
2085 2008-05-16  David S. Miller  <davem@davemloft.net>
2086
2087         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2088         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2089
2090 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2091
2092         PR target/36246
2093         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2094
2095 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2096
2097         * ifcvt.c (dead_or_predicable): Rename
2098         df_simulate_one_insn_backwards to df_simulate_one_insn.
2099         * recog.c (peephole2_optimize): Ditto.
2100         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2101         Ditto.
2102         * df.h: Rename df_simulate_one_insn_backwards to
2103         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2104         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2105         scanning of defs and uses.
2106         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2107         (df_simulate_one_insn_forwards): Removed.
2108
2109 2008-05-16  Doug Kwan  <dougkwan@google.com>
2110
2111         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2112         QNaN & SNaN.
2113         (real_from_string): Handle NaNs and Inf as approriate.
2114
2115 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2116
2117         * doc/gty.texi (Source Files Containing Type Information): Note
2118         that headers should appear first in the gtfiles list.
2119
2120 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2121
2122         * tree.def (COND_EXEC): Properly documented this code.
2123
2124 2008-05-16  Diego Novillo  <dnovillo@google.com>
2125
2126         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2127         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2128         the new field.
2129
2130 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2131
2132         * tree-ssa-dse (max_stmt_uid): Removed.
2133         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2134         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2135         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2136         * function.h (cfun.last_stmt_uid): New field.
2137         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2138         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2139         New functions.
2140         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2141         (create_stmt_ann): Initialize the ann->uid field.
2142         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2143         with new calls.
2144         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2145
2146 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2147
2148         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2149         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2150         (init_empty_tree_cfg): Call it.
2151
2152 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2153
2154         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2155         Update all users.
2156
2157 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2158
2159         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2160         * tree-dump.c (dump_options): New verbose option.
2161         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2162         Add verbose dump.
2163         * tree-pass.h (TDF_VERBOSE): New dump flag.
2164         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2165         (tree-flow.h): Added include.
2166         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2167
2168 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2169
2170         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2171
2172         From Jie Zhang  <jie.zhang@analog.com>
2173         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2174         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2175         mcpu=bf561-none and mcpu=bf561-0.2.
2176         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2177         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2178         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2179         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2180         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2181         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2182         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2183         option.
2184         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2185         (cputype_selected): Remove.
2186         (bfin_handle_option): Don't use cputype_selected.
2187         (override_options): When no mcpu option, enable all workarounds.
2188         Don't use bfin_workarounds.
2189         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2190         processor type.
2191         (DEFAULT_CPU_TYPE): Don't define.
2192
2193 2008-05-16  Richard Guenther  <rguenther@suse.de>
2194
2195         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2196         on deletion of the last stmt.
2197
2198 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2199
2200         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2201         V8HImode for SSE2 and V16QImode for SSE4.1.
2202
2203 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2204
2205         * cgraph.h (compute_inline_parameters): Made public.
2206         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2207         variable_generate_summary, function_write_summary,
2208         variable_write_summary, variable_read_summary.  Added generate_summary,
2209         write_summary, read_summary.
2210         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2211         pass_ipa_inline.function_generate_summary, to
2212         compute_inline_parameters. 
2213         * ipa-inline.c (compute_inline_parameters): Made public and added
2214         node parameter.
2215         (compute_inline_parameters_for_current): New function.
2216         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2217         (inline_generate_summary): Removed parameter and made to loop over
2218         all cgraph nodes.
2219         (pass_ipa_inline): Updated for new IPA_PASS structure.
2220         * passes.c (execute_ipa_summary_passes): Now is called once per
2221         pass rather than once per node*pass.
2222         
2223 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2224
2225         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2226         avr_have_mul_p, avr_asm_only_p): Remove variables.
2227         (avr_override_options): Remove initialization of removed variables.
2228         (avr_file_start):  Convert removed variables to fields of 
2229         'struct base_arch_s *avr_current_arch'. 
2230         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2231         (AVR_HAVE_MUL): (Ditto.).
2232         (AVR_HAVE_MOVW): (Ditto.).
2233         (AVR_HAVE_LPMX): (Ditto.). 
2234         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2235         avr_asm_only_p): Remove declaration.
2236
2237 2008-05-15  Diego Novillo  <dnovillo@google.com>
2238
2239         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2240         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2241
2242 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2243
2244         PR middle-end/36194
2245         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2246         Don't call record_truncated_value from here.
2247         (record_truncated_value): Turn it into a for_each_rtx callback.
2248         (record_truncated_values): New function.
2249         (combine_instructions): Call note_uses with record_truncated_values.
2250         Change name of check_conversion to check_promoted_subreg. 
2251
2252 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2253
2254         * doc/sourcebuild.texi: Document support for torture tests.
2255
2256 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2257
2258         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2259         to alternative 4 of operand 2.
2260
2261 2008-05-15  Richard Guenther  <rguenther@suse.de>
2262
2263         * tree-pass.h (current_pass): Declare.
2264         (get_pass_for_id): Likewise.
2265         * passes.c (passes_by_id, passes_by_id_size): New globals.
2266         (set_pass_for_id): New function.
2267         (get_pass_for_id): Likewise.
2268         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2269         (execute_function_todo): Flush per function statistics.
2270         * toplev.c (compile_file): Init statistics.
2271         (general_init): Do early statistics initialization.
2272         (finalize): Finish statistics.
2273         * statistics.h (statistics_early_init): Declare.
2274         (statistics_init): Likewise.
2275         (statistics_fini): Likewise.
2276         (statistics_fini_pass): Likewise.
2277         (statistics_counter_event): Likewise.
2278         (statistics_histogram_event): Likewise.
2279         * statistics.c: New file.
2280         * Makefile.in (OBJS-common): Add statistics.o.
2281         (statistics.o): Add dependencies.
2282         * doc/invoke.texi (-fdump-statistics): Document.
2283
2284         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2285         (insert): Likewise.
2286         (execute_pre): Use statistics_counter_event.
2287         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2288         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2289
2290 2008-05-15  Diego Novillo  <dnovillo@google.com>
2291
2292         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2293
2294         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2295         * tree-ssa-alias.c (new_type_alias): Remove references to
2296         sub-variables from comment.
2297         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2298
2299 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2300
2301         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2302         attribute to 1 only for insertps alternative.
2303
2304 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2305
2306         * config/bfin/bfin.md (loadbytes): New pattern.
2307         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2308         (bfin_init_builtins): Initialize it.
2309         (bdesc_1arg): Add it.
2310
2311 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2312
2313         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2314         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2315         * testsuite/lib/target-supports.exp: Add
2316         check_effective_target_fortran_integer_16.
2317
2318 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2319
2320         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2321         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2322         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2323         (TARGET_RETURN_IN_MEMORY): Define.
2324
2325 2008-05-15  Richard Guenther  <rguenther@suse.de>
2326
2327         PR middle-end/36244
2328         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2329         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2330         represent unmodifiable vars.
2331
2332 2008-05-15  Richard Guenther  <rguenther@suse.de>
2333
2334         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2335         INDIRECT_REF and TARGET_MEM_REF.
2336         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2337         TARGET_MEM_REF.
2338
2339 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2340             H.J. Lu  <hongjiu.lu@intel.com>
2341
2342         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2343         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2344         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2345         insn alternatives.  Add missing alternatives.
2346         (*vec_concatv2di_rex64_sse4_1): Likewise.
2347         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2348         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2349         Require TARGET_SSE.
2350
2351 2008-05-15  Richard Guenther  <rguenther@suse.de>
2352
2353         PR tree-optimization/36009
2354         PR tree-optimization/36204
2355         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2356         (determine_invariantness_stmt): Record the loop a store is
2357         always executed in.
2358         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2359         dependency.
2360
2361 2008-05-15  Richard Guenther  <rguenther@suse.de>
2362
2363         PR tree-optimization/34330
2364         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2365         through the pointer will alias the SMT.
2366
2367 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2368
2369         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2370
2371 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2372
2373         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2374
2375 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2376             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2377
2378         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2379         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2380         (vashl_optab): New optab for vector/vector shifts.
2381         (vashr_optab): Ditto.
2382         (vlshr_optab): Ditto.
2383         (vrotl_optab): Ditto.
2384         (vrotr_optab): Ditto.
2385         (optab_subtype): New enum for optab_for_tree_code call.
2386         (optab_for_tree_code): Add enum optab_subtype argument.
2387
2388         * optabs.c (optab_for_tree_code): Take an additional argument to
2389         distinguish between a vector shift by a scalar and vector shift by
2390         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2391         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2392         vector shift by a vector.
2393         (expand_widen_pattern_expr): Pass additional argument to
2394         optab_for_tree_code.
2395
2396         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2397         vrotl_optab, vrotr_optab.
2398
2399         * expr.c (expand_expr_real_1): Update calls to
2400         optab_for_tree_code to distinguish between vector shifted by a
2401         scalar and vector shifted by a vector.
2402         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2403         (supportable_narrowing_operation): Ditto.
2404         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2405         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2406         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2407         (vect_create_epilog_for_reduction): Ditto.
2408         (vectorizable_reduction): Ditto.
2409         (vectorizable_operation): Ditto.
2410         (vect_strided_store_supported): Ditto.
2411         (vect_strided_load_supported): Ditto.
2412         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2413         * expmed.c (expand_shift): Ditto.
2414
2415         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2416         scalar type.
2417         (ashr@var{m}3): Ditto.
2418         (vashl@var{m}3): Document new vector/vector shift standard name.
2419         (vashr@var{m}3): Ditto.
2420         (vlshr@var{m}3): Ditto.
2421         (vrotl@var{m}3): Ditto.
2422         (vrotr@var{m}3): Ditto.
2423
2424         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2425         (PPERM_INVERT): Ditto.
2426         (PPERM_REVERSE): Ditto.
2427         (PPERM_REV_INV): Ditto.
2428         (PPERM_ZERO): Ditto.
2429         (PPERM_ONES): Ditto.
2430         (PPERM_SIGN): Ditto.
2431         (PPERM_INV_SIGN): Ditto.
2432         (PPERM_SRC1): Ditto.
2433         (PPERM_SRC2): Ditto.
2434
2435         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2436         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2437         allows a memory operand to be the value being added, and split it
2438         to improve vectorization.
2439         (sse5_pmacsdqh_mem): Ditto.
2440         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2441         (sse5_mulv2div2di3_high): Ditto.
2442         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2443         (vec_pack_trunc_v4si): Ditto.
2444         (vec_pack_trunc_v2di): Ditto.
2445         (sse5_pcmov_<mode>): Remove code that tried to use use
2446         andps/andnps instead of pcmov.
2447         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2448         pmacsdqh instructions.
2449         (vec_widen_smult_lo_v4si): Ditto.
2450
2451         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2452         (PPERM_INVERT): Ditto.
2453         (PPERM_REVERSE): Ditto.
2454         (PPERM_REV_INV): Ditto.
2455         (PPERM_ZERO): Ditto.
2456         (PPERM_ONES): Ditto.
2457         (PPERM_SIGN): Ditto.
2458         (PPERM_INV_SIGN): Ditto.
2459         (PPERM_SRC1): Ditto.
2460         (PPERM_SRC2): Ditto.
2461         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2462         true/false tests.
2463         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2464         comparisons.
2465         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2466         says ignore whether the last reference is a memory operand.
2467
2468 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2469             Paolo Bonzini <bonzini at gnu dot org>
2470
2471         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2472         shift patterns.
2473
2474         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2475         (vlshr<mode>3): Rename from vlshr<mode>3.
2476         (vashr<mode>3): Rename from vashr<mode>3.
2477         (mulv4sf3): Change the names of vector shift patterns.
2478         (mulv4si3): Ditto.
2479         (negv4sf2): Ditt.
2480
2481         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2482         shift insns.
2483
2484         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2485         (SI_SHLHI): Ditto.
2486         (SI_SHL): Ditto.
2487         (SI_SHLI): Ditto.
2488         (SI_ROTH): Ditto.
2489         (SI_ROTHI): Ditto.
2490         (SI_ROT): Ditto.
2491         (SI_ROTI): Ditto.
2492         (SPU_RL_0): Ditto.
2493         (SPU_RL_1): Ditto.
2494         (SPU_RL_2): Ditto.
2495         (SPU_RL_3): Ditto.
2496         (SPU_RL_4): Ditto.
2497         (SPU_RL_5): Ditto.
2498         (SPU_RL_6): Ditto.
2499         (SPU_RL_7): Ditto.
2500         (SPU_SL_0): Ditto.
2501         (SPU_SL_1): Ditto.
2502         (SPU_SL_2): Ditto.
2503         (SPU_SL_3): Ditto.
2504         (SPU_SL_4): Ditto.
2505         (SPU_SL_5): Ditto.
2506         (SPU_SL_6): Ditto.
2507         (SPU_SL_7): Ditto.
2508
2509         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2510         (floatunssidf2_internal): Change vector/vector shift names.
2511         (floatunsdidf2_internal): Ditto.
2512         (mulv8hi3): Ditto.
2513         (ashrdi3): Ditto.
2514         (ashrti3): Ditto.
2515         (cgt_df): Ditto.
2516         (cgt_v2df): Ditto.
2517         (dftsv): Ditto.
2518         (vashl<mode>3): Rename from ashl<mode>3.
2519         (vashr<mode>3): Rename from ashr<mode>3.
2520         (vlshr<mode>3): Rename from lshr<mode>3.
2521         (vrotl<mode>3): Rename from rotl<mode>3.
2522
2523 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2524
2525         PR target/36224
2526         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2527         multiply gives the wrong value when doing widening multiplies.
2528         (vec_widen_smult_lo_v4si): Ditto.
2529
2530 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2531
2532         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2533         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2534         emit_library_call_value. 
2535         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2536         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2537         * calls.c (initialize_argument_information, precompute_arguments, 
2538         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2539         (precompute_arguments): Removed flags parameter.
2540         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2541         
2542 2008-05-14  Richard Guenther  <rguenther@suse.de>
2543
2544         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2545         Make sure to register the store if the use is a PHI_NODE.
2546
2547 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2548
2549         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2550         memory if the component is to be referenced in BLKmode according
2551         to get_inner_reference.
2552
2553 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2554
2555         * calls.c (emit_library_call_value_1): Restore code clearing
2556         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2557
2558 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2559             Nicolas Roche  <roche@adacore.com>
2560
2561         * configure.ac: Add support for a "gcc_subdir" variable in
2562         config-lang.in, to denote a subdirectory where the language/GCC
2563         integration files are to be found.
2564         * configure: Regenerate.
2565
2566 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2567
2568         PR tree-optimization/36098
2569         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2570         value for the first load in the group in case of a gap.
2571         (vect_build_slp_tree): Check that there are no gaps in loads.
2572
2573 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2574
2575         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2576         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2577         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2578         emit_insn and remove unneeded code to construct extra args.
2579         (emit_no_conflict_block): Removed.
2580         * optabls.h: (emit_no_conflict_block): Removed.
2581         * cse.c (cse_extended_basic_block): Remove search for
2582         REG_NO_CONFLICT note.
2583         * global.c: Removed incorrect comment added in revision 117.
2584         * expr.c (convert_move): Change call to emit_no_conflict_block to
2585         emit_insn.
2586         * recog.c: Change comments so that they do not mention
2587         REG_NO_CONFLICT.
2588         * local_alloc.c (combine_regs): Removed last parameter.
2589         (no_conflict_p): Removed.
2590         (block_alloc): Removed note, no_conflict_combined_regno and set
2591         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2592         (combine_regs): Removed already_dead and code to look for
2593         REG_NO_CONFLICT notes.
2594         * lower_subreg (remove_retval_note): Removed code to look for
2595         REG_NO_CONFLICT block.
2596         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2597         (resolve_clobber): Remove code to process libcalls that have
2598         REG_NO_CONFLICT notes.
2599         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2600         case.
2601         * combine.c (can_combine_p, distribute_notes):  Removed
2602         REG_NO_CONFLICT case.
2603         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2604         to emit_insns.
2605         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2606         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2607         Ditto.
2608         * reg-notes.def (NO_CONFLICT): Removed.
2609
2610 2008-05-14  David S. Miller  <davem@davemloft.net>
2611
2612         * config/sparc/sparc.c (sparc_profile_hook): If
2613         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2614         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2615         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2616
2617 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2618
2619         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2620
2621 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2622
2623         PR target/36222
2624         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2625         and op1 expansion before vector concat to have less live pseudos.
2626
2627 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2628
2629         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2630         ix86_expand_vector_set if supported.
2631
2632 2008-05-13  Diego Novillo  <dnovillo@google.com>
2633             Kenneth Zadeck  <zadeck@naturalbridge.com>
2634
2635         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2636
2637         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2638         phinodes_print_statistics, init_ssanames, fini_ssanames,
2639         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2640         release_ssa_name, release_defs, replace_ssa_name_symbol,
2641         ssanames_print_statistics): Move ...
2642         * tree-flow.h: ... here.
2643         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2644         Use FN instead of cfun.
2645         (make_ssa_name_fn): Rename from make_ssa_name.
2646         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2647         * tree-flow-inline.h (make_ssa_name): Move from
2648         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2649         * omp-low.c (expand_omp_parallel):
2650         * tree-flow-inline.h (redirect_edge_var_map_result):
2651         * tree-ssa.c (init_tree_ssa): Add argument FN.
2652         Use it instead of cfun.  Update all users.
2653
2654 2008-05-13  Tom Tromey  <tromey@redhat.com>
2655
2656         PR preprocessor/22168:
2657         * doc/cpp.texi (Top): Update menu.
2658         (Alternatives to Wrapper #ifndef): New node.
2659         (Other Directives): Document deprecation.
2660         (Obsolete Features): Remove menu.
2661         (Assertions): Merge node into Obsolete Features.
2662         (Obsolete once-only headers): Move earlier; rename to Alternatives
2663         to Wrapper #ifndef.
2664         * doc/cppopts.texi: Update.
2665         * c.opt (Wdeprecated): Enable for C and ObjC.
2666         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2667         (C++ Dialect Options): Move -Wno-deprecated from here to...
2668         (Warning Options): ... here.
2669
2670 2008-05-13  Richard Guenther  <rguenther@suse.de>
2671
2672         PR middle-end/36227
2673         * fold-const.c (fold_sign_changed_comparison): Do not allow
2674         changes in pointer-ness.
2675
2676 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2677
2678         PR target/24713
2679         * config/sh/sh.c (sh_expand_prologue): Don't clear
2680         RTX_FRAME_RELATED_P for push insns.
2681
2682 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2683
2684         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2685
2686 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2687
2688         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2689         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2690         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2691
2692 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2693
2694         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2695         (*vec_concatv4sf_sse): This.
2696         (*sse2_concatv2si): Renamed to ...
2697         (*vec_concatv2si_sse2): This.
2698         (*sse1_concatv2si): Renamed to ...
2699         (*vec_concatv2si_sse): This.
2700         (*vec_concatv2di_rex): Renamed to ...
2701         (*vec_concatv2di_rex64): This.
2702         (*vec_concatv2si_sse4_1): New.
2703         (*vec_concatv2di_rex64_sse4_1): Likewise.
2704
2705 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2706
2707         PR rtl-optimization/36111
2708         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2709         that was created for swappable operands.
2710
2711 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2712
2713         PR ada/36001
2714         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2715         * configure.ac: Add call to ACX_PROG_GNAT.
2716
2717 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2718
2719         * optc-gen.awk: Fix comment typo.
2720
2721 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2722
2723         * pretty-print.c (pp_integer_with_precision): Use
2724         HOST_LONG_LONG_FORMAT.
2725
2726 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2727
2728         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2729                 
2730 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2731
2732         * config/i386/i386.c (bdesc_ptest): Removed.
2733         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2734         (bdesc_args): Add __builtin_ia32_ptestz128,
2735         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2736         (ix86_init_mmx_sse_builtins): Updated.
2737         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2738         (ix86_expand_builtin): Updated.
2739
2740 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2741
2742         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2743         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2744
2745 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2746
2747         * value-prof.c (interesting_stringop_to_profile): Do not
2748         return early for BUILT_IN_MEMPCPY.
2749
2750 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2751
2752         * calls.c (expand_call): Don't use callgraph to increase
2753         preferred_stack_boundary.
2754
2755         * cgraph.h (cgraph_rtl_info): Use unsigned on
2756         preferred_incoming_stack_boundary.
2757
2758         * final.c (rest_of_clean_state): Use unsigned on
2759         preferred_stack_boundary.
2760
2761 2008-05-09  Tom Tromey  <tromey@redhat.com>
2762
2763         PR preprocessor/22231:
2764         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2765         proceeding.
2766
2767 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2768
2769         PR tree-optimization/36129
2770         * tree-ssa-ccp.c: Include value-prof.h.
2771         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2772         built-in function was folded to a constant.
2773         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2774
2775 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2776             Sebastian Pop  <sebastian.pop@amd.com>
2777
2778         * tree-scalar-evolution.c: Document instantiate_scev.
2779         (instantiate_parameters_1): Renamed instantiate_scev_1.
2780         Don't use the same loop for instantiation_loop and evolution_loop.
2781         (instantiate_scev): New.
2782         (instantiate_parameters): Moved...
2783         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2784         same loop twice.  Maintains the semantics for this function.
2785         * tree-scalar-evolution.h (instantiate_scev): Declare.
2786         (instantiate_parameters): ...here.  Now static inline.
2787         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2788         instead of resolve_mixers.
2789
2790 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2791
2792         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2793
2794 2008-05-09  Tomas Bily  <tbily@suse.cz>
2795
2796         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2797         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2798         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2799         * c-common.c (c_common_truthvalue_conversion): Likewise.
2800         * tree-object-size.c (compute_object_offset): Likewise.
2801         * tree-inline.c (estimate_num_insns_1): Likewise.
2802         * varasm.c (const_hash_1, compare_constant, copy_constant)
2803         (compute_reloc_for_constant, output_addressed_constants)
2804         (initializer_constant_valid_p): Likewise.
2805         * c-omp.c (check_omp_for_incr_expr): Likewise.
2806         * gimplify.c (gimplify_expr): Likewise.
2807         * c-typeck.c (c_finish_return): Likewise.
2808         * tree-vectorizer.c (supportable_widening_operation)
2809         (supportable_narrowing_operation): Likewise.
2810         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2811         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2812         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2813         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2814         (descr_info_loc): Likewise.
2815         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2816         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2817         (fold_unary): Likewise.
2818         * builtins.c (get_pointer_alignment): Likewise.
2819         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2820         (instantiate_parameters_1): Likewise.
2821         * tree.c (expr_align, stabilize_reference): Likewise.
2822         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2823         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2824         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2825         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2826         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2827         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2828         Likewise.
2829         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2830         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2831         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2832         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2833         (forward_propagate_comparison)
2834         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2835         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2836         * emit-rtl.c (component_ref_for_mem_expr)
2837         (set_mem_attributes_minus_bitpos): Likewise.
2838         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2839         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2840         Likewise.
2841         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2842         (build_function_call, pointer_diff, build_compound_expr)
2843         (c_finish_return): Likewise.
2844         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2845         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2846         Likewise.
2847         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2848         * expr.c (is_aligning_offset): Likewise.
2849         * tree-ssa-alias.c (is_escape_site): Likewise.
2850         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2851         (check_all_va_list_escapes): Likewise.
2852         * tree-ssa-loop-ivopts.c (determine_base_object)
2853         (determine_common_wider_type): Likewise.
2854         * dojump.c (do_jump): Likewise.
2855         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2856         * tree-gimple.c (is_gimple_cast): Likewise.
2857         * fold-const.c (decode_field_reference, )
2858         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2859         (fold_binary): Likewise.
2860         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2861         (already_warned_in_frontend_p): Likewise.
2862         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2863         * tree.c (really_constant_p, get_unwidened): Likewise.
2864         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2865         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2866         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2867         Likewise.
2868         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2869         CONVERT_EXPR_P.
2870         (CONVERT_EXPR_P): Define.
2871         (CASE_CONVERT): Define.
2872         
2873 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2874
2875         PR middle-end/36117
2876         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2877         (delete_unmarked_insns): When deleting a call, call
2878         delete_unreachable_blocks.
2879         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2880         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2881
2882 2008-05-08  Richard Guenther  <rguenther@suse.de>
2883
2884         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2885         (-ftree-salias): Likewise.
2886         (salias-max-implicit-fields): Remove param documentation.
2887         (salias-max-array-elements): Likewise.
2888         * tree-pass.h (pass_create_structure_vars): Remove.
2889         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2890         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2891         * tree-ssa-alias.c (create_structure_vars): Remove.
2892         (gate_structure_vars): Likewise.
2893         (pass_create_structure_vars): Likewise.
2894         (gate_build_alias): Likewise.
2895         (pass_build_alias): Adjust to run always and dump the function.
2896         * common.opt (ftree-salias): Hide.
2897         * passes.c (init_optimization_passes): Remove
2898         pass_create_structure_vars, adjust comment.
2899         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2900         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2901         * opts.c (decode_options): Do not set flag_tree_salias.
2902         (common_handle_option): Add OPT_ftree_salias to the backward
2903         compatibility section.
2904
2905 2008-05-08  Richard Guenther  <rguenther@suse.de>
2906
2907         * tree-flow-inline.h (var_can_have_subvars): Move ...
2908         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2909         * tree-flow.h (var_can_have_subvars): Remove.
2910         (push_fields_onto_fieldstack): Remove.
2911         (sort_fieldstack): Likewise.
2912         (struct fieldoff): Move ...
2913         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2914         alias_set and base_for_components fields.
2915         (sort_fieldstack): Make static.
2916         (push_fields_onto_fieldstack): Likewise.  Remove code that
2917         handles anything but RECORD_TYPEs.  Remove alias_set and
2918         base_for_components handling.
2919         (create_variable_info_for): Adjust.
2920
2921 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2922
2923         * common.opt (Wframe-larger-than=): Shorten the help message
2924         to one line.
2925         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2926
2927 2008-05-08  Rafael Espindola  <espindola@google.com>
2928
2929         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2930         trap.
2931         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2932         trap and that both operands are gimple values.
2933         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2934         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2935         is a fp operation.
2936
2937 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2938
2939         * read-rtl.c (join_c_conditions): Return the first string if the
2940         two strings are equal.
2941
2942 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2943
2944         * gensupport.h (pred_data): Add a "num_codes" field.
2945         (add_predicate_code): Declare.
2946         * gensupport.c (add_predicate_code): New function.
2947         (std_pred_table): Add an "allows_const_p" field.
2948         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2949         Remove the (incomplete) list of such codes from the codes field.
2950         (init_predicate_table): Use add_predicate_code.  Add all
2951         RTX_CONST_OBJs if allows_const_p is true.
2952         * genrecog.c (process_define_predicate): Use add_predicate_code.
2953
2954 2008-05-08  David Daney  <ddaney@avtrex.com>
2955             Richard Sandiford  <rsandifo@nildram.co.uk>
2956         
2957         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2958         special case of constant zero operands.
2959         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2960         old and new values.  Special case constant zero values.
2961         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2962         fails.
2963         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2964         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2965
2966 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2967
2968         PR target/36090
2969         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2970         similar RTX_CONST_OBJ before CONST_INT.
2971
2972 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2973
2974         * stmt.c (expand_stack_restore): Change sa mode if needed.
2975
2976 2008-05-08  Richard Guenther  <rguenther@suse.de>
2977
2978         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2979         return type to bool.
2980         (ix86_sol10_return_in_memory): Likewise.
2981         (ix86_i386elf_return_in_memory): Likewise.
2982         (ix86_i386interix_return_in_memory): Likewise.
2983         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2984         (ix86_sol10_return_in_memory): Likewise.
2985         (ix86_i386elf_return_in_memory): Likewise.
2986         (ix86_i386interix_return_in_memory): Likewise.
2987
2988 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2989
2990         PR bootstrap/36180
2991         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2992         fndecl argument.
2993         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2994         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2995         declared in front.
2996
2997 2008-05-08  Richard Guenther  <rguenther@suse.de>
2998
2999         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3000         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3001         (DR_SUBVARS): Remove.
3002         * tree-dfa.c (dump_subvars_for): Remove.
3003         (debug_subvars_for): Likewise.
3004         (dump_variable): Do not dump subvars.
3005         (remove_referenced_var): Do not remove subvars.
3006         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3007         (lookup_subvars_for_var): Remove.
3008         (get_subvars_for_var): Likewise.
3009         (get_subvars_at): Likewise.
3010         (get_first_overlapping_subvar): Likewise.
3011         (overlap_subvar): Likewise.
3012         * tree-flow.h (subvar_t): Remove.
3013         (struct var_ann_d): Remove subvars field.
3014         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3015         argument.  Remove special handling of SFTs.
3016         (compute_tag_properties): Likewise.
3017         (set_initial_properties): Likewise.
3018         (compute_call_clobbered): Likewise.
3019         (count_mem_refs): Likewise.
3020         (compute_memory_partitions): Likewise.
3021         (compute_flow_insensitive_aliasing): Likewise.
3022         (setup_pointers_and_addressables): Likewise.
3023         (new_type_alias): Likewise.
3024         (struct used_part): Remove.
3025         (used_portions): Likewise.
3026         (struct used_part_map): Likewise.
3027         (used_part_map_eq): Likewise.
3028         (used_part_map_hash): Likewise.
3029         (free_used_part_map): Likewise.
3030         (up_lookup): Likewise.
3031         (up_insert): Likewise.
3032         (get_or_create_used_part_for): Likewise.
3033         (create_sft): Likewise.
3034         (create_overlap_variables_for): Likewise.
3035         (find_used_portions): Likewise.
3036         (create_structure_vars): Likewise.
3037         * tree.def (STRUCT_FIELD_TAG): Remove.
3038         * tree.h (MTAG_P): Adjust.
3039         (struct tree_memory_tag): Remove base_for_components and
3040         unpartitionable flags.
3041         (struct tree_struct_field_tag): Remove.
3042         (SFT_PARENT_VAR): Likewise.
3043         (SFT_OFFSET): Likewise.
3044         (SFT_SIZE): Likewise.
3045         (SFT_NONADDRESSABLE_P): Likewise.
3046         (SFT_ALIAS_SET): Likewise.
3047         (SFT_UNPARTITIONABLE_P): Likewise.
3048         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3049         (union tree_node): Remove sft field.
3050         * alias.c (get_alias_set): Remove special handling of SFTs.
3051         * print-tree.c (print_node): Remove handling of SFTs.
3052         * tree-dump.c (dequeue_and_dump): Likewise.
3053         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3054         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3055         * tree-predcom.c (set_alias_info): Do not set subvars.
3056         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3057         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3058         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3059         (add_vars_for_offset): Remove.
3060         (add_virtual_operand): Remove special handling of SFTs.
3061         (add_call_clobber_ops): Likewise.
3062         (add_call_read_ops): Likewise.
3063         (get_asm_expr_operands): Likewise.
3064         (get_modify_stmt_operands): Likewise.
3065         (get_expr_operands): Likewise.
3066         (add_to_addressable_set): Likewise.
3067         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3068         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3069         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3070         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3071         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3072         (tree_node_structure): Likewise.
3073         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3074         handling of SFTs.
3075         (find_what_p_points_to): Likewise.
3076
3077 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3078
3079         * config/spu/spu.md: Fixed subti3 pattern.
3080
3081 2008-05-08  Richard Guenther  <rguenther@suse.de>
3082
3083         PR middle-end/36154
3084         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3085         sure to create a representative for trailing arrays for PTA.
3086
3087 2008-05-08  Richard Guenther  <rguenther@suse.de>
3088
3089         PR middle-end/36172
3090         * fold-const.c (operand_equal_p): Two objects which types
3091         differ in pointerness are not equal.
3092
3093 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3094
3095         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3096         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3097         (emit_library_call_value_1): Add new variable fndecl initialized by
3098         NULL_TREE. It should be the decl type of orgfun, but this information
3099         seems not to be available here, so it uses the default calling abi.
3100         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3101         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3102         by TARGET_RETURN_IN_MEMORY.
3103         * config/i386/i386-interix.h: Likewise.
3104         * config/i386/i386.h: Likewise.
3105         * config/i386/i386elf.h: Likewise.
3106         * config/i386/ptx4-i.h: Likewise.
3107         * config/i386/sol2-10.h: Likewise.
3108         * config/i386/sysv4.h: Likewise.
3109         * config/i386/vx-common.h: Likewise.
3110         * config/cris/cris.h: Removed #if 0 clause.
3111         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3112         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3113         argument.
3114         (ix86_sol10_return_in_memory): Likewise.
3115         (ix86_i386elf_return_in_memory): New.
3116         (ix86_i386interix_return_in_memory): New.
3117         * config/mt/mt-protos.h (mt_return_in_memory): New.
3118         * config/mt/mt.c: Likewise.
3119         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3120         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3121         * config/bfin/bfin.h: Likewise.
3122         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3123         argument.
3124         * config/bfin/bfin.c: Likewise.
3125         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3126         * config/alpha/unicosmk.h: Likewise.
3127         * config/i386/cygming.h: Likewise.
3128         * config/iq2000/iq2000.h: Likewise.
3129         * config/mips/mips.h: Likewise.
3130         * config/mn10300/mn10300.h: Likewise.
3131         * config/rs6000/rs6000.h: Likewise.
3132         * config/score/score.h: Likewise.
3133         * config/spu/spu.h: Likewise.
3134         * config/v850/v850.h: Likewise.
3135         * defaults.h: Likewise.
3136         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3137         * expr.c (emit_block_move): Adjust use of
3138         OUTGOING_REG_PARM_STACK_SPACE.
3139         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3140         OUTGOING_REG_PARM_STACK_SPACE.
3141         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3142
3143 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3144
3145         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3146         on OMP_RETURN for OMP_FOR.
3147
3148         PR debug/35896
3149         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3150         (fortran_common): New function.
3151         (gen_variable_die): Call fortran_common instead of common_check,
3152         adjust for it returning tree instead of rtx.  Formatting.
3153
3154 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3155
3156         PR rtl/7335
3157         PR rtl/33826
3158         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3159         * c-decl.c (merge_decls): Ditto.
3160         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3161         to RTL_CONST_OR_PURE_CALL_P.
3162         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3163         Initialized DECL_LOOPING_CONST_PURE.
3164         (process_call_operands): Set tree_side_effects properly.
3165         * tree.h (TREE_READONLY_DECL_P): Removed.
3166         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3167         (DECL_LOOPING_OR_CONST_P): New macro.
3168         (struct tree_function_decl): Added looping_const_or_pure_p.
3169         (ECF_*) Renumbered.
3170         (ECF_LOOPING_OR_CONST_P): New macro.
3171         * rtlanal.c (pure_const_p): Removed.
3172         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3173         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3174         to RTL_CONST_CALL_P.
3175         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3176         (check_decl, check_tree, check_call, scan_function): Initialize
3177         looping.
3178         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3179         (static_execute): Set looping true for recursive functions.
3180         Undo setting state to IPA_NEITHER for recursive functions.
3181         * cse.c (cse_insn): 
3182         * ifcvt.c (noce_can_store_speculate_p): Changed
3183         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3184         RTL_CONST_OR_PURE_CALL_P.
3185         * dse.c (scan_insn): Ditto.
3186         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3187         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3188         RTL_CONST_OR_PURE_CALL_P.
3189         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3190         pure_call_p to RTL_CONST_CALL_P.
3191         * gimplify.c (gimplify_call_expr): Clear side effects for
3192         non-looping pure and constant calls.
3193         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3194         (flags_from_decl_or_type): Set ecf flags from decl flags.
3195         (initialize_argument_information): Turn off
3196         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3197         Change const to pure if callee_copies is true rather than just
3198         turning off const.
3199         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3200         way of marking pure calls.
3201         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3202         Remove hack that was supposed to fix pr7335 and remove old
3203         way of marking pure calls.
3204         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3205         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3206         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3207         RTL_CONST_OR_PURE_CALL_P.
3208         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3209         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3210         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3211         * sched-deps.c (schedule_analyze): Ditto.
3212         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3213         return_val field of calls to represent pure and const function info.
3214         (CONST_OR_PURE_CALL_P): Deleted macro.
3215         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3216         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3217         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3218         TREE_READONLY.
3219         * tree-optimize.c (execute_fixup_cfg): Added test for
3220         ECF_LOOPING_CONST_OR_PURE.
3221         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3222         DECL_PURE_P.
3223         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3224         effects for looping pure or const calls.
3225         (verify_gimple_expr): Added verification code. 
3226         * config/alpha/alpha.c (alpha_legitimize_address,
3227         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3228         RTL_CONST_CALL_P.
3229         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3230         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3231         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3232         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3233         RTL_CONST_OR_PURE_CALL_P.
3234         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3235         and const calls to be deleted.
3236
3237 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3238
3239         PR target/35714
3240         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3241         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3242         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3243         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3244         to handle nonimmediate operands.
3245         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3246         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3247         to handle nonimmediate operands.
3248         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3249         (mmx_pmulhrwv4hi3): New expander.  Use
3250         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3251         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3252         (sse2_umulv1siv1di3): New expander.  Use
3253         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3254         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3255         (mmx_eq<mode>3): New expander.  Use
3256         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3257         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3258         (mmx_uavgv8qi3): New expander.  Use
3259         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3260         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3261         (mmx_uavgv4hi3): New expander.  Use
3262         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3263
3264         * config/i386/sse.md
3265         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3266         to handle nonimmediate operands.
3267         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3268         to handle nonimmediate operands.
3269         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3270         to handle nonimmediate operands.
3271         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3272         to handle nonimmediate operands.
3273         (sse2_unpckhpd_exp): New expander.  Use
3274         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3275         (sse2_unpcklpd_exp): New expander.  Use
3276         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3277         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3278         to handle nonimmediate operands.
3279         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3280         to handle nonimmediate operands.
3281         (*sse2_<plusminus_insn><mode>3): Rename from
3282         sse2_<plusminus_insn><mode>3 insn pattern.
3283         (sse2_<plusminus_insn><mode>3): New expander.  Use
3284         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3285         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3286         (sse2_umulv2siv2di3): New expander.  Use
3287         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3288         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3289         (sse4_1_mulv2siv2di3): New expander.  Use
3290         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3291         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3292         (sse2_pmaddwd): New expander.  Use
3293         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3294         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3295         (sse2_eq<mode>3): New expander.  Use
3296         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3297         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3298         (sse4_1_eqv2di3): New expander.  Use
3299         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3300         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3301         (sse2_uavgv16qi3): New expander.  Use
3302         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3303         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3304         (sse2_uavgv16qi3): New expander.  Use
3305         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3306         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3307         (sse2_uavgv8hi3): New expander.  Use
3308         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3309         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3310         (ssse3_pmulhrswv8hi3): New expander.  Use
3311         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3312         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3313         (ssse3_pmulhrswv4hi3): New expander.  Use
3314         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3315
3316         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3317         (<sse>_vmmul<mode>3): Ditto.
3318         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3319         (divv2df3): Ditto.
3320         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3321         (ssse3_pmaddubsw): Ditto.
3322
3323         * config/i386/i386.c (struct_builtin_description)
3324         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3325         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3326         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3327         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3328         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3329         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3330         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3331         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3332         (ix86_fixup_binary_operands): Assert that src1
3333         and src2 must have the same mode when swapped.
3334         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3335         and ix86_binary_operator_ok.  Do not force operands in registers
3336         when optimizing.
3337
3338 2008-05-07  Jan Hubicka  <jh@suse.cz>
3339
3340         * cgraph.c (dump_cgraph_node): Update.
3341         * cgraph.h (cgraph_local_info): Break out inline summary.
3342         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3343         hook.
3344         * ipa-inline (inline_summary): New accestor function.
3345         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3346         cgraph_decide_inlining, compute_inline_parameters): Update.
3347         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3348
3349 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3350
3351         Cleanup ColdFire scheduling support and add V4 pipeline model.
3352
3353         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3354         (define_attr cpu): Add cfv4 value.
3355         (define_attr type, define_attr type1): Merge into a single 'type'
3356         attribute.  Update all uses.
3357         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3358         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3359         Update all uses.
3360         (define_attr opx_mem, define_attr opy_mem): Remove.
3361         (define_attr op_mem): Clean up, update comment.
3362         (define_attr size): Use specific values instead of general int.
3363         (define_attr guess, define_attr split): Remove.  Update all uses.
3364         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3365         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3366         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3367         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3368         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3369         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3370         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3371         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3372         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3373         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3374         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3375         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3376         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3377         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3378         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3379         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3380         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3381         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3382         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3383         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3384         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3385         Update or set attributes.
3386         (stack_tie): New fake instruction.
3387
3388         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3389         (m68k_sched_attr_size): Update declaration.
3390         (m68k_sched_attr_type2): Remove.
3391         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3392         Declare new bypass predicates.
3393
3394         * config/m68k/m68k.c (m68k_sched_issue_rate,
3395         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3396         implementations.
3397         (TARGET_SCHED_ISSUE_RATE,
3398         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3399         (override_options): Handle scheduling for ColdFire V4 core.
3400         (m68k_expand_prologue): Emit stack_tie.
3401         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3402         'OP_TYPE_FPN'.  Update all uses.
3403         (sched_guess_p): Remove.
3404         (sched_address_type): Handle symbolic addresses.
3405         (sched_get_operand): New static function.
3406         (sched_operand_type): Merge into sched_attr_op_type.
3407         (sched_attr_op_type): Handle FP registers, handle quick constants,
3408         update.
3409         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3410         (m68k_sched_attr_size): Update.  Move logic to ...
3411         (sched_get_attr_size_int): New static function.
3412         (sched_get_opxy_mem_type): New static function.
3413         (m68k_sched_attr_op_mem): Update.
3414         (m68k_sched_attr_type2): Remove.
3415         (sched_cfv4_bypass_data): New static variable.
3416         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3417         (m68k_sched_issue_rate): Implement scheduler hook.
3418         (struct _sched_ib: enabled_p): New field.
3419         (m68k_sched_variable_issue): Update.  Handle V4.
3420         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3421         sched_dump_class_func_t, sched_dump_split_class,
3422         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3423         sched_dump_dfa_class, m68k_sched_dump): Remove.
3424         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3425         hook.
3426         (m68k_sched_init_global): Remove statisctics dumping, introduce
3427         sanity check that all instructions have pipeline reservations.  Handle
3428         ColdFire V4 core.
3429         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3430         Handle ColdFire V4 core.
3431         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3432         New static functions.
3433         (m68k_sched_address_bypass_p): New bypass predicate.
3434         (sched_get_indexed_address_scale): New static function.
3435         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3436
3437         * cf.md: Update comments.
3438         (define_attr type2): Remove.  Use 'type' attribute instead.
3439         Update all uses.
3440         (cf_ib): Rename to cfv123_ib.  Update all uses.
3441         (cf_oep): Rename to cfv123_oep.  Update all uses.
3442         (cf_chr): Rename to cfv123_chr.  Update all uses.
3443         (cf_mem): Rename to cfv123_mem.  Update all uses.
3444         (cf_mac): Move to more appropriate place.
3445         (cfv123_guess): New automaton and cpu_unit.
3446         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3447         Update uses of 'size' attribute.  Handle before reload scheduling.
3448         (cfv123_guess): New dummy reservation for unhandled instructions.
3449         (cfv4_*): Pipeline description of ColdFire V4 core.
3450         (ignore): New reservation to handle 'ignore' type.
3451
3452 2008-05-07  Ian Lance Taylor  <iant@google.com>
3453
3454         PR middle-end/36013
3455         * gimplify.c (find_single_pointer_decl_1): Don't look through
3456         indirections.
3457         (find_single_pointer_decl): Adjust comments.
3458
3459 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3460
3461         PR middle-end/36137
3462         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3463         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3464
3465         PR middle-end/36106
3466         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3467         integral type rather than floating point, then VIEW_CONVERT_EXPR
3468         to the floating point type.
3469
3470 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3471
3472         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3473         TFmode op0 to register.
3474
3475 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3476
3477         * c-decl.c (grokdeclarator): Comment typo.
3478
3479 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3480
3481         * tree-flow.h: Remove prototype for computed_goto_p.
3482         * tree-cfg.c (computed_goto_p): Make static.
3483
3484 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3485
3486         PR target/35657
3487         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3488         (contains_aligned_value_p): This.  Handle _Decimal128.
3489         (ix86_function_arg_boundary): Only align _Decimal128 to its
3490         natural boundary and handle it properly.
3491
3492 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3493
3494         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3495         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3496         (ipcp_method_set_orig_node): Removed.
3497         (ipcp_cval_get_cvalue_type): Removed.
3498         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3499         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3500         (ipcp_cval_set_cvalue_type): Removed.
3501         (ipcp_cval_get_cvalue): Removed.
3502         (ipcp_cval_set_cvalue): Removed.
3503         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3504         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3505         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3506         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3507         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3508         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3509         (ipcp_get_ith_lattice): Changed parameters.
3510         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3511         (ipcp_lattice_from_jfunc): Changed parameters.
3512         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3513         (ipcp_method_cval_print): Added temporary variable info.
3514         (ipcp_redirect): Removed already unused local variable caller.
3515         (ipcp_redirect): New temporary variable orig_callee_info
3516         (ipcp_redirect): Removed newly unused local variable callee.
3517         (ipcp_redirect): Removed (a bit confusing) local variable type.
3518         (ipcp_insert_stage): Added local variable info.
3519         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3520         renamed too
3521         (ipcp_formal_create): Removed.
3522         (ipcp_method_cval_set): Removed.
3523         (ipcp_propagate_stage): Renamed lattice variables.
3524         (ipcp_method_cval_set_cvalue_type): Removed.
3525         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3526         (ipcp_print_all_lattices): Changed printed strings to refer to 
3527         lattices rather than cvals.
3528         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3529         (ipcp_propagate_const): Changed formal parameters.
3530         (build_const_val): Changed formal parameters.
3531         (ipcp_insert_stage): Removed useless variable cvalue
3532         (build_const_val): Changed formal parameters.
3533         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3534         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3535         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3536         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3537         (ipcp_print_func_profile_counts): Changed string from "method" to 
3538         "function"
3539         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3540         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3541         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3542         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3543         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3544         (ipcp_lat_is_const): Changed parameters and made inline.
3545         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3546         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3547         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3548         the predicate condition directly
3549         (ipcp_propagate_stage): Added local variable args. Removed local
3550         variable callee.  (Both are mere code simplifications.)
3551         (ipcp_method_dont_insert_const): Renamed to
3552         ipcp_node_not_modifiable_p.
3553         (ipcp_node_not_modifiable_p): Made inline.
3554         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3555         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3556         (ipcp_print_all_lattices): Removed variable cvalue
3557         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3558         Updated comments.
3559
3560 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3561
3562         * tree-sra.c (try_instantiate_multiple_fields): Early return
3563         if field has POINTER_TYPE.
3564
3565 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3566
3567         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3568         by using 'q' specifier for instruction.
3569         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3570
3571 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3572
3573         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3574         Change mode of zero_extract from QImode to HImode.
3575         (sign bit tests peepholes): (Ditto.).
3576
3577 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3578
3579         * config/i386/mmx.md: Remove double backslashes from asm templates.
3580         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3581         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3582         to handle nonimmediate operands.
3583         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3584         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3585         to handle nonimmediate operands.
3586         (*mmx_<code>v2sf3_finite): New insn pattern.
3587         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3588         (mmx_<code>v2sf3): New expander.  Use
3589         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3590         (mmx_<plusminus_insn><mode>3): New expander.  Use
3591         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3592         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3593         (mmx_add<mode>3): Removed.
3594         (mmx_ssadd<mode>3): Ditto.
3595         (mmx_usadd<mode>3): Ditto.
3596         (mmx_sub<mode>3): Ditto.
3597         (mmx_sssub<mode>3): Ditto.
3598         (mmx_ussub<mode>3): Ditto.
3599         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3600         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3601         to handle nonimmediate operands.
3602         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3603         insn pattern.
3604         (mmx_smulv4hi3_highpart): New expander.  Use
3605         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3606         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3607         insn pattern.
3608         (mmx_umulv4hi3_highpart): New expander.  Use
3609         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3610         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3611         (mmx_<code>v4hi3): New expander.  Use
3612         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3613         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3614         (mmx_<code>v8qi3): New expander.  Use
3615         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3616         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3617         (mmx_<code><mode>3): New expander.  Use
3618         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3619
3620 2008-05-05  Jan Hubicka  <jh@suse.cz>
3621
3622         PR tree-optimization/36118
3623         * passes.c (pass_init_dump_file): Fix dump header.
3624
3625 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3626
3627         PR middle-end/36141
3628         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3629         VCE for function decls.
3630
3631 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3632
3633         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3634
3635 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3636
3637         * config/i386/i386.md (sat_plusminus): New.
3638         (plusminus_insn): Likewise.
3639         (plusminus_mnemonic): Likewise.
3640         (addsub): Removed.
3641         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3642         (*<addsub><mode>3_cc_overflow): Renamed to ...
3643         (*<plusminus_insn><mode>3_cc_overflow): This.
3644         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3645         (*<plusminus_insn>si3_zext_cc_overflow): This.
3646
3647         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3648         (<plusminus_insn><mode>3): This.
3649         (*<addsub><mode>3): Renamed to ...
3650         (*<plusminus_insn><mode>3): This.
3651         (<sse>_vm<addsub><mode>3): Renamed to ...
3652         (<sse>_vm<plusminus_insn><mode>3): This.
3653         (sse3_h<addsub>v4sf3): Renamed to ...
3654         (sse3_h<plusminus_insn>v4sf3): This.
3655         (sse3_h<addsub>v2df3): Renamed to ...
3656         (sse3_h<plusminus_insn>v2df3): This.
3657         (<plusminus_insn><mode>3): New.
3658         (*<plusminus_insn><mode>3): Likewise.
3659         (sse2_<plusminus_insn><mode>3): Likewise.
3660         (add<mode>): Removed.
3661         (*add<mode>3): Likewise.
3662         (sse2_ssadd<mode>3): Likewise.
3663         (sse2_usadd<mode>3): Likewise.
3664         (sub<mode>3): Likewise.
3665         (*sub<mode>3): Likewise.
3666         (sse2_sssub<mode>3): Likewise.
3667         (sse2_ussub<mode>3): Likewise.
3668
3669 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3670
3671         * gthr-single.h: Add in required interface elements as per gthr.h.
3672         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3673         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3674         Generalize UNUSED macro. 
3675         (__gthread_once): Add.
3676         (__gthread_key_create): Add.
3677         (__gthread_key_delete): Add.
3678         (__gthread_getspecific): Add.
3679         (__gthread_setspecific): Add.
3680         
3681 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3682
3683         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3684         the same size types for the indirect reference on the rhs, then
3685         create a VCE.
3686
3687 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3688
3689         * config/i386/i386.md
3690         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3691         one insn template instead of template series.
3692         (*xordi_1_rex64): Ditto.
3693         (*xordi_2_rex64): Ditto.
3694
3695 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3696
3697         PR tree-optimization/36119
3698         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3699         in case of SLP.
3700
3701 2008-06-04  Jan Hubicka  <jh@suse.cz>
3702
3703         tree-optimization/36100
3704         * tree-pass.h (pass_O0_always_inline): Declare.
3705         * ipa-inline.c (inline_transform): Remove dead code.
3706         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3707         pass_O0_always_inline): New.
3708         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3709
3710 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3711
3712         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3713         mnemonic in this_param move for TARGET_64BIT.
3714
3715 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3716
3717         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3718         (*strmovsi_rex_1): Ditto.
3719         (*strsetsi_1): Ditto.
3720         (*strsetsi_rex_1): Ditto.
3721
3722         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3723         adddicc expanders using SWI mode iterator.
3724
3725 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3726
3727         PR target/36121
3728         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3729         argument handling.
3730
3731 2008-05-04  David S. Miller  <davem@davemloft.net>
3732
3733         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3734         (sparc*-*-linux*): Use linux.h in tm_file.
3735         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3736         compiler defaulting to 32-bit.
3737         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3738         no longer needed.
3739         * config/sparc/linux.h: Remove definitions now obtained
3740         properly from linux.h
3741         * config/sparc/linux64.h: Likewise.
3742         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3743         don't want this setting for 32-bit builds in a biarch compiler.
3744         * doc/install.texi: Add sparc-linux to list of targets
3745         supporting --enable-targets=all.
3746
3747 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3748
3749         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3750
3751 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3752
3753         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3754         after V4SI_FTYPE_V8HI.
3755         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3756         case V4SI_FTYPE_V2DF.
3757
3758 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3759
3760         * doc/invoke.texi (max-flow-memory-locations): Removed.
3761         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3762         
3763 2008-05-03  Richard Guenther  <rguenther@suse.de>
3764
3765         PR middle-end/34973
3766         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3767
3768 2008-05-02  David S. Miller  <davem@davemloft.net>
3769
3770         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3771
3772 2008-05-02  Simon Baldwin <simonb@google.com>
3773
3774         PR bootstrap/36108
3775         * c-common.h (warn_array_subscript_range): Removed.
3776         * c-common.c (warn_array_subscript_range): Ditto.
3777         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3778         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3779
3780 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3781
3782         * config/i386/i386.c (ix86_special_builtin_type): New.
3783         (bdesc_special_args): Likewise.
3784         (ix86_expand_special_args_builtin): Likewise.
3785         (ix86_init_mmx_sse_builtins): Updated.
3786         (ix86_expand_builtin): Updated.
3787         (ix86_expand_store_builtin): Removed.
3788         (ix86_expand_unop_builtin): Likewise.
3789
3790         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3791         * config/i386/mmintrin.h (__v2sf): Here.
3792
3793         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3794         const __v2sf.
3795         (_mm_loadl_pi): Likewise.
3796         (_mm_storeh_pi): Replace __v2si with __v2sf.
3797         (_mm_storel_pi): Likewise.
3798
3799         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3800         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3801         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3802         __builtin_ia32_loadlpd.
3803
3804 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3805
3806         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3807         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3808         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3809         (ix86_init_mmx_sse_builtins): Updated.
3810         (ix86_expand_args_builtin): Likewise.
3811         (ix86_expand_builtin): Likewise.
3812         (ix86_expand_unop1_builtin): Renamed to ...
3813         (ix86_expand_unop_vec_merge_builtin): This.
3814
3815 2008-05-01  Jan Hubicka  <jh@suse.cz>
3816
3817         PR bootstrap/36100
3818         * ipa-inline.c (inline_generate_summary): Make static.
3819         (inline_transform): Do not call inlining at -O0; make static.
3820         * passes.c (execute_todo): Add sanity check.
3821         (execute_one_ipa_transform_pass): Execute proper flags.
3822
3823 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3824
3825         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3826         (DECL_NONADDRESSABLE_P): Likewise.
3827         * alias.c (record_component_aliases): Fix comment.
3828
3829 2008-05-01  Simon Baldwin <simonb@google.com>
3830
3831         * c-common.h (warn_array_subscript_range): New function.
3832         * c-common.c (warn_array_subscript_range): Ditto.
3833         * tree-vrp.c (check_array_ref): Corrected code to agree with
3834         comment, ignoring only arrays of size 0 or size 1.
3835         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3836
3837 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3838
3839         * config/i386/i386.c (ix86_builtin_type): Replace
3840         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3841         (bdesc_args): Updated.
3842         (ix86_init_mmx_sse_builtins): Likewise.
3843         (ix86_expand_args_builtin): Likewise.
3844
3845         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3846         with __v1di.
3847
3848         * doc/extend.texi: Correct __builtin_ia32_palignr.
3849
3850 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3851
3852         PR target/36095
3853         * config/i386/i386.c (bdesc_crc32): Removed.
3854         (ix86_expand_crc32): Likewise.
3855         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3856         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3857         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3858         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3859         UINT_FTYPE_UINT_UCHAR.
3860         (bdesc_args): Updated. Add crc32 builtins.
3861         (ix86_init_mmx_sse_builtins): Updated.
3862         (ix86_expand_args_builtin): Updated to support subreg.
3863
3864         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3865
3866 2008-05-01  Jan Hubicka  <jh@suse.cz>
3867
3868         * tree-pass.h (opt_pass): Add IPA_PASS.
3869         (varpool_node, cgraph_node): Forward declare.
3870         (ipa_opt_pass): Define.
3871         (pass_ipa_inline): Turn into ipa_opt_pass.
3872         (pass_apply_inline): Remove.
3873         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3874         (apply_inline): Turn into ....
3875         (inline_transform): ... this one.
3876         (inline_generate_summary): New function.
3877         (pass_apply_inline): Remove.
3878         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3879         vector.
3880         (struct function): Add ipa_transforms_to_apply.
3881         * passes.c (register_one_dump_file): Work on IPA_PASS.
3882         (init_optimization_passes): Remove pass_inline_parameters and
3883         pass_apply_inline.
3884         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3885         (execute_one_pass) ... here; apply transforms when possible.
3886         (add_ipa_transform_pass, execute_ipa_summary_asses,
3887         execute_one_ipa_transform_pass): New.
3888         (execute_ipa_pass_list): Update for IPA_PASS type.
3889
3890 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3891
3892         * config/i386/i386.c (ix86_builtin_type): Add
3893         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3894         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3895         (bdesc_args): Add SSE4a builtins.
3896         (ix86_init_mmx_sse_builtins): Updated.
3897         (ix86_expand_args_builtin): Likewise.
3898         (ix86_expand_builtin): Likewise.
3899
3900 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3901
3902         * config/i386/i386.c (ix86_builtin_type): Add
3903         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3904         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3905         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3906         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3907         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3908         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3909         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3910         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3911         and DI_FTYPE_DI_DI_INT.
3912         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3913         (ix86_init_mmx_sse_builtins): Updated.
3914         (ix86_expand_args_builtin): Likewise.
3915         (ix86_expand_builtin): Likewise.
3916         (ix86_expand_binop_imm_builtin): Removed.
3917
3918         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3919
3920 2008-04-30  Richard Guenther  <rguenther@suse.de>
3921
3922         PR tree-optimization/32921
3923         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3924
3925 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3926
3927         * config/arm/arm.c (arm_unwind_emit): Use
3928         crtl->all_throwers_are_sibcalls instead of
3929         cfun->all_throwers_are_sibcalls.
3930         (arm_output_fn_unwind): Likewise.
3931         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3932         instead of cfun->uses_pic_offset_table.
3933         (frv_expand_prologue): Likewise.
3934         (frv_frame_pointer_required): Likewise.
3935         (frv_expand_fdpic_call): Likewise.
3936         (frv_emit_movsi): Likewise.
3937         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3938         cfun->returns_pcc_struct instead of
3939         current_function_returns_pcc_struct.
3940         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3941         instead of cfun->calls_eh_return.
3942         (m32c_pushm_popm): Likewise.
3943         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3944         "extern" declaration.
3945
3946 2008-04-30  Richard Guenther  <rguenther@suse.de>
3947
3948         PR tree-optimization/21636
3949         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3950         constant address.
3951         (evaluate_stmt): Print the likely value.
3952         (ccp_visit_stmt): Avoid excessive vertical spacing.
3953
3954 2008-04-30  Rafael Espindola  <espindola@google.com>
3955
3956         * builtins.c (fold_call_expr): Return realret.
3957         * tree-ssa-threadedge.c
3958         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3959         __builtin_object_size.
3960
3961 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3962
3963         * gcc.c (wrapper_string): New variable.
3964         (insert_wrapper): New function.
3965         (execute): New option -wrapper.
3966         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3967
3968 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3969
3970         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3971         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3972         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3973         from...
3974         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3975         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3976         config/rs6000/e500crtres64gprctr.asm,
3977         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3978         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3979         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3980         config/rs6000/e500crtsav64gprctr.asm,
3981         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3982         config/rs6000/e500crtsavg64gprctr.asm: New files.
3983         * config/rs6000/t-ppccomm: Add build rules for new files.
3984         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3985         * config/rs6000/t-netbsd: Add build rules for new files.
3986         (LIB2FUNCS_STATIC_EXTRA): New variable.
3987         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3988         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3989         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3990
3991 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3992
3993         * config/i386/i386.c (ix86_builtin_type): Add
3994         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3995         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3996         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3997         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3998         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3999         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4000         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4001         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4002         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4003         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4004         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4005         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4006         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4007         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4008         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4009         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4010         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4011         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4012         V1DI_FTYPE_V2SI_V2SI.
4013         (bdesc_2arg): Moved to ...
4014         (bdesc_args): Here.
4015         (ix86_init_mmx_sse_builtins): Updated.
4016         (ix86_expand_args_builtin): Updated.  Take a pointer
4017         to const struct builtin_description.  Handle comparison
4018         builtin functions.
4019         (ix86_expand_sse_compare): Take a new argument for swapping operands.
4020         (ix86_expand_builtin): Updated.
4021
4022         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4023         (ssse3_pmaddubsw128): This.
4024         (ssse3_pmaddubswv4hi3): Renamed to ...
4025         (ssse3_pmaddubsw): This.
4026
4027         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
4028         (__builtin_ia32_packssdw128): Likewise.
4029         (__builtin_ia32_packuswb128): Likewise.
4030         (__builtin_ia32_pmaddubsw): Likewise.
4031         (__builtin_ia32_pmaddubsw128): Likewise.
4032
4033 2008-04-30  Richard Guenther  <rguenther@suse.de>
4034
4035         PR tree-optimization/14847
4036         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4037         (recognize_bits_test): Use it.
4038         (recognize_single_bit_test): Likewise.
4039
4040 2008-04-30  Martin Jambor  <mjambor@suse.cz>
4041
4042         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4043         instead of setting number of formal parameters to zero.
4044         (ipcp_init_stage): Do not set the number of actual parameters to zero 
4045         either.
4046         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4047         which are called with variable number of arguments.
4048         (ipcp_insert_stage): Explicitely skipping all nodes which are
4049         called with variable number of arguments.
4050         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4051         number of parameters.
4052
4053         * ipa-prop.h (struct ipa_node_params): Added flag
4054         called_with_var_arguments
4055         (ipa_set_param_count): Added.  Changed sole setter to use it.
4056         (ipa_get_param_count): Added.  All readers of param_count
4057         converted to use it instead.
4058         (ipa_set_called_with_variable_arg): Added.
4059         (ipa_is_called_with_var_arguments): Added.
4060         (ipa_get_ith_param): Added.  All readers of param_decls converted
4061         to use it instead.
4062         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4063         changed to use it. 
4064         (ipa_get_cs_argument_count): Added, all readers of argument_count
4065         changed to cal it.
4066         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4067         to use it.
4068         
4069         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4070         (struct ipcp_lattice): Renamed cval_type to type
4071         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4072
4073         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4074         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4075         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4076         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4077         (build_const_val): Changed the type of parameter cvalue to tree
4078         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4079         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4080         
4081         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4082         constant 
4083
4084         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4085         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4086         (ipa_add_method): Renamed to ipa_push_func_to_list
4087         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4088         (ipa_callsite_param_count): Removed.
4089         (ipa_callsite_param_count_set): Removed.
4090         (ipa_callsite_param): Removed.
4091         (ipa_callsite_callee): Removed.
4092         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4093         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4094         (ipa_method_formal_count): Removed.
4095         (ipa_method_formal_count_set): Removed.
4096         (ipa_method_get_tree): Removed.
4097         (ipa_method_tree_map_create): Removed.
4098         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4099         (ipa_create_param_decls_array): Creates the array itself
4100         (ipa_create_param_decls_array): Temporary variable info instead of 
4101         a few dereferences.
4102         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4103         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4104         (get_type): Removed.
4105         (ipa_jf_get_info_type): Removed.
4106         (ipa_node_create): Renamed to ipa_create_node_params
4107         (ipa_free): Renamed to ipa_free_all_node_params
4108         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4109         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4110         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4111         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4112         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4113         ipa_free_all_edge_args
4114         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4115         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4116         (ipa_create_methodlist_node): Removed.
4117         (ipa_methodlist_method): Removed.
4118         (ipa_methodlist_method_set): Removed.
4119         (ipa_methodlist_next_method): Removed.
4120         (ipa_methodlist_next_method_set): Removed.
4121         (ipa_method_is_modified): Removed.
4122         (ipa_method_modify_create): Removed.
4123         (ipa_method_modify_init): Temporary variable info instead of a few 
4124         dereferences.
4125         (ipa_detect_param_modifications): Temporary variable info instead of 
4126         a few dereferences.
4127         (ipa_compute_jump_functions): Temporary variable info instead of 
4128         a few dereferences.
4129         (ipa_method_modify_set): Removed.
4130         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4131         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4132         than craph_node as the first parameter.
4133         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4134         (ipa_method_modify_init): Removed.
4135         (ipa_compute_jump_functions): Added a temp variable instead of 
4136         repeatadly dereferencing the cgraph_edge.aux pointer
4137         (ipa_callsite_param_set_type): Removed.
4138         (ipa_compute_jump_functions): i renamed to index and moved to 
4139         an inner block
4140         (ipa_callsite_param_set_info_type_formal): Removed.
4141         (ipa_callsite_param_set_info_type): Removed.
4142         (ipa_callsite_param_map_create): Removed.
4143         (ipa_callsite_tree): Removed.
4144         (ipa_callsite_caller): Removed.
4145         (ipa_pop_func_from_list): return_method removed to return_func
4146
4147         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4148         prefixed all values with IPA_. Changed all users.
4149         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4150         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4151         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4152         (union parameter_info): Renamed to jump_func_value.
4153         (union jump_func_value): Renamed value to constant
4154         (struct ipa_jump_func): Renamed info_type to value
4155         (struct ipa_node): Renamed to ipa_node_params
4156         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4157         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4158         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4159         (struct ipa_edge): Renamed to ipa_edge_args
4160         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4161         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4162         (struct ipa_methodlist): Renamed to ipa_func_list
4163         (struct ipa_func_list): method_p renamed to node, next_method
4164         renamed to next
4165         (ipa_methodlist_p): Removed, switched all users to struct pointer
4166         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4167
4168 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4169
4170         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4171         (rs6000_emit_epilogue): Use backchain to restore only when we
4172         have a large frame.  Make use of frame pointer to restore if we
4173         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4174
4175 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4176
4177         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4178         Add mode to zero_extract.
4179         (sign bit tests peepholes): (Ditto.).
4180
4181 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4182
4183         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4184         Instructions in comments with SSE3.
4185         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4186         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4187         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4188         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4189         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4190         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4191         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4192         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4193         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4194         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4195         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4196         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4197         (bdesc_sse_args): Renamed to ...
4198         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4199         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4200         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4201         IX86_BUILTIN_FABSQ.
4202         (bdesc_1arg): Moved to ...
4203         (bdesc_args): Here.
4204         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4205         Instructions in comments with SSE3.
4206         (ix86_expand_sse_operands_builtin): Renamed to ...
4207         (ix86_expand_args_builtin): This.  Updated.
4208         (ix86_expand_unop1_builtin): Update comments.
4209         (ix86_expand_builtin): Updated.
4210
4211 2008-04-29  Richard Guenther  <rguenther@suse.de>
4212
4213         PR tree-optimization/36078
4214         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4215         Update virtual SSA form after cleaning up the CFG.
4216
4217 2008-04-29  Richard Guenther  <rguenther@suse.de>
4218
4219         PR middle-end/15255
4220         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4221
4222 2008-04-29  Richard Guenther  <rguenther@suse.de>
4223
4224         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4225         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4226         (compute_flow_insensitive_aliasing): Do not treat
4227         PTR_IS_REF_ALL pointers special.
4228         (get_smt_for): Likewise.
4229         (may_alias_p): Re-structure.
4230         (is_escape_site): A ref-all pointer conversion is not an escape site.
4231         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4232         PTR_IS_REF_ALL pointers special.
4233         * tree-ssa-structalias.h (struct alias_info): Remove
4234         ref_all_symbol_mem_tag field.
4235         (PTR_IS_REF_ALL): Remove.
4236
4237 2008-04-29  Richard Guenther  <rguenther@suse.de>
4238
4239         PR middle-end/36077
4240         * fold-const.c (extract_muldiv_1): In combining division constants
4241         make sure to never overflow.
4242
4243 2008-04-29  Nick Clifton  <nickc@redhat.com>
4244
4245         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4246
4247 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4248
4249         PR bootstrap/35169
4250         * optc-gen.awk: Work around HP-UX/IA awk bug.
4251
4252 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4253
4254         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4255         2008-04-25 commit.
4256
4257 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4258
4259         PR target/36073
4260         * config/i386/i386.md
4261         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4262         Change operand 1 predicate to nonimmediate_operand.
4263
4264 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4265
4266         PR debug/36060
4267         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4268         die_sub field.
4269         * gengtype.c (walk_type, write_func_for_structure): Handle
4270         chain_circular.
4271         * doc/gty.texi: Document chain_circular.
4272
4273 2008-04-28  Richard Guenther  <rguenther@suse.de>
4274
4275         PR tree-optimization/36066
4276         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4277         SCEV and loop.
4278
4279 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4280
4281         PR target/36064
4282         * config/i386/i386.md
4283         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4284         Use match_scratch instead of match_operand for operands 3 and 4.
4285
4286 2008-04-27  Richard Guenther  <rguenther@suse.de>
4287
4288         PR tree-optimization/18754
4289         PR tree-optimization/34223
4290         * tree-pass.h (pass_complete_unrolli): Declare.
4291         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4292         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4293         Rewrite loop into loop closed SSA form if it is not already.
4294         (tree_unroll_loops_completely): Re-structure to iterate over
4295         innermost loops with intermediate CFG cleanups.
4296         Unroll outermost loops only if requested or the code does not grow
4297         doing so.
4298         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4299         loops are available.
4300         (tree_vectorize): Instead do so here.
4301         (tree_complete_unroll): Also unroll outermost loops.
4302         (tree_complete_unroll_inner): New function.
4303         (gate_tree_complete_unroll_inner): Likewise.
4304         (pass_complete_unrolli): New pass.
4305         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4306         uses outside of the loop.
4307         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4308         form if it is available.  
4309         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4310         * passes.c (init_optimization_passes): Schedule complete inner
4311         loop unrolling pass before the first CCP pass after final inlining.
4312
4313 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4314
4315         * targhooks.h (default_emutls_var_fields,
4316         default_emutls_var_init): Declare.
4317         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4318         * target.h (struct gcc_target): Add struct emutls member.
4319         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4320         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4321         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4322         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4323         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4324         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4325         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4326         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4327         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4328         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4329         emit debug information.
4330         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4331         * varasm.c: Include targhooks.h.
4332         (emutls_object_section, emutls_tmpl_section): New.
4333         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4334         (EMUTLS_SEPARATOR): New.
4335         (prefix_name): New.
4336         (get_emutls_object_name): New.
4337         (default_emutls_var_fields): New, broken out of ...
4338         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4339         (get_emutls_init_templ_addr): Adjust to use target hooks.
4340         (emutls_decl): Adjust to use target hooks.
4341         (emutls_finish): Likewise.
4342         (default_emutls_var_init): New, broken out of ...
4343         (assemble_variable): ... here.  Adjust to use target hooks.
4344         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4345         SECCAT_EMUTLS_TMPL.
4346         * c-common.c (handle_section_attribute): Prevent overriding
4347         sections for emulated tls with special sections.
4348         * config/i386/i386.c (x86_64_elf_select_section): Add
4349         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4350         (x86_64_elf_unique_section): Likewise.
4351         * config/vxworks.c: Include tree.h.
4352         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4353         (vxworks_override_options): Set TLS scheme.
4354         * doc/tm.texi (Emulated TLS): New node.
4355
4356 2008-04-26  Simon Baldwin <simonb@google.com>
4357
4358         PR c/35652
4359         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4360         with propagated string constants.
4361
4362 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4363
4364         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4365         constraint for operand 2 when operand 0 is memory operand.
4366         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4367         operand 0 is memory operand.
4368         (fix_trunc<mode>_i387_with_temp): Ditto.
4369         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4370         operand 2 when operand 1 is memory operand.
4371         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4372         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4373         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4374         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4375         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4376         operands 2,3 and 4 when operand 1 is memory operand.
4377         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4378         is memory operand.
4379         (fistdi2_floor_with_temp): Ditto.
4380         (fist<mode>2_floor_with_temp): Ditto.
4381         (fistdi2_ceil_with_temp): Ditto.
4382         (fist<mode>2_ceil_with_temp): Ditto.
4383         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4384
4385 2008-04-26  David Daney  <ddaney@avtrex.com>
4386
4387         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4388         unspec_volitile.
4389         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4390         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4391         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4392         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4393         (compare_and_swap_12): New insn.
4394         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4395         * config/mips/mips.c (mips_force_binary): New function.
4396         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4397         (mips_expand_compare_and_swap_12): New function.
4398         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4399
4400 2008-04-25  Jan Hubicka  <jh@suse.cz>
4401
4402         PR testsuite/35843
4403         * cfgexpand.c (pass_expand): Turn into RTL pass.
4404         * passes.c (execute_one_pass): Do pass typechecking after execution.
4405         * tree-pass.h (pass_expand): Turn into RTL pass.
4406
4407         * function.h (struct rtl_data): Move here fields
4408         accesses_prior_frames, calls_eh_return, saves_all_registers,
4409         has_nonlocal_goto, has_asm_statement, is_thunk,
4410         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4411         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4412         arg_pointer_save_area_init from struct function; turn into bool.
4413         (struct function): Move
4414         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4415         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4416         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4417         tail_call_emit, arg_pointer_save_area_init
4418         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4419         (current_function_returns_struct, current_function_returns_pcc_struct,
4420         current_function_calls_setjmp, current_function_calls_alloca,
4421         current_function_accesses_prior_frames,
4422         current_function_calls_eh_return, current_function_is_thunk,
4423         current_function_stdarg, current_function_profile,
4424         current_function_limit_stack, current_function_uses_pic_offset_table,
4425         current_function_uses_const_pool, current_function_has_nonlocal_label,
4426         current_function_saves_all_registers,
4427         current_function_has_nonlocal_goto,
4428         current_function_has_asm_statement): Remove accesor macros.
4429         * ra-conflict.c (global_conflicts): Update.
4430         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4431         (suitable_for_tail_call_opt_p): Update.
4432         * builtins.c (expand_builtin_return_addr): Update.
4433         (expand_builtin_setjmp_setup): Update.
4434         (expand_builtin_nonlocal_goto): Update.
4435         * final.c (final_start_function): Update.
4436         (profile_function): Update.
4437         (leaf_function_p): Update.
4438         (only_leaf_regs_used): Update.
4439         * df-scan.c (df_get_exit_block_use_set): Update.
4440         * dojump.c (clear_pending_stack_adjust): Update.
4441         * tree-stdarg.c (gate_optimize_stdarg): Update.
4442         * gimple-low.c (lower_function_body): Update.
4443         * global.c (compute_regsets): Update.
4444         (global_alloc): Update.
4445         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4446         * expr.c (expand_assignment): Update.
4447         * dse.c (dse_step0): Update.
4448         (dse_step1): Update.
4449         * c-decl.c (store_parm_decls): Update.
4450         * local-alloc.c (combine_regs): Update.
4451         (find_free_reg): Update.
4452         * function.c (assign_parms_augmented_arg_list): Update.
4453         (assign_parm_find_data_types): Update.
4454         (assign_parms): Update.
4455         (allocate_struct_function): Update.
4456         (expand_function_start): Update.
4457         (expand_function_end): Update.
4458         (get_arg_pointer_save_area): Update.
4459         (thread_prologue_and_epilogue_insns): Update.
4460         (rest_of_match_asm_constraints): Update.
4461         * stor-layout.c (variable_size): Update.
4462         * gcse.c (gcse_main): Update.
4463         (bypass_jumps): Update.
4464         * gimplify.c (gimplify_function_tree): Update.
4465         * calls.c (emit_call_1): Update.
4466         (expand_call): Update.
4467         * bt-load.c (compute_defs_uses_and_gen): Update.
4468         * except.c (sjlj_assign_call_site_values): Update.
4469         (sjlj_emit_function_enter): Update.
4470         (can_throw_external): Update.
4471         (set_nothrow_function_flags): Update.
4472         (expand_builtin_unwind_init): Update.
4473         (expand_eh_return): Update.
4474         (convert_to_eh_region_ranges): Update.
4475         (output_function_exception_table): Update.
4476         * emit-rtl.c (gen_tmp_stack_mem): Update.
4477         * cfgexpand.c (expand_used_vars): Update.
4478         (tree_expand_cfg): Update.
4479         * cfgcleanup.c (rest_of_handle_jump): Update.
4480         * explow.c (allocate_dynamic_stack_space): Update.
4481         * varasm.c (assemble_start_function): Update.
4482         (force_const_mem): Update.
4483         (mark_constant_pool): Update.
4484         * tree-optimize.c (tree_rest_of_compilation): Update.
4485         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4486         * tree-cfg.c (notice_special_calls): Update.
4487         (is_ctrl_altering_stmt): Update.
4488         (tree_can_make_abnormal_goto): Update.
4489         (tree_purge_dead_abnormal_call_edges): Update.
4490         * config/alpha/predicates.md: Update.
4491         * config/alpha/alpha.c (alpha_sa_mask): Update.
4492         (alpha_sa_size): Update.
4493         (alpha_does_function_need_gp): Update.
4494         (alpha_expand_prologue): Update.
4495         (alpha_start_function): Update.
4496         (alpha_output_function_end_prologue): Update.
4497         (alpha_expand_epilogue): Update.
4498         * config/frv/frv.c (frv_stack_info): Update.
4499         (frv_expand_epilogue): Update.
4500         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4501         (s390_register_info): Update.
4502         (s390_frame_info): Update.
4503         (s390_init_frame_layout): Update.
4504         (s390_can_eliminate): Update.
4505         (save_gprs): Update.
4506         * config/spu/spu.c (spu_split_immediate): Update.
4507         (need_to_save_reg): Update.
4508         (spu_expand_prologue): Update.
4509         (spu_expand_epilogue): Update.
4510         * config/sparc/sparc.md: Update.
4511         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4512         (sparc_tls_got): Update.
4513         (legitimize_pic_address): Update.
4514         (sparc_emit_call_insn): Update.
4515         (sparc_expand_prologue): Update.
4516         (output_return): Update.
4517         (print_operand): Update.
4518         (sparc_function_ok_for_sibcall): Update.
4519         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4520         * config/m32r/m32r.md: Update.
4521         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4522         (m32r_compute_frame_size): Update.
4523         (m32r_expand_prologue): Update.
4524         (m32r_expand_epilogue): Update.
4525         (m32r_legitimize_pic_address): Update.
4526         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4527         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4528         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4529         (gen_push): Update.
4530         (ix86_save_reg): Update.
4531         (ix86_compute_frame_layout): Update.
4532         (ix86_expand_prologue): Update.
4533         (ix86_expand_epilogue): Update.
4534         * config/sh/sh.c (output_stack_adjust): Update.
4535         (calc_live_regs): Update.
4536         (sh5_schedule_saves): Update.
4537         (sh_expand_prologue): Update.
4538         (sh_expand_epilogue): Update.
4539         (sh_setup_incoming_varargs): Update.
4540         (sh_allocate_initial_value): Update.
4541         (sh_get_pr_initial_val): Update.
4542         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4543         * config/sh/sh.md (label:): Update.
4544         * config/avr/avr.c (out_movhi_mr_r): Update.
4545         * config/crx/crx.h (enum): Update.
4546         * config/xtensa/xtensa.h (along): Update.
4547         * config/stormy16/stormy16.c Update.
4548         (xstormy16_compute_stack_layout): Update.
4549         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4550         (fr30_expand_prologue): Update.
4551         * config/cris/cris.c (cris_conditional_register_usage): Update.
4552         (cris_reg_saved_in_regsave_area): Update.
4553         (cris_initial_frame_pointer_offset): Update.
4554         (cris_simple_epilogue): Update.
4555         (cris_expand_prologue): Update.
4556         (cris_expand_epilogue): Update.
4557         (cris_expand_pic_call_address): Update.
4558         (cris_asm_output_symbol_ref): Update.
4559         (cris_asm_output_label_ref): Update.
4560         * config/cris/cris.md Update.
4561         * config/iq2000/iq2000.c (compute_frame_size): Update.
4562         (iq2000_expand_epilogue): Update.
4563         * config/mt/mt.h (save_direction): Update.
4564         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4565         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4566         (ia64_secondary_reload_class): Update.
4567         * config/m68k/m68k.c (m68k_save_reg): Update.
4568         (m68k_expand_prologue): Update.
4569         (m68k_expand_epilogue): Update.
4570         (legitimize_pic_address): Update.
4571         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4572         (first_reg_to_save): Update.
4573         (first_altivec_reg_to_save): Update.
4574         (compute_vrsave_mask): Update.
4575         (compute_save_world_info): Update.
4576         (rs6000_stack_info): Update.
4577         (spe_func_has_64bit_regs_p): Update.
4578         (rs6000_ra_ever_killed): Update.
4579         (rs6000_emit_eh_reg_restore): Update.
4580         (rs6000_emit_allocate_stack): Update.
4581         (rs6000_emit_prologue): Update.
4582         (rs6000_emit_epilogue): Update.
4583         (rs6000_output_function_epilogue): Update.
4584         (output_profile_hook): Update.
4585         (rs6000_elf_declare_function_name): Update.
4586         * config/rs6000/rs6000.h (rs6000_args): Update.
4587         * config/rs6000/rs6000.md: Update.
4588         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4589         * config/arc/arc.c (arc_output_function_epilogue): Update.
4590         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4591         * config/darwin.c (machopic_function_base_name): Update.
4592         * config/score/score3.c (score3_compute_frame_size): Update.
4593         (rpush): Update.
4594         (rpop): Update.
4595         (score3_epilogue): Update.
4596         * config/score/score7.c (score7_compute_frame_size): Update.
4597         (score7_prologue): Update.
4598         (score7_epilogue): Update.
4599         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4600         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4601         * config/arm/arm.c (use_return_insn): Update.
4602         (require_pic_register): Update.
4603         (arm_load_pic_register): Update.
4604         (arm_compute_save_reg0_reg12_mask): Update.
4605         (arm_compute_save_reg_mask): Update.
4606         (thumb1_compute_save_reg_mask): Update.
4607         (output_return_instruction): Update.
4608         (arm_output_function_prologue): Update.
4609         (arm_output_epilogue): Update.
4610         (arm_get_frame_offsets): Update.
4611         (arm_expand_prologue): Update.
4612         (thumb_pushpop): Update.
4613         (thumb_exit): Update.
4614         (thumb1_expand_prologue): Update.
4615         (thumb1_expand_epilogue): Update.
4616         (arm_unwind_emit): Update.
4617         (arm_output_fn_unwind): Update.
4618         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4619         * config/arm/arm.md: Update.
4620         * config/pa/pa.md: Update.
4621         * config/pa/pa.c (legitimize_pic_address): Update.
4622         (compute_frame_size): Update.
4623         (hppa_expand_prologue): Update.
4624         (hppa_expand_epilogue): Update.
4625         (borx_reg_operand): Update.
4626         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4627         (HARD_REGNO_RENAME_OK): Update.
4628         * config/mips/mips.c (mips_global_pointer): Update.
4629         (mips_save_reg_p): Update.
4630         (mips_compute_frame_info): Update.
4631         (mips_frame_pointer_required): Update.
4632         (mips_expand_prologue): Update.
4633         (mips_expand_epilogue): Update.
4634         (mips_can_use_return_insn): Update.
4635         (mips_reorg_process_insns): Update.
4636         * config/v850/v850.c (compute_register_save_size): Update.
4637         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4638         * config/mmix/mmix.c (along): Update.
4639         (mmix_expand_epilogue): Update.
4640         * config/bfin/bfin.c (legitimize_pic_address): Update.
4641         (must_save_p): Update.
4642         (stack_frame_needed_p): Update.
4643         (add_to_reg): Update.
4644         (bfin_expand_prologue): Update.
4645         * stmt.c (expand_asm_operands): Update.
4646         * reload1.c (reload): Update.
4647         (init_elim_table): Update.
4648
4649 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4650         
4651         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4652         
4653 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4654
4655         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4656         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4657         (mov<mode>): Removed.
4658         (*movv4sf_internal): Likewise.
4659         (*movv2df_internal): Likewise.
4660
4661 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4662
4663         * config.gcc (crx-*-elf): Remove deprecation.
4664
4665 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4666
4667         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4668         __gcc_deregister_frame with atexit.
4669         (deregister_frame_dtor): Remove.
4670
4671 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4672             Nathan Sidwell  <nathan@codesourcery.com>
4673
4674         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4675         (misel): Likewise.
4676         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4677         (rs6000_isel): Likewise.
4678         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4679         (rs6000_isel): New variable.
4680         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4681
4682 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4683
4684         PR c++/35758
4685         * c-common.c (handle_vector_size_attribute): Call
4686         lang_hooks.types.reconstruct_complex_type instead of
4687         reconstruct_complex_type.
4688         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4689         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4690         * langhooks.h (struct lang_hooks_for_types): Add
4691         reconstruct_complex_type hook.
4692         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4693         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4694
4695 2008-04-24  Richard Guenther  <rguenther@suse.de>
4696
4697         * c-common.h (check_builtin_function_arguments): Declare.
4698         * c-common.c (validate_nargs): New function.
4699         (check_builtin_function_arguments): Likewise.
4700         * c-typeck.c (build_function_call): Call
4701         check_builtin_function_arguments.
4702         * builtins.c (fold_builtin_classify): Remove error reporting code.
4703         (fold_builtin_unordered_cmp): Likewise.
4704         (fold_builtin_1): Likewise.
4705         (fold_builtin_n): Likewise.
4706
4707 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4708
4709         PR tree-optimization/36008
4710         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4711         the original op1, rather than delta by step.
4712
4713 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4714             Sebastian Pop  <sebastian.pop@amd.com>
4715
4716         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4717         eliminate_local_variables_stmt, eliminate_local_variables,
4718         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4719         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4720         of code delimited by two edges in the CFG.
4721         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4722         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4723         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4724         the case of parallelisation of reductions.
4725         (expr_invariant_in_region_p): New.
4726
4727         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4728         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4729
4730 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4731             Richard Guenther  <rguenther@suse.de>
4732
4733         PR tree-optimization/36034
4734         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4735         incapable of dealing with loads with gaps.
4736
4737 2008-04-24  Rafael Espindola  <espindola@google.com>
4738
4739         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4740         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4741         vrp_evaluate_conditional.
4742         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4743         (vrp_evaluate_conditional): Split the cond argument.
4744         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4745         (simplify_stmt_for_jump_threading): Update call to
4746         vrp_evaluate_conditional.
4747
4748 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4749
4750         PR tree-optimization/35982
4751         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4752         interleaved data-refs are of the same type.
4753
4754 2008-04-24  Danny Smith  <dannysmith@users.net>
4755
4756         * c-format.c (check_format_info_main): Use strncmp rather than a
4757         magic prefix to handle multichar length specs.
4758         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4759         Don't prefix "I64" and "I32" with '\0'.
4760
4761 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4762
4763         PR target/36015
4764         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4765         in registers for -m32 only if stdarg_p (fntype).
4766
4767 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4768
4769         PR rtl-optimization/36006
4770         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4771         temp to op0 in order to avoid invalid rtx sharing.
4772
4773 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4774
4775         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4776         check TREE_INVARIANT.
4777         * tree-gimple.c (is_gimple_address): New.
4778         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4779         * tree-gimple.h (is_gimple_address): New.
4780         * tree.h (decl_address_invariant_p): New.
4781         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4782         (build_string): Likewise.
4783         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4784         (tree_invariant_p_1): Likewise.
4785         (save_expr): Use it.
4786         (tree_invariant_p): New.
4787         (skip_simple_arithmetic): Use it.
4788         (stabilize_reference_1): Use it.
4789         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4790         simplify.
4791         (build1_stat): Drop code to compute TREE_INVARIANT.
4792         (build2_stat): Drop code to compute TREE_INVARIANT.
4793         (build3_stat): Drop code to compute TREE_INVARIANT.
4794         (build4_stat): Drop code to compute TREE_INVARIANT.
4795         (build5_stat): Drop code to compute TREE_INVARIANT.
4796         (build7_stat): Drop code to compute TREE_INVARIANT.
4797         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4798         * tree.h (struct tree_base): Remove invariant_flag.
4799         (TREE_INVARIANT): Remove.
4800         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4801         (fold_builtin_expect): Check TREE_CONSTANT.
4802         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4803         * c-tree.h (c_expr_to_decl): Drop third parameter.
4804         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4805         (build_c_cast): Don't set TREE_INVARIANT.
4806         (pop_init_level): Don't set TREE_INVARIANT.
4807         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4808         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4809         TREE_CONSTANT.
4810         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4811         (gimplify_addr_expr): Adjust comment.
4812         * tree-mudflap.c (mf_build_string):
4813         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4814         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4815         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4816         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4817         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4818         * langhooks.h (struct lang_hooks): Drop third parameter from
4819         expr_to_decl.
4820
4821 2008-04-23  Richard Guenther  <rguenther@suse.de>
4822
4823         PR tree-optimization/27799
4824         PR tree-optimization/32921
4825         PR tree-optimization/32624
4826         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4827         SMTs aliases and the tag itself into the solution.
4828         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4829         merge the points-to solution back into the SMT aliases.
4830         (may_alias_p): Use alias_set_subset_of instead of
4831         aliases_conflict_p.  A pointer which points to
4832         memory with alias set zero may access any variable.
4833
4834 2008-04-23  Richard Guenther  <rguenther@suse.de>
4835
4836         * alias.c (alias_set_subset_of): Correctly handle asking
4837         if zero is a subset of an alias set with zero child.
4838         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4839         (compute_flow_insensitive_aliasing): Correctly walk all
4840         pointers.  Do not unnecessarily union sets.
4841
4842 2008-04-23  Richard Guenther  <rguenther@suse.de>
4843
4844         PR middle-end/36021
4845         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4846
4847 2008-04-22  Tomas Bily  <tbily@suse.cz>
4848
4849         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4850         unreachable case.
4851         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4852         NON_LVALUE_EXPR.
4853         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4854         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4855         * tree-inline.c (estimate_num_insns_1): Likewise.
4856         * varasm.c (const_hash_1, compare_constant, copy_constant)
4857         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4858         * emit-rtl.c (component_ref_for_mem_expr)
4859         (set_mem_attributes_minus_bitpos): Likewise.
4860         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4861         (is_aligning_offset): Likewise.
4862         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4863         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4864         * dojump.c (do_jump): Likewise.
4865         * builtins.c (get_pointer_alignment, get_memory_rtx)
4866         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4867         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4868
4869 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4870
4871         PR rtl-optimization/36017
4872         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4873         expanding the library call.
4874
4875 2008-04-22  Ian Lance Taylor  <iant@google.com>
4876
4877         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4878         than size_in_bytes.
4879
4880 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4881
4882         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4883         of LR/CTR moves for Power6.
4884
4885 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4886
4887         PR middle-end/36003
4888         * passes.c (init_optimization_passes): Remove
4889         pass_fast_rtl_byte_dce.
4890         
4891 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4892
4893         PR target/29096
4894         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4895         builtin functions to generate faster code.
4896         (_mm_cvtpu16_ps): Ditto.
4897         (_mm_cvtpi32x2_ps): Ditto.
4898
4899 2008-04-22  Nick Clifton  <nickc@redhat.com>
4900
4901         * common.opt (ftree-loop-distribution): Add Optimization
4902         attribute.
4903
4904         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4905         (frv_expand_builtin_va_start): Likewise.
4906
4907         * config/arm/arm.c (thumb_find_work_register): Fix location of
4908         argument register count.
4909
4910 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4911
4912         Support scheduling for ColdFire V1 and V3 microarchitecture.
4913         Improve scheduling of multiplication instructions.
4914
4915         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4916         (mac): New instruction attribute.
4917         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4918         (m68k_sched_mac): New variable.
4919         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4920         Handle cfv1 and cfv3.
4921         (max_insn_size): New static variable.
4922         (struct _sched_ib): New type.
4923         (sched_ib): New static variable.
4924         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4925         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4926         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4927         Update.
4928         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4929         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4930         new variables.  Update.
4931         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4932         Add modeling of cfv3 instruction buffer.  Update.
4933         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4934         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4935         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4936         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4937         a particular reservation applies to.
4938         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4939         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4940         to mul_l and mul_w.
4941         (cf_ib_*): Simplify description of instruction buffer.
4942         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4943         (cf_mem): Split into cf_mem1 and cf_mem2.
4944         (cf_v2_move_??): Rename to cfv12_alu_??.
4945         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4946         (cf_v2_mul_??): Remove reservations.
4947         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4948         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4949         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4950         appropriate place.
4951         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4952         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4953         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4954         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4955         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4956         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4957         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4958         expansions of the above reservations for instructions of sizes
4959         1, 2 and 3 words.
4960
4961 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4962
4963         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4964
4965 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4966
4967         * coverage.c: Include tree-pass.h.
4968         (coverage_counter_alloc): Print da_file_name to the dump file.
4969
4970 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4971
4972         * sbitmap.c (sbitmap_range_empty_p): New function.
4973         * sbitmap.h (sbitmap_range_empty_p): New function.
4974         * bitmap.h: Now includes obstack.h.
4975
4976 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4977             Kenneth Zadeck  <zadeck@naturalbridge.com>
4978
4979         * dbgcnt.def (ra_byte_scan): Added.
4980         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4981         when the last hit happens for a counter.  
4982         * timevar.def (TV_DF_BYTE_LR): New variable.
4983         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4984         * passes.c (pass_fast_rtl_byte_dce): New pass.
4985         * fwprop.c (update_df): Added mode to call df_ref_create.
4986         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4987         DF_REF_EXTRACT_OFFSET.
4988         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4989         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4990         (df_mm): New enum.
4991         (df_ref_extract): Added mode field.
4992         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4993         DF_REF_EXTRACT_OFFSET.
4994         (DF_REF_EXTRACT_MODE): New macro.
4995         (df_byte_lr_bb_info): New structure.
4996         (df_print_byte_regset, df_compute_accessed_bytes, 
4997         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4998         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4999         df_byte_lr_simulate_uses,
5000         df_byte_lr_simulate_artificial_refs_at_top,
5001         df_byte_lr_simulate_artificial_refs_at_end,
5002         df_compute_accessed_bytes): New function.
5003         (df_ref_create): Add parameter.
5004         (df_byte_lr_get_bb_info): New inline function.
5005         * df-scan.c (df_ref_record, df_uses_record,
5006         df_ref_create_structure): Added mode parameter.
5007         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
5008         df_defs_record, df_uses_record, df_get_conditional_uses,
5009         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
5010         df_entry_block_defs_collect, df_exit_block_uses_collect):
5011         Added mode parameter to calls to df_ref_record, df_uses_record,
5012         df_ref_create_structure.
5013         (df_ref_equal_p, df_ref_compare): Added test for modes.
5014         (df_ref_create_structure): Added code to set mode.  Renamed
5015         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5016         DF_REF_EXTRACT_OFFSET.
5017         * df-core.c (df_print_byte_regset): New function.
5018         * df-byte-scan.c: New file.
5019         * df-problems.c (df_rd_transfer_function): Removed unnecessary
5020         calls to BITMAP_FREE.  
5021         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5022         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5023         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
5024         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
5025         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5026         df_byte_lr_local_compute, df_byte_lr_init,
5027         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
5028         df_byte_lr_transfer_function, df_byte_lr_free, 
5029         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5030         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
5031         df_byte_lr_simulate_uses,
5032         df_byte_lr_simulate_artificial_refs_at_top,
5033         df_byte_lr_simulate_artificial_refs_at_end): New function.
5034         * dce.c (byte_dce_process_block): New function.
5035         (dce_process_block): au is now passed in rather than computed
5036         locally.  Changed loops that look at artificial defs to not look
5037         for conditional or partial ones, because there never are any.  
5038         (fast_dce): Now is able to drive byte_dce_process_block or 
5039         dce_process_block depending on the kind of dce being done.
5040         (rest_of_handle_fast_dce): Add parameter to fast_dce.
5041         (rest_of_handle_fast_byte_dce): New function.
5042         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5043         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5044
5045 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5046
5047         PR fortran/35019
5048         * gcc.h: Added fortran options that take arguments to
5049         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5050         macros.
5051
5052 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5053
5054         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5055         scalarization if on the LHS and not a full access.
5056
5057 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5058
5059         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5060
5061 2008-04-18  Rafael Espindola  <espindola@google.com>
5062
5063         * tree-vrp.c (find_case_label_index): Fix the binary search.
5064         (find_case_label_range): New.
5065         (vrp_visit_switch_stmt): Use find_case_label_range.
5066         (simplify_switch_using_ranges): Use find_case_label_range.
5067
5068 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5069
5070         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5071         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5072
5073 2008-04-18  Tom Tromey  <tromey@redhat.com>
5074
5075         PR libcpp/15500:
5076         * doc/cpp.texi (Implementation-defined behavior): Mention
5077         -finput-charset.
5078
5079 2008-04-18  Ian Lance Taylor  <iant@google.com>
5080
5081         * fold-const.c (pointer_may_wrap_p): New static function.
5082         (fold_comparison): Add another test for pointer overflow.  Use
5083         pointer_may_wrap_p to disable some false positives.
5084
5085 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5086           
5087         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5088         (fname_as_string): Match updated cpp_interpret_string prototype.
5089         (fix_string_type): Support char16_t* and char32_t*.
5090         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5091         derivative) nodes.  Register as builtin if C++0x.
5092         (c_parse_error): Support CPP_CHAR{16,32}.
5093         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5094         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5095         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5096         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5097         CTI_CHAR32_ARRAY_TYPE>: New elements.
5098         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5099         char32_type_node, signed_char32_type_node, char16_array_type_node,
5100         char32_array_type_node): New defines.
5101         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5102         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5103         (lex_string): Support CPP_STRING{16,32}, match updated
5104         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5105         (lex_charconst): Support CPP_CHAR{16,32}.
5106         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5107         and CPP_STRING{16,32}.
5108
5109 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5110
5111         PR bootstrap/35457
5112         * aclocal.m4: Regenerate.
5113         * configure: Regenerate.
5114
5115 2008-04-18  Jan Hubicka  <jh@suse.cz>
5116
5117         * except.c (dw2_size_of_call_site_table,
5118         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5119
5120         * cgraphbuild.c (build_cgraph_edges): Update.
5121         * tree-pass.h: Update comment.
5122         * final.c (leaf_function_p): Update.
5123         (leaf_renumber_regs): Update.
5124         (rest_of_clean_state): Update.
5125         * omp-low.c (expand_omp_parallel): Update.
5126         * ipa-reference.c (analyze_function): Update.
5127         * reorg.c (find_end_label): Update.
5128         (optimize_skip): Update.
5129         (fill_simple_delay_slots): Update.
5130         (fill_simple_delay_slots): Update.
5131         (make_return_insns): Update.
5132         (dbr_schedule): Update.
5133         * gimple-low.c (record_vars_into): Update.
5134         * cfgbuild.c (make_edges): Update.
5135         * function.c (assign_stack_local): Update.
5136         (assign_parm_adjust_stack_rtl): Update.
5137         (locate_and_pad_parm): Update.
5138         (allocate_struct_function): Do not initialize stack_alignment_needed
5139         and preferred_stack_boundary here.
5140         (stack_protect_prologue): Update.
5141         (stack_protect_epilogue): Update.
5142         (expand_function_start): Initialize stack_alignment_needed,
5143         preferred_stack_boundary and max_jumptable_ents.
5144         (expand_function_end): Update.
5145         (free_after_compilation): Do not NULLify epilogue_delay_list.
5146         * function.h (struct rtl_data): Add stack_protect_guard,
5147         stack_alignment_needed,
5148         preferred_stack_boundary, epilogue_delay_list.
5149         (struct function): Remove value_histograms, stack_alignment_needed,
5150         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5151         last_label_uid,
5152         unexpanded_var_list, stack_protect_guard.
5153         (current_function_epilogue_delay_list): Remove.
5154         * ipa-type-escape.c (analyze_function): Update.
5155         * gimplify.c (pop_gimplify_context): Update comment.
5156         * calls.c (expand_call): Update.
5157         (emit_library_call_value_1): Update.
5158         * except.c (set_nothrow_function_flags): Update.
5159         * cfgexpand.c (get_decl_align_unit): Update.
5160         (create_stack_guard): Update.
5161         (estimated_stack_frame_size): Update.
5162         (expand_used_vars): Update.
5163         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5164         * explow.c (allocate_dynamic_stack_space): Update.
5165         * tree-ssa-live.c (remove_unused_locals): Update.
5166         * varasm.c (mark_constant_pool): Update.
5167         * tree-inline.c (remap_decls): Update.
5168         (initialize_cfun): Update.
5169         (declare_return_variable): Update.
5170         (inline_forbidden_p): Update.
5171         (expand_call_inline): Update.
5172         (declare_inline_vars): Update.
5173         (tree_function_versioning): Update.
5174         * tree-flow.h (value_histograms): New.
5175         (VALUE_HISTOGRAMS): New macro.
5176         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5177         last_label_uid.
5178         * tree-cfg.c (set_bb_for_stmt): Update.
5179         (replace_by_duplicate_decl): Update.
5180         (move_block_to_fn): Update.
5181         (new_label_mapper): Update.
5182         (dump_function_to_file): Update.
5183         * ipa-struct-reorg.c (build_data_structure): Update.
5184         * cfgrtl.c (print_rtl_with_bb): Update.
5185         * reload1.c (reload): Update.
5186         (reload): Update.
5187         * config/i386/i386.c (setup_incoming_varargs_64,
5188         ix86_compute_frame_layout): Update.
5189         * config/arc/arc.c (arc_output_function_epilogue): Update.
5190
5191 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5192
5193         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5194         for FreeBSD as well.
5195         * gthr-posix95.h: Likewise.
5196
5197 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5198
5199         PR rtl-optimization/35838
5200         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5201         out the byte offset of the first subreg.
5202
5203 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5204
5205         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5206         to split_ti instead of three separate calls with single member arrays.
5207         (subti3 splitter): Ditto.
5208         (adddi3 splitter): Ditto with split_di.
5209         (subdi3 splitter): Ditto.
5210         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5211         two separate calls with single member arrays.  Swap match_dup
5212         operands 1 and 2 to better fit into the array.
5213         (negdi2 splitter): Ditto with split_di.
5214         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5215         two separate calls with single member arrays.  Swap match_dup operands
5216         6 and 7 to better fit into the array.
5217
5218 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5219
5220         * config/i386/i386.c (sse_builtin_type): New.
5221         (bdesc_sse_args): Likewise.
5222         (bdesc_sse_3arg): Removed.
5223         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5224         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5225         IX86_BUILTIN_ROUNDPS.
5226         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5227         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5228         IX86_BUILTIN_ROUNDPS.
5229         (ix86_expand_sse_4_operands_builtin): Removed.
5230         (ix86_expand_sse_operands_builtin): New.
5231         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5232         and CODE_FOR_sse4_1_roundps.
5233         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5234         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5235
5236 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5237
5238         PR target/35907
5239         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5240         regs before frame pop when needed.  If use_backchain_to_restore_sp
5241         then load backchain into a temp reg to restore vr and vrsave.  Add
5242         code to restore vr after frame pop if possible.
5243
5244 2008-04-17  Richard Guenther  <rguenther@suse.de>
5245
5246         * tree-vn.c (expressions_equal_p): Do not check type
5247         equality or compatibility before calling operand_equal_p.
5248         * fold-const.c (operand_equal_p): Check equivalence of
5249         integer constants before bailing out due to signedness or
5250         precision differences.
5251         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5252         spurious differences in type qualification.  Ignore types
5253         for COMPONENT_REFs at all.
5254
5255 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5256
5257         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5258         msw_skip comparison.
5259         
5260 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5261
5262         PR c/35739
5263         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5264         reg type.
5265
5266         PR tree-optimization/35899
5267         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5268         rather than TREE_OPERAND.
5269
5270 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5271
5272         PR target/35944
5273         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5274         temporary registers.  Change operand predicate to general_operand.
5275         (remainderxf3): Ditto.
5276
5277 2008-04-16  Richard Guenther  <rguenther@suse.de>
5278
5279         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5280         * tree-affine.c (aff_combination_expand): Look through some
5281         conversions.
5282
5283 2008-04-15  Doug Kwan  <dougkwan@google.com>
5284
5285         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5286         for hex printing.
5287         * tree-pretty-print.c (dump_generic_node): Ditto.
5288         * final.c (output_addr_const): Ditto.
5289         * dwarf2out.c (output_cfi): Ditto.
5290         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5291         * print-rtl.c (print_rtx): Ditto.
5292         * print-tree.c (print_node_brief, print_node): Ditto.
5293         * c-common.c (match_case_to_enum_1): Ditto.
5294         * sched-vis.c (print_value): Ditto.
5295         * config/i386/i386.c (print_operand): Cast to long unsigned int
5296         for hex printing.
5297
5298 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5299         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5300         MS Windows VirtualProtect function.
5301
5302 2008-04-15  Jan Hubicka  <jh@suse.cz>
5303
5304         * gengtype.c (write_root): Param_is argument is OK.
5305         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5306         * function.h: Include varray.h
5307         (rtl_eh): New stucture based on except.c one.
5308         (call_site_record): New forward declaration and vector type.
5309         * calls.c (emit_call_1): Do not call
5310         note_current_region_may_contain_throw.
5311         * except.c (eh_status): Remove cur_region, try_region since they are
5312         unused.
5313         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5314         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5315         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5316         Remove call_site_data_used, call_site_data_size.
5317         Turn call_site_record into vector in function.h.
5318         (note_current_region_may_contain_throw): Remove.
5319         (get_exception_pointer, get_exception_filter): Do not take struct
5320         function argument; update.
5321         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5322         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5323         build_post_landing_pads, dw2_build_landing_pads,
5324         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5325         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5326         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5327         sjlj_build_landing_pads, finish_eh_generation,
5328         remove_exception_handler_label, remove_eh_handler,
5329         maybe_remove_eh_handler, add_reachable_handler,
5330         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5331         add_action_record, collect_one_action_chain, add_call_site,
5332         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5333         sjlj_output_call_site_table, output_function_exception_table,
5334         * except.h (note_current_region_may_contain_throw): Remove
5335         (get_exception_pointer, get_exception_filter): Do not take struct
5336         function argument.
5337         * Makefile.in (GTFILES): Put varargs before struct function.
5338
5339 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5340
5341         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5342         punt for STRING_CST.
5343         (get_constraint_for): Deal with STRING_CST here instead.
5344
5345 2008-04-15  Richard Guenther  <rguenther@suse.de>
5346
5347         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5348         statements in a basic-block with a backward walk.  Do not
5349         substitute into dead statements but instead remove those.
5350
5351 2008-04-15  Richard Guenther  <rguenther@suse.de>
5352
5353         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5354         to zero, thus disable creation of SFTs.
5355
5356 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5357
5358         * tree-predcom.c (suitable_reference_p): Return false if the
5359         reference can throw.
5360
5361 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5362
5363         PR c/35751
5364         * c-decl.c (finish_decl): If extern or static var has variable
5365         size, set TREE_TYPE (decl) to error_mark_node.
5366
5367 2008-04-15  Rafael Espindola  <espindola@google.com>
5368
5369         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5370         variable arg1.
5371
5372 2008-04-15  Richard Guenther  <rguenther@suse.de>
5373
5374         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5375         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5376         (visit_reference_op_load): Do walk vuse-vdef chains on
5377         vn_reference_lookup.
5378         (visit_reference_op_store): But do not here.
5379         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5380         vn_reference_lookup.
5381         (vn_lookup_with_vuses): But do so here.
5382
5383 2008-04-14  Ian Lance Taylor  <iant@google.com>
5384
5385         * fold-const.c (fold_overflow_warning): Remove assertion.
5386
5387 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5388
5389         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5390         temp1 local variables.
5391
5392 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5393
5394         PR target/35661
5395         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5396         ".text.unlikely" section as executable.
5397
5398 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5399
5400         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5401         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5402         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5403         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5404         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5405         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5406         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5407
5408 2008-04-14  Ian Lance Taylor  <iant@google.com>
5409
5410         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5411         * fold-const.c (fold_comparison): If appropriate, test
5412         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5413         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5414         reassociating a pointer type.
5415         * doc/invoke.texi (Optimize Options): Document that
5416         -fstrict-overflow applies to pointer wraparound.
5417
5418 2008-04-13  Jan Hubicka  <jh@suse.cz>
5419
5420         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5421
5422 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5423
5424         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5425         we are going to "save the world".
5426
5427 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5428
5429         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5430         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5431         operand 0 constraint, not "=".
5432
5433 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5434
5435         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5436
5437 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5438
5439         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5440         of size of positions_needed * CHAR_BIT.
5441
5442 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5443
5444         PR middle-end/35897
5445         * dse.c (store_info): Change positions_needed to unsigned
5446         HOST_WIDE_INT.
5447         (lowpart_bitmask): New.
5448         (record_store): Cast to unsigned HOST_WIDE_INT for
5449         positions_needed.  Assert width <= size of positions_needed *
5450         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5451         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5452         lowpart_bitmask to set mask.
5453
5454 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5455
5456         * config/bfin/constraints.md: New file.
5457         * config/bfin/bfin.md: Include it.
5458         (adddi3): Use satisfies_constraint functions instead of the old macros.
5459         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5460         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5461         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5462         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5463         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5464         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5465         EXTRA_CONSTRAINT): Delete.
5466         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5467         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5468         of the old macros.
5469         * config/bfin/bfin.c: Include "tm-constrs.h".
5470         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5471         Use satisfies_constraint functions instead of the old macros.
5472         * doc/md.texi (Blackfin Constraints): Update file name reference.
5473
5474 2008-04-11  Richard Guenther  <rguenther@suse.de>
5475
5476         PR tree-optimization/35869
5477         * tree-vrp.c (execute_vrp): Move switch statement update after
5478         jump threading.  Schedule another cfg cleanup run.
5479
5480 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5481
5482         PR c/35744
5483         * attribs.c (decl_attributes): Return early on errorneous node.
5484
5485 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5486
5487         * tree.h (struct tree_base): Added a new flag default_def_flag.
5488         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5489
5490 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5491
5492         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5493
5494 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5495
5496         PR target/35768
5497         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5498         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5499         (icacheflush): Likewise.
5500         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5501         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5502
5503 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5504
5505         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5506
5507 2008-04-10  Rafael Espindola  <espindola@google.com>
5508
5509         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5510         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5511         (extract_range_from_expr): The same.
5512
5513 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5514
5515         * config/mips/mips.md (GPR2): New mode iterator.
5516         (seq): Add comment.
5517         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5518         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5519         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5520         Rewrite these to take two modes, the mode of comparison and the
5521         mode of the destination.
5522         * config/mips/mips.c (mips_expand_scc): Instead of having
5523         paradoxical subreg as destination, expand "narrowing" scc if mode
5524         of comparison is SI and target is requested in DI mode.
5525         (mips_emit_int_order_test): Update comment.  Make mode of
5526         comparison match CMP0 rather than TARGET.  When creating inverse
5527         target use mode of TARGET.
5528
5529 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5530
5531         * gcov-dump.c (tag_summary): Only print summaries for the first
5532         GCOV_COUNTERS_SUMMABLE counters.
5533
5534 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5535
5536         * config/i386/i386.md (absneg): New code iterator.
5537         (absnegprefix): New code attribute.
5538         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5539         patterns using absneg code iterator.
5540         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5541         using absneg code iterator.
5542         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5543         *neg<mode>2 patterns using absneg code iterator.
5544         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5545         *negextendsfdf2 patterns using absneg code iterator.
5546         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5547         *negextendsfxf2 patterns using absneg code iterator.
5548         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5549         *negextendsfdf2 patterns using absneg code iterator.
5550         * config/i386/sse.md (<code><mode>2): Macroize expander from
5551         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5552
5553 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5554
5555         * config/s390/s390.h: Remove the remains of the recent search
5556         & replace action of current_function_outgoing_args_size.
5557
5558 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5559
5560         PR tree-optimization/35821
5561         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5562         NEW_STMT_LIST is not NULL.
5563
5564 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5565
5566         PR libstdc++/35597
5567         * toplev.c (process_options): Remove -ffunction-sections debugging
5568         warning.
5569
5570 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5571
5572         PR middle-end/PR28690
5573         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5574         than gen_rtx_fmt_ee to perform more canonicalizations.
5575
5576 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5577
5578         PR driver/35665
5579         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5580
5581 2008-04-09  Richard Guenther  <rguenther@suse.de>
5582
5583         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5584         (dump_function_to_file): Dump function arguments with types.
5585
5586 2008-04-08  Richard Guenther  <rguenther@suse.de>
5587
5588         * fold-const.c (fold_widened_comparison): Do not allow
5589         sign-changes that change the result.
5590
5591 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5592
5593         PR target/35839
5594         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5595         kinds of indirect references.
5596
5597 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5598
5599         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5600         GNU Fortran language string.
5601
5602 2008-04-08  Rafael Espindola  <espindola@google.com>
5603
5604         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5605         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5606         * tree.h (tree_call_nonnegative_warnv_p): New.
5607
5608 2008-04-08  Jan Hubicka  <jh@suse.cz>
5609
5610         * function.c (free_after_compilation): Clear out regno_reg_rtx
5611         pointer.
5612
5613 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5614
5615         Revert
5616         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5617
5618         PR middle-end/PR28690
5619         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5620         same precedence as REG_POINTER and MEM_POINTER operands.
5621
5622 2008-04-08  Richard Guenther  <rguenther@suse.de>
5623
5624         PR middle-end/35834
5625         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5626         for adding index to base.
5627
5628 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5629
5630         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5631         (MINGW_ENABLE_EXECUTE_STACK): New.
5632         (IN_LIBGCC2): For libgcc include windows.h file for
5633         function declarations.
5634
5635 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5636
5637         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5638         and tem2 if tem1 is not a REG or MULT.
5639
5640 2008-04-08  Jan Hubicka  <jh@suse.cz>
5641
5642         * function.h (incomming_args): Break out of struct function.
5643         (function_subsections): Break out of struct function.
5644         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5645         return_rtx and hard_reg_initial_vals from struct function.
5646         Kill inl_max_label_num.
5647         (current_function_pops_args, current_function_args_info,
5648         current_function_args_size, current_function_args_size,
5649         current_function_pretend_args_size,
5650         current_function_outgoing_args_size,
5651         current_function_internal_arg_pointer, current_function_return_rtx):
5652         Kill compatibility accestor macros.
5653         * builtins.c (expand_builtin_apply_args_1): Update.
5654         (expand_builtin_next_arg): Update.
5655         * df-scan.c (df_get_call_refs): Update.
5656         * dbxout.c (dbxout_function_end): Update.
5657         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5658         (output_line_info): Update.
5659         (secname_for_decl): Update.
5660         (dwarf2out_var_location): Update.
5661         * function.c (free_after_compilation): Update.
5662         (assign_parm_find_stack_rtl): Update.
5663         (assign_parms): Update.
5664         (expand_dummy_function_end): Update.
5665         (expand_function_end): Update.
5666         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5667         (expand_call): Update.
5668         (emit_library_call_value_1): Update.
5669         (store_one_arg): Update.
5670         * varasm.c (initialize_cold_section_name): Update.
5671         (unlikely_text_section): Update.
5672         (unlikely_text_section_p): Update.
5673         (assemble_start_function): Update.
5674         (assemble_end_function): Update.
5675         (default_section_type_flags): Update.
5676         (switch_to_section): Update.
5677         * integrate.c (set_decl_abstract_flags): Update.
5678         (get_hard_reg_initial_val): Update.
5679         (has_hard_reg_initial_val): Update.
5680         (allocate_initial_values): Update.
5681         * resource.c (init_resource_info): Update.
5682         * config/alpha/alpha.c (NUM_ARGS): Update.
5683         (direct_return): Update.
5684         (alpha_va_start): Update.
5685         (alpha_sa_size): Update.
5686         (alpha_initial_elimination_offset): Update.
5687         (alpha_expand_prologue): Update.
5688         (alpha_start_function): Update.
5689         (alpha_expand_epilogue): Update.
5690         (unicosmk_initial_elimination_offset):
5691         * config/alpha/alpha.md (call expander): Update.
5692         * config/s390/s390.c (s390_register_info): Update.
5693         (s390_register_info): Update.
5694         (s390_frame_info): Update.
5695         (s390_initial_elimination_offset): Update.
5696         (s390_build_builtin_va_list): Update.
5697         (s390_va_start): Update.
5698         * config/spu/spu.c (direct_return): Update.
5699         (spu_expand_prologue): Update.
5700         (spu_initial_elimination_offset): Update.
5701         (spu_build_builtin_va_list): Update.
5702         (spu_va_start): Update.
5703         * config/sparc/sparc.c (sparc_init_modes): Update.
5704         (sparc_compute_frame_size): Update.
5705         (function_value): Update.
5706         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5707         * config/i386/i386.md (return expander): Update.
5708         * config/i386/i386.c (ix86_va_start): Update.
5709         (ix86_can_use_return_insn_p): Update.
5710         (ix86_compute_frame_layout): Update.
5711         (ix86_expand_epilogue): Update.
5712         * config/sh/sh.c (output_stack_adjust): Update.
5713         (calc_live_regs): Update.
5714         (sh_expand_prologue): Update.
5715         (sh_builtin_saveregs): Update.
5716         (sh_va_start): Update.
5717         (initial_elimination_offset): Update.
5718         (sh_allocate_initial_value): Update.
5719         (sh_function_ok_for_sibcall): Update.
5720         (sh_get_pr_initial_val): Update.
5721         * config/sh/sh.md (return expander): Update.
5722         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5723         * config/crx/crx.c (crx_compute_frame): UPdate.
5724         (crx_initial_elimination_offset): UPdate.
5725         * config/xtensa/xtensa.c (compute_frame_size): Update
5726         (xtensa_builtin_saveregs): Update.
5727         (xtensa_va_start): Update.
5728         (order_regs_for_local_alloc): Update.
5729         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5730         (xstormy16_expand_builtin_va_start): Update.
5731         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5732         * config/m68hc11/m68hc11.md (return expanders): Update.
5733         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5734         (expand_epilogue): Update.
5735         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5736         (cris_simple_epilogue): Update.
5737         (cris_expand_prologue): Update.
5738         (cris_expand_epilogue): Update.
5739         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5740         (compute_frame_size): Update.
5741         * config/mt/mt.c (mt_compute_frame_size): Update.
5742         * config/mn10300/mn10300.c (expand_prologue): Update.
5743         (expand_epilogue): Update.
5744         (initial_offset): Update.
5745         (mn10300_builtin_saveregs):
5746         * config/mn10300/mn10300.md (return expander): Update.
5747         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5748         (ia64_initial_elimination_offset): Update.
5749         (ia64_initial_elimination_offset): Update.
5750         (ia64_expand_prologue): Update.
5751         * config/m68k/m68k.md (return expander): Update.
5752         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5753         (rs6000_stack_info): Update.
5754         * config/mcore/mcore.c (layout_mcore_frame): Update.
5755         (mcore_expand_prolog): Update.
5756         * config/arc/arc.c (arc_compute_frame_size): Update.
5757         * config/score/score3.c (score3_compute_frame_size): Update.
5758         * config/score/score7.c (score7_compute_frame_size): Update.
5759         * config/arm/arm.c (use_return_insn): Update.
5760         (thumb_find_work_register): Update.
5761         (arm_compute_save_reg_mask): Update.
5762         (arm_output_function_prologue): Update.
5763         (arm_output_epilogue): Update.
5764         (arm_size_return_regs): Update.
5765         (arm_get_frame_offsets): Update.
5766         (arm_expand_prologue): Update.
5767         (thumb_exit): Update.
5768         (thumb_unexpanded_epilogue): Update.
5769         (thumb1_output_function_prologue): Update.
5770         * config/pa/pa.md (return expander): Update.
5771         * config/pa/pa.c (compute_frame_size): Update.
5772         (hppa_builtin_saveregs): Update.
5773         * config/mips/mips.c (mips_va_start): Update.
5774         (mips16_build_function_stub): Update.
5775         (mips_compute_frame_info): Update.
5776         (mips_restore_gp): Update.
5777         (mips_output_function_prologue): Update.
5778         (mips_expand_prologue): Update.
5779         * config/v850/v850.c (compute_frame_size): Update.
5780         (expand_prologue): * config/mmix/mmix.c (along): update.
5781         (mmix_initial_elimination_offset): update.
5782         (mmix_reorg): update.
5783         (mmix_use_simple_return): update.
5784         (mmix_expand_prologue): update.
5785         (mmix_expand_epilogue): Update.
5786         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5787         (emit_link_insn): Update.
5788
5789 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5790
5791         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5792         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5793         instructions.
5794         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5795         atmega103 device.
5796
5797 2008-04-07  Jan Hubicka  <jh@suse.cz>
5798
5799         * function.h (rtl): Rename to x_rtl.
5800         (crtl): New define.
5801         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5802         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5803         used_temp_slots avail_temp_slots, temp_slot_level,
5804         nonlocal_goto_handler_labels): Update accesstors.
5805         (rtl): New global variable.
5806         (struct function): Move some fileds to rtl_data.
5807         (get_arg_pointer_save_area): Update prototype.
5808         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5809         get_arg_pointer_save_area.
5810         * expr.c (init_expr): Update
5811         * function.c (get_frame_size): Update
5812         (assign_stack_local): Update
5813         (expand_function_end): Update.
5814         (get_art_pointer_save_area): Update
5815         * function.h 
5816         * emit-rtl.c (rtl): Declare.
5817         (regno_reg_rtx): Declare.
5818         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5819         Update.
5820         (gen_reg_rtx): Update.
5821         * varasm.c (n_deferred_constatns): Update accestor.
5822         (init_varasm_status): Do not allocate varasm_status.
5823         (force_const_mem, get_pool_size, output_constant_pool): Update.
5824         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5825         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5826         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5827         * sparc/sparc.h (INIT_EXPANDERS): Update.
5828         * ia64/ia64.h (INIT_EXPANDERS): Update.
5829
5830 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5831
5832         * reload.c (push_secondary_reload): Add missing break to for loop.
5833
5834 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5835
5836         PR middle-end/PR28690
5837         * rtlanal.c: Update copyright years.
5838         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5839         as REG_POINTER and MEM_POINTER operands.
5840         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5841         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5842         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5843         * gcse.c: Update copyright years.
5844         (pre_delete): Call gen_reg_rtx_and_attrs.
5845         (hoist_code): Likewise.
5846         (build_store_vectors): Likewise.
5847         (delete_store): Likewise.
5848         * loop-invariant.c (move_invariant_reg): Likewise.
5849         Update copyright years.
5850
5851 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5852
5853         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5854         control string instead of quoted.
5855
5856 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5857
5858         * doc/rtl.texi: Rewrite of subreg section.
5859
5860 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5861
5862         PR/35842
5863         * config/i386/i386.c (legitimize_pic_address): Add treating
5864         of dllimport SYM_REF's.
5865         (legitimize_dllimport_symbol): Add prototype.
5866
5867 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5868
5869         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5870         reference in constructor with non self-referential type.
5871
5872 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5873
5874         Removal of Return with Depressed Stack Pointer support
5875         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5876         (ECF_SP_DEPRESSED): Likewise.
5877         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5878         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5879         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5880         (expand_call): Do not test ECF_SP_DEPRESSED.
5881         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5882         * function.c (keep_stack_depressed): Delete.
5883         (handle_epilogue_set): Likewise.
5884         (update_epilogue_consts): Likewise.
5885         (emit_equiv_load): Likewise.
5886         (thread_prologue_and_epilogue_insns): Remove support for Return with
5887         Depressed Stack Pointer.
5888         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5889
5890 2008-04-06  Richard Guenther  <rguenther@suse.de>
5891
5892         PR tree-optimization/35400
5893         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5894         information from SSA_NAMEs.
5895
5896 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5897
5898         * config/avr/avr.h (avr_mega_p): Remove declaration.
5899         (AVR_MEGA): Remove macro.
5900         * config/avr/avr.c (avr_mega_p): Remove variable.
5901         (avr_override_options): Remove inicializion of avr_mega_p.
5902         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5903         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5904         (avr_jump_mode): (Ditto.).
5905         (avr_output_progmem_section_asm_op): (Ditto.).
5906         (avr_asm_init_sections): (Ditto.).
5907         (avr_asm_init_sections): (Ditto.).
5908         (avr_rtx_costs): (Ditto.).
5909         * config/avr/avr.md: (Ditto.).
5910         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5911         '__AVR_MEGA__'.
5912
5913 2008-04-06  Richard Guenther  <rguenther@suse.de>
5914
5915         PR tree-optimization/35842
5916         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5917         is_gimple_invariant_address.
5918
5919 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5920
5921         * gcc.c (default_compilers): Sync Fortran extensions list with
5922         that in fortran/lang-specs.h.
5923         * doc/invoke.texi: Likewise.
5924         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5925         * dwarf2out.c (gen_compile_unit_die): Likewise.
5926
5927 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5928
5929         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5930
5931 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5932
5933         PR target/12329
5934         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5935         attribute is used for nested functions.
5936
5937 2008-04-05  Jan Hubicka  <jh@suse.cz>
5938
5939         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5940
5941         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5942         letter argument.
5943         (dump_files): Update.
5944         (enable_rtl_dump_file): Do not accept letter argument.
5945         * tree-pass.h (dump_file_info): Remove letter argument.
5946         * toplev.c (decode_d_option): Update -da handling.
5947         * toplev.h (enable_rtl_dump_file): Update prototype.
5948         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5949         it out based on pass type.
5950         (register_dump_files_1): Likewise.
5951         (init_optimization_passes): Update register_one_dump_file calls.
5952         (execute_one_pass): Sanity check that IPA passes are called at IPA
5953         level and RTL passes at RTL level.
5954         (execute_pass_list): IPA pass can not be after or subpass of
5955         GIMPLE/RTL pass.
5956         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5957         disallov RTL subpasses of IPA subpasses.
5958
5959 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5960
5961         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5962         builtins that return exactly once and do not throw. Cache call to
5963         call_expr_flags.
5964
5965 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5966
5967         PR rtl-optimization/34916
5968         PR middle-end/35519
5969         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5970         between instruction pairs.
5971
5972 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5973
5974         * doc/invoke.texi: Document -mbitops for SH.
5975         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5976         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5977         * config/sh/sh.c (print_operand): Add %t operand code.
5978         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5979         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5980         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5981         (extendqihi2): Likewise.
5982         (movqi_i): Likewise.
5983         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5984         (extv): Use bld instruction for SH2A if possible.
5985         (extzv): Likewise.
5986         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5987         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5988         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5989         (bset.b, bclr.b): Define peepholes.
5990         * config/sh/sh.opt (mbitops): New option.
5991
5992 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5993
5994         PR target/35620
5995         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5996         and view convert expression.
5997
5998 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5999
6000         PR target/35364
6001         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6002
6003 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
6004
6005         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6006
6007         * config/i386/cpuid.h (bit_AES): New.
6008         (bit_PCLMUL): Likewise.
6009
6010         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6011         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
6012         SSE2 if AES or PCLMUL is enabled.
6013         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6014         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6015         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6016         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6017         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6018         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6019         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6020         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6021         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6022         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6023         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6024         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6025         __builtin_ia32_aeskeygenassist128 and
6026         __builtin_ia32_pclmulqdq128.
6027         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6028         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6029         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
6030
6031         * config/i386/i386.h (TARGET_AES): New.
6032         (TARGET_PCLMUL): Likewise.
6033         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6034
6035         * config/i386/i386.md (UNSPEC_AESENC): New.
6036         (UNSPEC_AESENCLAST): Likewise.
6037         (UNSPEC_AESDEC): Likewise.
6038         (UNSPEC_AESDECLAST): Likewise.
6039         (UNSPEC_AESIMC): Likewise.
6040         (UNSPEC_AESKEYGENASSIST): Likewise.
6041         (UNSPEC_PCLMUL): Likewise.
6042
6043         * config/i386/i386.opt (maes): New.
6044         (mpclmul): Likewise.
6045
6046         * config/i386/sse.md (aesenc): New pattern.
6047         (aesenclast): Likewise.
6048         (aesdec): Likewise.
6049         (aesdeclast): Likewise.
6050         (aesimc): Likewise.
6051         (aeskeygenassist): Likewise.
6052         (pclmulqdq): Likewise.
6053
6054         * config/i386/wmmintrin.h: New.
6055
6056         * doc/extend.texi: Document AES and PCLMUL built-in function.
6057
6058         * doc/invoke.texi: Document -maes and -mpclmul.
6059
6060 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6061
6062         * function.c (free_after_parsing): Replace with
6063         cxx_push_function_context from C++ front-end.
6064         (allocate_struct_function): Don't call langhook.
6065         * langhooks.h (struct lang_hooks_for_functions): Delete.
6066         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6067         member "function".
6068         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6069         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6070         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6071         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6072         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6073         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6074         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6075
6076         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6077         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6078         
6079 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6080
6081         PR c/35440
6082         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6083         for all types.
6084
6085 2008-04-04  Richard Guenther  <rguenther@suse.de>
6086
6087         PR middle-end/35823
6088         * fold-const.c (optimize_minmax_comparison): Use the correct
6089         type for the constant in the simplified comparison.
6090
6091 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6092
6093         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6094         Pass L2 size as "--param l2-cache-size" to the compiler.
6095         (decode_l2_cache): New function to decode L2 cache parameters using
6096         0x8000006 extended cpuid function.
6097         (detect_caches_amd): Determine parameters of L2 cache using
6098         decode_l2_caches function.
6099         (decode_caches_intel): Decode L2 cache parameters.
6100         (detect_caches_intel): Determine L2 cache parameters using
6101         decode_caches_intel and decode_l2_caches functions.
6102
6103 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6104
6105         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6106         secondary input reload for subword loads from the constant pool.
6107
6108 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6109
6110         PR target/35713
6111         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6112           constants of the appropriate size for runtime calculations.
6113
6114         PR c/35712
6115         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6116           decimal-float literal constant zero.
6117
6118 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6119
6120         PR c/35738
6121         * c-parser.c (c_parser_omp_atomic): Call
6122         default_function_array_conversion on the RHS.
6123
6124         PR middle-end/35818
6125         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6126         call is_variable_sized if decl has incomplete type.
6127
6128 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6129
6130         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6131
6132 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6133
6134         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6135         iterators.
6136         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6137         (sgt<u>): Merge sgt and sgtu into new expander.
6138         (sgt, sgtu): Remove expanders.
6139         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6140         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6141         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6142         *sgtu_<mode>_mips16 into new pattern.
6143         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6144         (sge<u>): Merge sge and sgeu into new expander.
6145         (sge, sgeu): Remove expanders.
6146         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6147         new pattern.
6148         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6149         (slt<u>): Merge slt and sltu into new expander.
6150         (slt, sltu): Remove expanders.
6151         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6152         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6153         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6154         *sltu_<mode>_mips16 into new pattern.
6155         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6156         (sle<u>): Merge sle and sleu into new expander.
6157         (sle, sleu): Remove expanders.
6158         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6159         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6160         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6161         *sleu_<mode>_mips16 into new pattern.
6162         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6163
6164 2008-04-03  Jan Hubicka  <jh@suse.cz>
6165
6166         PR tree-optimization/35795
6167         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6168         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6169         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6170         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6171         * score/score3.c (score3_output_mi_thunk): Likewise.
6172         * score/score7.c (score7_output_mi_thunk): Likewise.
6173         * mips/mips.c (mips_output_mi_thunk): Likewise.
6174
6175 2008-04-03  Richard Guenther  <rguenther@suse.de>
6176
6177         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6178         conversions.  Simplify code.
6179
6180 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6181
6182         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6183
6184 2008-04-03  Tom Tromey  <tromey@redhat.com>
6185             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6186
6187         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6188         * config/bfin/t-bfin-linux (generated_files): Add
6189         linux-sysroot-suffix.h.
6190         * doc/install.texi (Prerequisites): Require make 3.80.
6191         * doc/sourcebuild.texi (Front End Directory): Document new
6192         variable.
6193         * Makefile.in (generated_files): New variable.
6194         (ALL_HOST_OBJS): New variable.
6195         ($(ALL_HOST_OBJS)): New target.
6196
6197 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6198
6199         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6200         (remap_block): Call id->transform_lang_insert_block instead
6201         of langhook.
6202         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6203         Set id.transform_lang_insert_block to NULL.
6204         (clone_body): Move to cp/optimize.c
6205         * tree-inline.h (struct copy_body_data): Change
6206         transform_lang_insert_block to function pointer.
6207         (copy_generic_body, copy_decl_no_change): Export.
6208         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6209         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6210         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6211
6212         * c-tree.h (insert_block): Kill.
6213         * c-decl.c (insert_block): Kill.
6214
6215 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6216
6217         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6218         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6219         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6220         argument.
6221         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6222         argument, call {push,pop}_function_context from here.
6223         * c-parser.c: Use c_{push,pop}_function_context.
6224
6225         * function.c (push_function_context_to): Move meat ...
6226         (push_function_context): ... here.  Simplify.
6227         * function.c (pop_function_context_from): Move meat ...
6228         (pop_function_context): ... here.  Simplify.
6229         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6230         leave_nested).
6231         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6232         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6233         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6234         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6235
6236 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6237
6238         * expmed.c (extract_force_align_mem_bit_field): Remove.
6239
6240 2008-04-03  Richard Guenther  <rguenther@suse.de>
6241
6242         PR middle-end/35800
6243         * expr.h (try_casesi): Adjust prototype.
6244         * expr.c (try_casesi): Take fallback label as extra parameter.
6245         Use that for gen_casesi if default_label is NULL.
6246         * stmt.c (expand_case): Pass fallback label to try_casesi,
6247         make sure to fill gaps with a fallback label if default_label
6248         is not present.
6249
6250 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6251
6252         PR target/35801
6253         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6254
6255 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6256
6257         * expmed.c (extract_split_bit_field): Remove if (0) code.
6258         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6259         (do_ds_constraint): Likewise.
6260
6261 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6262
6263         * doc/cppopts.texi (-dU): Document.
6264         * c-common.h (flag_dump_macros): Update comment.
6265         * c-opts.c (handle_OPT_d): Handle -dU.
6266         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6267         dump_queued_macros, cb_used_define, cb_used_undef): New.
6268         (init_pp_output): Handle -dU.
6269         (cb_line_change): Call dump_queued_macros.
6270         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6271
6272 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6273
6274         * config/avr/predicates.md (io_address_operand): New predicate. 
6275         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6276         * config/avr/avr.c (avr_io_address_p): Remove function.
6277         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6278         'avr_io_address_p' function.
6279         (out_movhi_r_mr): (Ditto.).
6280         (out_movqi_mr_r): (Ditto.).
6281         (out_movhi_mr_r): (Ditto.).
6282         (avr_address_cost): (Ditto.).
6283
6284 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6285
6286         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6287         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6288         in 32bit mode when XMM registers are available to avoid store
6289         forwarding stalls.
6290         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6291         corresponding post-reload splitters.
6292
6293 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6294
6295         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6296         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6297         __builtin_ia32_roundss.
6298         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6299         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6300         __builtin_ia32_roundss.
6301         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6302         IX86_BUILTIN_SHUFPD here.
6303
6304 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6305
6306         * config/i386/i386.md (plogic): New.
6307         (plogicprefix): Likewise.
6308
6309         * config/i386/mmx.md (mmx_<code><mode>3): New.
6310         (mmx_and<mode>3): Removed.
6311         (mmx_ior<mode>3): Likewise.
6312         (mmx_xor<mode>3): Likewise.
6313
6314         * config/i386/sse.md (<code><mode>3): New.
6315         (*<code><mode>3): Likewise.
6316         (*<code><mode>3): Likewise.
6317         (<code><mode>3): Likewise.
6318         (*sse_<code><mode>3): Likewise.
6319         (*sse2_<code><mode>3): Likewise.
6320         (<code>tf3): Likewise.
6321         (*<code>tf3): Likewise.
6322         (and<mode>3): Likewise.
6323         (*and<mode>3): Likewise.
6324         (ior<mode>3): Removed.
6325         (*ior<mode>3): Likewise.
6326         (xor<mode>3): Likewise.
6327         (*xor<mode>3): Likewise.
6328         (*and<mode>3): Likewise.
6329         (*ior<mode>3): Likewise.
6330         (*xor<mode>3): Likewise.
6331         (and<mode>3): Likewise.
6332         (*sse_and<mode>3): Likewise.
6333         (*sse2_and<mode>3): Likewise.
6334         (andtf3): Likewise.
6335         (*andtf3): Likewise.
6336         (ior<mode>3): Likewise.
6337         (*sse_ior<mode>3): Likewise.
6338         (*sse2_ior<mode>3): Likewise.
6339         (iortf3): Likewise.
6340         (*iortf3): Likewise.
6341         (xor<mode>3): Likewise.
6342         (*sse_xor<mode>3): Likewise.
6343         (*sse2_xor<mode>3): Likewise.
6344         (xortf3): Likewise.
6345         (*xortf3): Likewise.
6346
6347 2008-04-02  Richard Guenther  <rguenther@suse.de>
6348
6349         PR tree-optimization/14495
6350         PR tree-optimization/34793
6351         * tree-vrp.c (struct switch_update): New structure.
6352         (to_remove_edges, to_update_switch_stmts): New VECs.
6353         (simplify_switch_using_ranges): New function.  Remove not taken
6354         case labels and edges.
6355         (simplify_stmt_using_ranges): Call it.
6356         (identify_jump_threads): Mark edges we have queued for removal
6357         so we don't thread them.
6358         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6359         case label vector.
6360         * tree-cfg.c (group_case_labels): Deal with missing default label.
6361         (tree_verify_flow_info): Allow missing default label.
6362         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6363         (emit_case_nodes): Likewise.
6364         (expand_case): Do not rely on the default label to be present.
6365         * expr.c (try_casesi): Deal with NULL default_label.
6366         (do_tablejump): Likewise.
6367
6368 2008-04-02  Richard Guenther  <rguenther@suse.de>
6369
6370         PR tree-optimization/14495
6371         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6372         SWITCH_EXPR here ...
6373         (vrp_visit_switch_stmt): ... but here (new function).
6374         (find_case_label_index): New helper function.
6375         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6376
6377 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6378
6379         * fwprop.c: Fix ISO-C99ism.
6380
6381 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6382
6383         PR bootstrap/35752
6384         * Makefile.in (objdir): Set it here.
6385         * configure.ac: Not here.  Find dynamic linker characteristics.
6386         * exec-tool.in: Use them.
6387         * aclocal.m4: Regenerate.
6388         * configure: Regenerate.
6389
6390 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6391
6392         * expr.c (expand_var): Delete it.
6393         * expr.h (expand_var): Delete prototype.
6394         * function.c (expand_function_start): Use expand_decl instead.
6395         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6396         langhook.
6397
6398 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6399
6400         PR rtl-optimization/35542
6401         * fwprop.c (forward_propagate_and_simplify): Replace
6402         loc_reg_mentioned_in_p with reg_mentioned_p.
6403
6404 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6405
6406         PR rtl-optimization/35281
6407         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6408         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6409         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6410         (varying_mem_p): Move above propagate_rtx.
6411         (all_uses_available_at): Do not check MEMs.
6412
6413 2008-04-02  Rafael Espindola  <espindola@google.com>
6414
6415         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6416         (register_edge_assert_for_2): Split the cond argument.
6417         (register_edge_assert_for_1): Adjust for the change in
6418         register_edge_assert_for_2.
6419         (register_edge_assert_for): Split the cond argument.
6420         (find_switch_asserts): Adjust for the change in
6421         register_edge_assert_for.
6422
6423 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6424
6425         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6426         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6427         offsets for 64-bit mingw.
6428         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6429         abi for x86_64-pc-mingw.
6430
6431 2008-04-02  Richard Guenther  <rguenther@suse.de>
6432
6433         * tree-vrp.c (extract_range_from_assert): Make sure to not
6434         produce range min/max with TREE_OVERFOW set.
6435         If merging a anti-range and a range keep the anti-range if
6436         the range covers all values of the type.
6437         (register_edge_assert_for_2): Only allow sign-changing
6438         conversions in detecting canonical range checks.  Also
6439         register an assert for the unsigned name if useful.
6440
6441         PR tree-optimization/35787
6442         * tree-vrp.c (vrp_val_max): New function.
6443         (vrp_val_min): Likewise.
6444         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6445         (vrp_val_is_min): Likewise.
6446         (supports_overflow_infinity): Use vrp_val_{min,max}.
6447         (negative_overflow_infinity): Likewise.
6448         (positive_overflow_infinity): Likewise.
6449         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6450         (is_positive_overflow_infinity): Likewise.
6451         (is_overflow_infinity): Likewise.
6452         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6453         vrp_val_is_{min,max}.
6454         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6455         to ranges if possible.  Avoid empty ranges.
6456
6457 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6458
6459         PR middle-end/35705
6460         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6461         the expression is a function address.
6462
6463 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6464
6465         PR fortran/35154, fortran/23057
6466         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6467         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6468         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6469         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6470         in common.
6471         (dbxout_syms): Check for COMMON-based symbol and wrap in
6472         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6473         in bracket for efficiency.
6474
6475         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6476         using DW_TAG_common_block + member offset.
6477         (add_pubname_string): New function.
6478         (dw_expand_expr): New function to find block name and offset for
6479         COMMON var.
6480         (common_check): New function to check whether symbol in Fortran COMMON.
6481         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6482
6483 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6484
6485         PR c/35436
6486         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6487
6488 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6489
6490         * config/v850/v850.md (casesi): Remove if (0) code.
6491         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6492         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6493
6494 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6495
6496         * config/i386/i386.md (rex64suffix): New mode attribute.
6497         (floathi<mode>2): Disable expander for SSE math.
6498         (*floathi<mode>2_1): New insn insn_and_split pattern.
6499         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6500         corresponding post-reload splitters.
6501         (*floathi<mode>2_i387): New macroized insn pattern.
6502         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6503         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6504         insn_and_split pattern.
6505         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6506         New macroized instruction patterns and corresponding post-reload
6507         splitters.
6508         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6509         and corresponding post-reload splitters.
6510         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6511         New macroized instruction patterns.
6512         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6513         macroized instruction patterns and corresponding post-reload splitters.
6514         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6515         corresponding post-reload splitters.
6516         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6517         New macroized instruction patterns.
6518         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6519         corresponding post-reload splitters.
6520         (*floatsi<mode>2_i387): New macroized instruction patterns.
6521
6522 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6523
6524         * config/i386/i386.md (smaxmin): New.
6525         (umaxmin): Likewise.
6526         (maxminiprefix): Likewise.
6527         (maxminfprefix): Likewise.
6528         (<code><mode>3): Likewise.
6529         (smin<mode>3): Removed.
6530         (smax<mode>3): Likewise.
6531
6532         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6533         (mmx_<code>v4hi3): Likewise.
6534         (mmx_<code>v8qi3): Likewise.
6535         (mmx_smaxv2sf3): Removed.
6536         (mmx_sminv2sf3): Likewise.
6537         (mmx_umaxv8qi3): Likewise.
6538         (mmx_smaxv4hi3): Likewise.
6539         (mmx_uminv8qi3): Likewise.
6540         (mmx_sminv4hi3): Likewise.
6541
6542         * config/i386/sse.md (<addsub><mode>3): New.
6543         (*<addsub><mode>3): Likewise.
6544         (<sse>_vm<addsub><mode>3): Likewise.
6545         (<maxmin><mode>3): Likewise.
6546         (*<maxmin><mode>3_finite): Likewise.
6547         (*<maxmin><mode>3): Likewise.
6548         (<sse>_vm<maxmin><mode>3): Likewise.
6549         (sse3_h<addsub>v4sf3): Likewise.
6550         (sse3_h<addsub>v2df3): Likewise.
6551         (<maxmin>v16qi3): Likewise.
6552         (*<maxmin>v16qi3): Likewise.
6553         (<maxmin>v8hi3): Likewise.
6554         (*<maxmin>v8hi3): Likewise.
6555         (*sse4_1_<maxmin><mode>3): Likewise.
6556         (*sse4_1_<maxmin><mode>3): Likewise.
6557         (add<mode>3): Removed.
6558         (*add<mode>3): Likewise.
6559         (<sse>_vmadd<mode>3): Likewise.
6560         (sub<mode>3): Likewise.
6561         (*sub<mode>3): Likewise.
6562         (<sse>_vmsub<mode>3): Likewise.
6563         (smin<mode>3): Likewise.
6564         (*smin<mode>3_finite): Likewise.
6565         (*smin<mode>3): Likewise.
6566         (<sse>_vmsmin<mode>3): Likewise.
6567         (smax<mode>3): Likewise.
6568         (*smax<mode>3_finite): Likewise.
6569         (*smax<mode>3): Likewise.
6570         (<sse>_vmsmax<mode>3): Likewise.
6571         (sse3_haddv4sf3): Likewise.
6572         (sse3_haddv2df3): Likewise.
6573         (sse3_hsubv4sf3): Likewise.
6574         (sse3_hsubv2df3): Likewise.
6575         (umaxv16qi3): Likewise.
6576         (*umaxv16qi3): Likewise.
6577         (smaxv8hi3): Likewise.
6578         (*smaxv8hi3): Likewise.
6579         (*sse4_1_smax<mode>3): Likewise.
6580         (*sse4_1_umax<mode>3): Likewise.
6581         (uminv16qi3): Likewise.
6582         (*uminv16qi3): Likewise.
6583         (sminv8hi3): Likewise.
6584         (*sminv8hi3): Likewise.
6585         (*sse4_1_smin<mode>3): Likewise.
6586         (*sse4_1_umin<mode>3): Likewise.
6587
6588 2008-04-01  Rafael Espindola  <espindola@google.com>
6589
6590         * tree-cfg.c (verify_expr): remove in_phi.
6591         (verify_stmt): Don't call walk_tree with verify_expr. Use
6592         is_gimple_min_invariant instead of is_gimple_val.
6593
6594 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6595
6596         * doc/include/gpl_v3.texi: Update for manpage generation.
6597         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6598         gpl.texi.
6599         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6600         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6601         gpl_v3.texi instead of gpl.texi.
6602         (gpl.pod): New.
6603
6604 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6605
6606         PR pch/13675
6607         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6608
6609 2008-04-01  Rafael Espindola  <espindola@google.com>
6610
6611         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6612         (extract_code_and_val_from_cond): Use
6613         extract_code_and_val_from_cond_with_ops.
6614
6615 2008-04-01  Jan Hubicka  <jh@suse.cz>
6616
6617         * function.c (free_after_compilation): Free epilogue_delay_list.
6618         (prepare_function_start): Assert that previous compilation was freed.
6619
6620 2008-04-01  Jan Hubicka  <jh@suse.cz>
6621             Jim Wilson  <wilson@tuliptree.org>
6622             Andreas Tobler <andreast@gcc.gnu.org>
6623
6624         PR middle-end/35781
6625         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6626         rtl.emit instead cfun->emit.
6627         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6628         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6629
6630 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6631
6632         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6633
6634 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6635
6636         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6637         New options
6638         (fprofile-use): Add var flag_profile_use
6639         * coverage.c (coverage_begin_output): Do not open a gcno file for
6640         output only if -ftest-coverage is set.
6641         Do not add getpwd() to gcda file path.
6642         (build_gcov_info): Check the new flag
6643         flag_profile_datafile_relative_path.
6644         (coverage_init): Use profile_data_prefix.
6645         Read profile counter only if flag_profile_use is set.
6646         * opts.c (common_handle_option): New option fprofile-use=,
6647         fprofile-dir=, fprofile-generate=.
6648         * toplev.c (profile_data_prefix): New variable definition.
6649         * toplev.h (profile_data_prefix): New declaration.
6650         * doc/invoke.tex (Option Summary, Optimization Options):
6651         Add new options.
6652
6653 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6654
6655         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6656         use tmp consistently.
6657
6658         PR target/35695
6659         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6660         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6661         UNSPEC_FR_RECIP_APPROX_RES.
6662         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6663
6664 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6665
6666         PR c/35750
6667         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6668
6669 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6670
6671         PR middle-end/30186
6672         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6673         element of the vector via a pointer.
6674
6675 2008-03-31  Ian Lance Taylor  <iant@google.com>
6676
6677         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6678
6679 2008-03-31  Jan Hubicka  <jh@suse.cz>
6680
6681         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6682         get_arg_pointer_save_area.
6683         * expr.c (init_expr): Just clear out rtl.expr.
6684         * function.c (free_after_compilation): Clear out whole RTL structure.
6685         (get_func_frame_size): Merge into ...
6686         (get_frame_size): ... this one.
6687         (assign_stack_local_1): Merge into ...
6688         (assign_stack_local): ... this one.
6689         (expand_function_end): Update call of get_arg_pointer_save_area.
6690         (get_art_pointer_save_area): Remove cfun argument.
6691         * function.h (emit_status): regno_pointer_align does not need length
6692         attribute. Move x_regno_reg_rtx to ...
6693         (regno_reg_rtx): ... new global array.
6694         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6695         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6696         apply_args_value, forced_labels, stack_pointer_delta):
6697         Update accestors.
6698         (struct varasm_status): Move here from varasm.c
6699         (struct rtl_data): New. Move here some fields from struct function.
6700         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6701         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6702         used_temp_slots avail_temp_slots, temp_slot_level,
6703         nonlocal_goto_handler_labels): Update accesstors.
6704         (rtl): New global variable.
6705         (struct function): Move some fileds to rtl_data.
6706         (get_arg_pointer_save_area): Update prototype.
6707         * emit-rtl.c (rtl): Declare.
6708         (regno_reg_rtx): Declare.
6709         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6710         Update.
6711         (gen_reg_rtx): Update.
6712         (init_virtual_regs): Do not tate emit_status argument.
6713         (init_emit): Do not allocate emit.
6714         * varasm.c (varasm_statuc): Move to function.h.
6715         (n_deferred_constatns): Update accestor.
6716         (init_varasm_status): Do not allocate varasm_status.
6717         (force_const_mem, get_pool_size, output_constant_pool): Update.
6718         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6719         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6720
6721 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6722
6723         PR rtl-optimization/35729
6724         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6725         references.
6726
6727 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6728
6729         PR target/32000
6730         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6731         load/store if memory is unaligned.
6732         (*movti_rex64): Likewise.
6733
6734         * config/i386/predicates.md (misaligned_operand): New.
6735
6736 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6737
6738         PR tree-opt/35431
6739         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6740         complex types.
6741
6742 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6743
6744         * config/ia64/constraints.md: Add 'j' constraint.
6745         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6746         (movdi_internal): Likewise.
6747
6748 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6749
6750         PR c/35748
6751         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6752
6753 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6754
6755         PR target/35757
6756         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6757         proper error message for the third argument on blendpd and
6758         blendps.
6759
6760         * config/i386/sse.md (blendbits): New.
6761         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6762
6763 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6764
6765         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6766
6767 2008-03-30  Richard Guenther  <rguenther@suse.de>
6768
6769         PR middle-end/31023
6770         * fold-const.c (fold_sign_changed_comparison): Do leave
6771         conversions to base-types alone.
6772
6773 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6774
6775         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6776         the link register if one altivec register is be saved.
6777
6778 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6779
6780         * final.c (final_scan_insn): Remove if (0) code.
6781
6782 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6783
6784         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6785
6786 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6787
6788         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6789         of V4SFmode to ix86_binary_operator_ok.
6790
6791 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6792
6793         * config/i386/i386.c (override_options): Initialize
6794         ix86_veclib_handler to ix86_veclibabi_svml when
6795         -mveclibabi=svml is used.
6796         (ix86_veclibabi_svml): New function for SVML ABI style
6797         vectorization support.
6798         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6799
6800 2008-03-28  Rafael Espindola  <espindola@google.com>
6801
6802         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6803         (tree_binary_nonnegative_warnv_p): Make it public.
6804         (tree_single_nonnegative_warnv_p): Make it public.
6805         (tree_invalid_nonnegative_warnv_p): Make it public.
6806         (tree_unary_nonzero_warnv_p): Make it public.
6807         (tree_binary_nonzero_warnv_p): Make it public
6808         (tree_single_nonzero_warnv_p): Make it public.
6809         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6810         (extract_range_from_binary_expr): Split the expr argument.
6811         (extract_range_from_unary_expr): Split the expr argument.
6812         (extract_range_from_comparison): Split the expr argument.
6813         (extract_range_from_expr): Use the new aux functions.
6814         (vrp_evaluate_conditional_warnv): Use
6815         vrp_evaluate_conditional_warnv_with_ops.
6816         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6817         (tree_binary_nonzero_warnv_p): Declare.
6818         (tree_single_nonzero_warnv_p): Declare.
6819         (tree_expr_nonzero_warnv_p): Declare.
6820         (tree_unary_nonnegative_warnv_p): Declare.
6821         (tree_binary_nonnegative_warnv_p): Declare.
6822         (tree_single_nonnegative_warnv_p): Declare.
6823         (tree_invalid_nonnegative_warnv_p): Declare.
6824
6825 2008-03-28  Richard Guenther  <rguenther@suse.de>
6826
6827         PR tree-optimization/30317
6828         PR tree-optimization/30911
6829         PR tree-optimization/34793
6830         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6831         (struct assert_locus_d): New member EXPR.
6832         (register_new_assert_for): Add EXPR parameter to support
6833         ASSERT_EXPR <name, expr OP limit>.
6834         (register_edge_assert_for_1): Adjust callers.
6835         (find_assert_locations): Likewise.
6836         (process_assert_insertions_for): Build condition from expression.
6837         (extract_range_from_assert): Handle ASSERT_EXPRs
6838         of the form ASSERT_EXPR <name, expr OP limit>.
6839         (register_edge_assert_for_2): New helper registering
6840         asserts for comparisons.  Recognize range tests of the form
6841         (unsigned)i - CST1 OP CST2.
6842         (register_edge_assert_for_1): Use it.
6843         (register_edge_assert_for): Likewise.
6844         (needs_overflow_infinity): Integer sub-types
6845         do not need overflow infinities.
6846         (vrp_val_is_max): The extreme values of integer sub-types
6847         are those of the base type.
6848         (vrp_val_is_min): Likewise.
6849         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6850         expressions.
6851
6852 2008-03-28  Nick Clifton  <nickc@redhat.com>
6853
6854         PR target/31110
6855         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6856         Return GENERAL_REGS for stack adjustment reloads.
6857
6858 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6859
6860         PR target/31334
6861         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6862         const_vector when all the vectors are constant.
6863
6864 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6865
6866         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6867         comparisons.
6868         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6869         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6870         (scc_sf): New.
6871         (s<code>_sf): Use new scc_sf attribute for opcode names.
6872
6873 2008-03-27  Tom Tromey  <tromey@redhat.com>
6874
6875         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6876         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6877         config/spu/t-spu-elf, config/i386/t-interix,
6878         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6879         config/i386/x-darwin, config/i386/x-mingw32,
6880         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6881         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6882         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6883         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6884         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6885         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6886         config/score/t-score-elf, config/arm/t-strongarm-pe,
6887         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6888         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6889         Revert automatic dependency patch.
6890
6891 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6892
6893         PR target/35657
6894         * config/i386/i386.c (ix86_function_arg_boundary): Align
6895         decimal floating point to its natural boundary.
6896
6897 2008-03-27  Richard Guenther  <rguenther@suse.de>
6898
6899         PR middle-end/35716
6900         * fold-const.c (fold_comparison): Restrict distinct decl
6901         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6902         solely rely on operand_equal_p.
6903
6904 2008-03-27  Richard Guenther  <rguenther@suse.de>
6905
6906         PR c/32511
6907         * c-common.c (handle_weak_attribute): Reject combination of
6908         weak and inline.
6909
6910 2008-03-27  Richard Guenther  <rguenther@suse.de>
6911
6912         PR tree-optimization/32810
6913         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6914         conversions from DECL_INITIAL.
6915         (fold_const_aggregate_ref): Likewise from constructor elements.
6916
6917 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6918
6919         * tree-affine.h (aff_combination_expand): Declare.
6920         (get_inner_reference_aff): Likewise.
6921         * tree-affine.c (aff_combination_expand): Split out from
6922         tree_to_aff_combination_expand.
6923         (get_inner_reference_aff): New function.
6924         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6925         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6926         (struct lim_aux_data): sm_done field removed.
6927         (mem_ref_loc_p, mem_ref_locs_p): New types.
6928         (struct mem_ref): Added id, stored, accesses_in_loop,
6929         indep_loop, dep_loop, indep_ref, dep_ref fields.
6930         Removed is_stored, locs and next fields.
6931         (memory_accesses): New variable.
6932         (movement_possibility): Do not allow moving statements
6933         that store to memory.
6934         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6935         New functions.
6936         (determine_max_movement): For statements with memory references,
6937         find the outermost loop in that the reference is independent.
6938         (move_computations_stmt): Mark the virtual operands for renaming.
6939         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6940         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6941         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6942         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6943         create_vop_ref_mapping, analyze_memory_references,
6944         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6945         get_all_locs_in_loop, ref_always_accessed_p,
6946         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6947         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6948         store_motion_loop, store_motion): New functions.
6949         (struct vop_to_refs_elt): New type.
6950         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6951         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6952         (schedule_sm): Replaced by...
6953         (execute_sm): ... this.
6954         (determine_lsm_ref, hoist_memory_references,
6955         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6956         find_more_ref_vops, free_mem_ref, free_mem_refs,
6957         determine_lsm_loop, determine_lsm): Removed.
6958         (tree_ssa_lim_finalize): Free data structures used by store motion.
6959         (tree_ssa_lim): Call analyze_memory_references.  Use
6960         store_motion instead of determine_lsm.
6961
6962 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6963
6964         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6965         rename tmake_file to m68hc11/t-m68hc11.
6966         (mcore): Set inhibit_libc to true.
6967         * config.host (alpha*-dec-*vms*): Set extra_programs.
6968         (interix3*): Don't use host_xmake_file.
6969         * configure.ac: Let config.gcc override inhibit_libc.
6970         * configure: Regenerate.
6971
6972         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6973         * config/t-openbsd-thread: Remove commented out lines.
6974         
6975         * config/x-interix: Remove.
6976
6977         * config/m68hc11/t-m68hc11-gas: Rename to...
6978         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6979
6980         * config/mcore/t-mcore: Remove T_CFLAGS.
6981         * config/mcore/t-mcore-pe: Likewise.
6982
6983 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6984
6985         * configure.ac: Replace custom __GNU_SOURCE test with
6986         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6987         * aclocal.m4: Regenerate.
6988         * configure: Regenerate.
6989         * config.in: Regenerate.
6990
6991 2008-03-27  Richard Guenther  <rguenther@suse.de>
6992
6993         * fold-const.c (target.h): Include.
6994         (fold_comparison): Fold comparison of addresses of decls
6995         that bind locally or of constants.  Consolidate address folding code.
6996         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6997         results from fold_binary_to_constant.
6998         (compare_values_warnv): Likewise.
6999
7000 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
7001
7002         PR middle-end/35429
7003         * fold-const.c (fold_truthop): Check for integeral types when folding
7004         a == 0 && b == 0 and a != 0 || b != 0 .
7005
7006 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7007
7008         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7009
7010 2008-03-26  Andreas Schwab  <schwab@suse.de>
7011
7012         * doc/invoke.texi: Fix use of @item vs. @itemx.
7013
7014 2008-03-26  Tom Tromey  <tromey@redhat.com>
7015
7016         * Makefile.in (build/gensupport.o, build/print-rtl.o,
7017         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7018         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7019         build/gencodes.o, build/genconditions.o, build/genconfig.o,
7020         build/genconstants.o, build/genemit.o, build/genextract.o,
7021         build/genflags.o, build/genmddeps.o, build/genopinit.o,
7022         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7023         options.h.
7024
7025 2008-03-26  Richard Guenther  <rguenther@suse.de>
7026
7027         Revert
7028         2008-03-26  Richard Guenther  <rguenther@suse.de>
7029
7030         * fold-const.c (target.h): Include.
7031         (fold_comparison): Fold comparison of addresses of two decls
7032         that bind locally.  Consolidate address folding code.
7033
7034 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7035
7036         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7037         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7038         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7039         dconstsqrt2, dconstthird, dconste and/or dconst10.
7040         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7041         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7042         dconstsqrt2, dconste): Delete.
7043         (init_emit_once): Likewise.  Simplify initializing dconstm1.
7044         Constify variable.
7045         * real.c (get_real_const): New.
7046         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7047         dconstsqrt2, dconste): Delete.
7048         (real_value_const, get_real_const): New.
7049
7050 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7051
7052         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7053
7054         * config/i386/i386.c (ix86_function_arg_boundary): Check
7055         BIGGEST_ALIGNMENT instead of 128.
7056         (setup_incoming_varargs_64): Likewise.
7057
7058 2008-03-26  Tom Tromey  <tromey@redhat.com>
7059
7060         * Makefile.in (DEPFILES): Add missing '/'.
7061
7062 2008-03-26  Richard Guenther  <rguenther@suse.de>
7063
7064         * fold-const.c (target.h): Include.
7065         (fold_comparison): Fold comparison of addresses of two decls
7066         that bind locally.  Consolidate address folding code.
7067
7068 2008-03-26  Nick Clifton  <nickc@redhat.com>
7069
7070         PR target/31232
7071         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7072         not allow INT+INT as a legitimate addressing mode.
7073
7074 2008-03-26  Richard Guenther  <rguenther@suse.de>
7075
7076         * tree-flow.h (widen_bitfield): Remove declaration.
7077         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7078         (widen_bitfield): Remove function.
7079         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7080         code.
7081
7082 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7083
7084         PR target/31558
7085         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7086         error_mark_node's.
7087
7088 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7089
7090         PR rtl-optimization/35232
7091         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7092         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7093         reg_reloaded_call_part_clobbered here.
7094         (reload_regs_reach_end_p): New function.
7095         (reload_reg_rtx_for_input): New variable.
7096         (reload_reg_rtx_for_output): Likewise.
7097         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7098         when reassigning a pseudo register.  Load reloadreg from 
7099         reload_reg_rtx_for_input, moving the mode and register
7100         calculation to...
7101         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7102         instead of the original when deciding whether an input reload
7103         would be a no-op or whether an output reload can be deleted.
7104         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7105         when setting up new_spill_reg_store.  Load it from
7106         reload_reg_rtx_for_output, moving the mode and register
7107         calculation to...
7108         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7109         instead of the original when deciding whether an output reload
7110         would be a no-op.  Do the same when modifying insn notes.
7111         Use rtx_equal_p instead of == to compare the registers.
7112         (inherit_piecemeal_p): Take a mode and two register numbers
7113         as argument.
7114         (emit_reload_insns): Clear new_spill_reg_store for every hard
7115         register in the reload register.  Remove spill registers
7116         from reg_reloaded_valid before considering whether to record
7117         inheritance information for them.  Use reload_reg_rtx_for_output
7118         instead of reg_rtx when recording output reloads.  Use
7119         reload_reg_rtx_for_input instead of reg_rtx when recording
7120         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7121         at the same time as setting reg_reloaded_valid.
7122         (delete_output_reload): Add a new_reload_reg parameter and use it
7123         instead of rld[j].reg_rtx.
7124         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7125         calls accordingly.
7126
7127 2008-03-25  Tom Tromey  <tromey@redhat.com>
7128
7129         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7130         (build/genattr.o): Likewise.
7131         (build/genattrtab.o): Likewise.
7132         (build/gencodes.o): Likewise.
7133         (build/genconfig.o): Likewise.
7134         (build/genconstants.o): Likewise.
7135         (build/genemit.o): Likewise.
7136         (build/genextract.o): Likewise.
7137         (build/genflags.o): Likewise.
7138
7139 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7140         
7141         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7142         instead of size_int for integer types.
7143         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7144         to match type of MINUS_EXPR.
7145         
7146 2008-03-25  Tom Tromey  <tromey@redhat.com>
7147
7148         * configure: Rebuilt.
7149         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7150         Makefile.
7151
7152 2008-03-25  Tom Tromey  <tromey@redhat.com>
7153
7154         * config/x-solaris (host-solaris.o): Update.
7155         * config/x-linux (host-linux.o): Update.
7156         * config/x-hpux (host-hpux.o): Update.
7157         * config/x-darwin (host-darwin.o): Update.
7158         * config/v850/t-v850e (v850-c.o): Update.
7159         * config/v850/t-v850 (v850-c.o): Update.
7160         * config/t-vxworks (vxworks.o): Update.
7161         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7162         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7163         * config/spu/t-spu-elf (spu-c.o): Update.
7164         (spu.o): Remove.
7165         * config/sh/t-symbian (sh-c.o): Update.
7166         (symbian.o): Update.
7167         * config/sh/t-sh (sh-c.o): Update.
7168         * config/score/t-score-elf (score7.o, score3.o): Update.
7169         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7170         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7171         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7172         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7173         (rs6000.o): Remove.
7174         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7175         * config/m32c/t-m32c (m32c-pragma.o): Update.
7176         * config/ia64/t-ia64 (ia64-c.o): Update.
7177         * config/i386/x-mingw32 (host-mingw32.o): Update.
7178         * config/i386/x-i386 (driver-i386.o): Update.
7179         * config/i386/x-darwin (host-i386-darwin.o): Update.
7180         * config/i386/x-cygwin (host-cygwin.o): Update.
7181         * config/i386/t-nwld (nwld.o): Update.
7182         * config/i386/t-netware (netware.o): Update.
7183         * config/i386/t-interix (winnt.o): Update.
7184         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7185         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7186         msformat-c.o): Update.
7187         * config/bfin/t-bfin-linux (generated_files): Add
7188         linux-sysroot-suffix.h.
7189         * config/arm/t-wince-pe (pe.o): Update.
7190         * config/arm/t-strongarm-pe (pe.o): Update.
7191         * config/arm/t-pe (pe.o): Update.
7192         * config/arm/t-arm (arm-c.o): Update.
7193         * doc/install.texi (Prerequisites): Require make 3.80.
7194         * Makefile.in: Remove .o targets.
7195         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7196         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7197         (simple_generated_h, simple_generated_c): Move earlier.
7198         (generated_files): New variable.
7199         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7200         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7201         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7202         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7203         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7204         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7205         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7206         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7207         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7208         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7209         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7210         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7211         (.c.o): Remove.
7212         (COMPILE.base, COMPILE): New variables.
7213         (%.o): New pattern rule.
7214         (ALL_HOST_OBJS): New variable.
7215         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7216         (dummy-checksum.o, cc1-checksum.o): Remove.
7217         (DRIVER_SHLIB): New variable.
7218         (DRIVER_DEFINES): Use it.
7219         (gencondmd.c): Move out of build/.
7220         (s-conditions): Update.
7221         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7222         (ALL_BUILD_OBJS): Likewise.
7223         (build/%.o): Use BUILDCOMPILE.
7224         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7225         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7226         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7227         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7228         build/genconfig.o, build/genconstants.o, build/genemit.o,
7229         build/genextract.o, build/genflags.o, build/genmddeps.o,
7230         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7231         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7232         build/gen-protos.o, build/scan.o, build/fix-header.o,
7233         build/scan-decls.o): Simplify.
7234         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7235         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7236         prefix.o, toplev.o): Reduce to variable setting.
7237         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7238         ($(out_object_file), gcc-options.o): New targets.
7239         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7240         * configure: Rebuilt.
7241         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7242         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7243
7244 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7245
7246         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7247         complain when we hit an error, return ERROR_MARK_NODE.
7248
7249 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7250
7251         * config/sh/constraints.md (Pso, Psz): New constraints.
7252         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7253         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7254
7255 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7256
7257         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7258         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7259
7260 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7261
7262         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7263         (prefetch_sh2a): New.   
7264
7265 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7266             Naveen.H.S  <naveen.hs@kpitcummins.com>
7267
7268         * config/sh/constraints.md (I28): New constraint.
7269         * config/sh/sh.c (broken_move): Add support for movi20s.
7270         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7271
7272 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7273             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7274             Naveen.H.S  <naveen.hs@kpitcummins.com>
7275
7276         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7277         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7278         (print_operand): Handle resbank in %@ operand code.
7279         (sh_encode_section_info): New.
7280         (push_regs): Add conditions for resbank.
7281         (sh_expand_epilogue): Likewise.
7282         (sh_insert_attributes): Likewise.
7283         (sh_attribute_table): Likewise.
7284         (sh_handle_resbank_handler_attribute): New.
7285         (sh2a_handle_function_vector_handler_attribute): New.
7286         (sh2a_is_function_vector_call): New.
7287         (sh2a_get_function_vector_number): New.
7288         (sh2a_function_vector_p): New.
7289         (sh_cfun_resbank_handler_p): New.
7290         * config/sh/sh.md (calli): Emit jsr/n if possible.
7291         (calli_tbr_rel): New.
7292         (calli_pcrel): Emit jsr/n if possible.
7293         (return_i): Emit rts/n if possible.
7294         (call_valuei_tbr_rel): New.
7295         (call_valuei_pcrel): Add condition for SH2A target.
7296         (call_value): Likewise.
7297         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7298         (sh2a_get_function_vector_number): Likewise.
7299         (sh2a_is_function_vector_call): Likewise.
7300         * doc/extend.texi: Document TBR relative addressing of SH2A.
7301         (resbank): Add description for SH2A.
7302
7303 2008-03-24  Richard Guenther  <rguenther@suse.de>
7304
7305         PR c/22371
7306         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7307         pointer assignments change conversions according to middle-end rules.
7308         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7309         * configure.ac: Include type checking in yes.
7310         * configure: Regenerate.
7311
7312 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7313
7314         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7315         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7316         
7317 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7318
7319         * gthr-vxworks.h (UNUSED): Define.
7320
7321 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7322
7323         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7324
7325 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7326
7327         * doc/extend.texi (Function Attributes): Add missing comma in the
7328         example of the "alloc_size" attribute.
7329         
7330 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7331
7332         Revert:
7333         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7334
7335         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7336         32bit host.
7337
7338         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7339
7340         PR target/35496
7341         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7342         of the underlying type of a MS bitfield layout to the natural
7343         alignment of the type.
7344
7345         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7346
7347         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7348         to their natural alignment to avoid store forwarding stalls.
7349
7350 2008-03-22  Richard Guenther  <rguenther@suse.de>
7351
7352         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7353         For PHI nodes verify the address is invariant.
7354         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7355         (get_symbol_constant_value): Use is_gimple_min_invariant.
7356         (maybe_fold_stmt_indirect): Likewise.
7357
7358 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7359
7360         PR rtl-optimization/33927
7361         * Makefile.in (dse.o): Depend on $(TM_P_H).
7362         * expr.h (extract_low_bits): Declare.
7363         * expmed.c (extract_low_bits): New function.
7364         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7365         * dse.c: Include tm_p.h.
7366         (find_shift_sequence): Remove the read_reg argument and return the
7367         read value.  Emit the instructions instead of returning them.
7368         Iterate on new_mode rather than calculating it each time.
7369         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7370         source to NEW_MODE and extract_low_bits to convert the shifted
7371         value to READ_MODE.
7372         (replace_read): Allow the load and store to have different mode
7373         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7374         or extraction instructions before trying the replacement.  Update
7375         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7376
7377 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7378
7379         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7380         to their natural alignment to avoid store forwarding stalls.
7381
7382 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7383
7384         PR target/27946
7385         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7386         encouraging but not allowing gprs for input;
7387         change the input constraint to !f#r.
7388         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7389         gprs for output;
7390         change the output constraint to !f#r.
7391
7392 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7393
7394         PR target/13958
7395         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7396         corresponding post-reload splitters.
7397         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7398         when x87 FP math is selected.
7399         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7400         New function prototype.
7401         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7402         unreachable function to ease macroization of insn patterns.
7403
7404 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7405
7406         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7407         reference dumps if ddr is NULL or dependence is unknown.
7408
7409 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7410
7411         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7412         unsigned extension into account.
7413         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7414         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7415         Do computations on a scratch register.
7416
7417 2008-03-21  Richard Guenther  <rguenther@suse.de>
7418
7419         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7420         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7421         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7422         * tree-ssa-dom.c (record_equality): Likewise.
7423         * tree-inline.c (copy_body_r): Likewise.
7424         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7425         TREE_INVARIANT.
7426
7427 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7428
7429         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7430         as 'delete_unused' argument.
7431
7432 2008-03-20  Richard Guenther  <rguenther@suse.de>
7433
7434         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7435         special casing of constant qualifiers.
7436         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7437         care about them in general.
7438         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7439         regardless of their type.
7440         (fold_stmt_r): Forcefully fold *& if we end up with that.
7441
7442 2008-03-20  Paul Brook  <paul@codesourcery.com>
7443
7444         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7445         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7446         linker flags.
7447         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7448         definition.
7449         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7450         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7451
7452 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7453
7454         * common.opt (Wmudflap): New option.
7455         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7456         (mx_register_decls): Likewise.
7457         (mudflap_finish_file): Likewise.
7458         * doc/invoke.texi: Document -Wno-mudflap.
7459
7460 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7461
7462         * c-format.c (replace_format_name_to_system_name): New.
7463         (cmp_attribs): New.
7464         (convert_format_name_to_system_name): New.
7465         (decode_format_attr): Add use of convert_format_name_to_system_name.
7466         (format_types_orig): Add gnu_ prefix to names.
7467         (check_format_info_main): Special treating of \0 escaped names for
7468         supporting multi-character format specifiers as I32, I64.
7469         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7470         (gnu_target_overrides_format_attributes): New.
7471         * c-format.h: Add structure target_ovr_attr to hold
7472         system specific formatter names.
7473         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7474         msformat-c.o file to c_target_objs and cxx_target_objs.
7475         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7476         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7477         (TARGET_N_FORMAT_TYPES): New.
7478         * config/i386/msformat-c.c: New.
7479         * config/i386/t-cygming: Add build rule for msformat-c.o.
7480         * doc/extend.texi: Add new format names gnu_* and ms_* and
7481         further details.
7482         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7483
7484 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7485
7486         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7487         optimizations turned on under -O3.
7488         (ftree-vectorize): Add that the flag is turned on with -O3.
7489
7490 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7491
7492         * regmove.c (try_auto_increment): Fix spelling error in comment.
7493         * final.c (final_scan_insn): Likewise.
7494
7495 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7496
7497         PR target/14552
7498         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7499         allocator preferences for "y" and "r" class registers.
7500         ("*mov<mode>_internal"): Ditto.
7501         ("*movv2sf_internal_rex64"): Ditto.
7502         ("*movv2sf_internal"): Ditto.
7503
7504 2008-03-19  Michael Matz  <matz@suse.de>
7505
7506         PR middle-end/35616
7507         * calls.c (expand_call): Check overlap of arguments with call
7508         address for sibcalls.
7509
7510 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7511
7512         PR target/35496
7513         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7514         of the underlying type of a MS bitfield layout to the natural
7515         alignment of the type.
7516
7517 2008-03-19  Jan Hubicka  <jh@suse.cz>
7518
7519         PR other/35094
7520         * toplev.c (decode_d_option): Handle all CPP flags.
7521         * tree-vrp.c: Update tree_pass descriptors.
7522         * regrename.c: Update tree_pass descriptors.
7523         * fwprop.c: Update tree_pass descriptors.
7524         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7525         * tree-into-ssa.c: Update tree_pass descriptors.
7526         * tree-dump.c: Update tree_pass descriptors.
7527         * tree-complex.c: Update tree_pass descriptors.
7528         * tree-dump.h: Update tree_pass descriptors.
7529         * see.c: Update tree_pass descriptors.
7530         * cgraphbuild.c: Update tree_pass descriptors.
7531         * tracer.c: Update tree_pass descriptors.
7532         * tree-loop-distribution.c: Update tree_pass descriptors.
7533         * cgraph.c: Update tree_pass descriptors.
7534         * postreload-gcse.c: Update tree_pass descriptors.
7535         * postreload.c: Update tree_pass descriptors.
7536         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7537         * tree-tailcall.c: Update tree_pass descriptors.
7538         * tree-pass.h (tree_opt_pass): Rename to ...
7539         (opt_pass) ... this one; add "type" field and remove letter field.
7540         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7541         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7542         all_lowering_passes): Update declaration.
7543         * ipa-cp.c: Update tree_pass descriptors.
7544         * final.c: Update tree_pass descriptors.
7545         * omp-low.c: Update tree_pass descriptors.
7546         * tree-ssa-dse.c: Update tree_pass descriptors.
7547         * ipa-reference.c: Update tree_pass descriptors.
7548         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7549         * auto-inc-dec.c: Update tree_pass descriptors.
7550         * reorg.c: Update tree_pass descriptors.
7551         * cgraphunit.c: Update tree_pass descriptors.
7552         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7553         * tree-ssa-ccp.c: Update tree_pass descriptors.
7554         * df-core.c: Update tree_pass descriptors.
7555         * mode-switching.c: Update tree_pass descriptors.
7556         * tree-nomudflap.c: Update tree_pass descriptors.
7557         * modulo-sched.c: Update tree_pass descriptors.
7558         * ipa-pure-const.c: Update tree_pass descriptors.
7559         * cse.c: Update tree_pass descriptors.
7560         * web.c: Update tree_pass descriptors.
7561         * tree-stdarg.c: Update tree_pass descriptors.
7562         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7563         * tree-ssa-dom.c: Update tree_pass descriptors.
7564         * tree-nrv.c: Update tree_pass descriptors.
7565         * tree-ssa-alias.c: Update tree_pass descriptors.
7566         * loop-init.c: Update tree_pass descriptors.
7567         * gimple-low.c: Update tree_pass descriptors.
7568         * ipa-inline.c: Update tree_pass descriptors.
7569         * tree-ssa-sink.c: Update tree_pass descriptors.
7570         * global.c: Update tree_pass descriptors.
7571         * ifcvt.c: Update tree_pass descriptors.
7572         * jump.c: Update tree_pass descriptors.
7573         * predict.c: Update tree_pass descriptors.
7574         * tree-ssa-loop.c: Update tree_pass descriptors.
7575         * recog.c: Update tree_pass descriptors.
7576         * dse.c: Update tree_pass descriptors.
7577         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7578         * tree-eh.c: Update tree_pass descriptors.
7579         * regmove.c: Update tree_pass descriptors.
7580         * local-alloc.c
7581         * function.c: Update tree_pass descriptors.
7582         * tree-vectorizer.c: Update tree_pass descriptors.
7583         * gcse.c: Update tree_pass descriptors.
7584         * ipa-type-escape.c: Update tree_pass descriptors.
7585         * tree-if-conv.c: Update tree_pass descriptors.
7586         * init-regs.c: Update tree_pass descriptors.
7587         * ipa.c: Update tree_pass descriptors.
7588         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7589         * rtl-factoring.c: Update tree_pass descriptors.
7590         * lower-subreg.c: Update tree_pass descriptors.
7591         * bt-load.c: Update tree_pass descriptors.
7592         * tree-dfa.c: Update tree_pass descriptors.
7593         * except.c: Update tree_pass descriptors.
7594         * emit-rtl.c: Update tree_pass descriptors.
7595         * cfgexpand.c: Update tree_pass descriptors.
7596         * tree-cfgcleanup.c: Update tree_pass descriptors.
7597         * cfgcleanup.c: Update tree_pass descriptors.
7598         * tree-ssa-pre.c: Update tree_pass descriptors.
7599         * tree-sra.c: Update tree_pass descriptors.
7600         * tree-mudflap.c: Update tree_pass descriptors.
7601         * tree-ssa-copy.c: Update tree_pass descriptors.
7602         * cfglayout.c: Update tree_pass descriptors.
7603         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7604         * tree-ssa-dce.c: Update tree_pass descriptors.
7605         * tree-ssa.c: Update tree_pass descriptors.
7606         * regclass.c: Update tree_pass descriptors.
7607         * integrate.c: Update tree_pass descriptors.
7608         * tree-optimize.c: Update tree_pass descriptors.
7609         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7610         * tree-object-size.c: Update tree_pass descriptors.
7611         * combine.c: Update tree_pass descriptors.
7612         * tree-outof-ssa.c: Update tree_pass descriptors.
7613         * bb-reorder.c: Update tree_pass descriptors.
7614         * stack-ptr-mod.c: Update tree_pass descriptors.
7615         * var-tracking.c: Update tree_pass descriptors.
7616         * tree-profile.c: Update tree_pass descriptors.
7617         * tree-vect-generic.c: Update tree_pass descriptors.
7618         * reg-stack.c: Update tree_pass descriptors.
7619         * sched-rgn.c: Update tree_pass descriptors.
7620         * tree-ssa-structalias.c: Update tree_pass descriptors.
7621         * tree-cfg.c: Update tree_pass descriptors.
7622         * passes.c (current_pass): Update declaration.
7623         (finish_optimization_passes): Update.
7624         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7625         (register_one_dump_file, register_dump_files_1, next_pass_1):
7626         Update arguments.
7627         (init_optimization_passes): Update handling of new types.
7628         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7629         * ipa-struct-reorg.c: Update tree_pass descriptors.
7630         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7631         * combine-stack-adj.c: Update tree_pass descriptors.
7632         * cfgrtl.c: Update tree_pass descriptors.
7633         * dce.c: Update tree_pass descriptors.
7634         * tree-ssanames.c: Update tree_pass descriptors.
7635
7636 2008-03-19  Richard Guenther  <rguenther@suse.de>
7637
7638         PR middle-end/35609
7639         * tree-ssa.c (walk_data): New structure.
7640         (warn_uninitialized_var): If not always_executed warn with "maybe"
7641         instead of "is".
7642         (execute_early_warn_uninitialized): Compute post-dominators.
7643         Initialize always_executed before processing each basic block.
7644
7645 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7646
7647         PR target/35504
7648         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7649         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7650
7651 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7652
7653         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7654
7655 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7656
7657         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7658         is true.
7659         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7660         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7661         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7662         target after ignore has been set, and move there also the commputation
7663         of subtarget and original_target.
7664         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7665         (LANG_HOOKS_INITIALIZER): Remove it.
7666         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7667
7668 2008-03-18  Richard Guenther  <rguenther@suse.de>
7669
7670         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7671         found an expression with constants, note that in the VN for the lhs.
7672         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7673         fold them to constants if possible.  Run cleanup_cfg if done so.
7674         (execute_pre): Return todo.
7675         (do_pre): Likewise.
7676         (execute_fre): Likewise.
7677         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7678         of constants.
7679         (get_prop_source_stmt): Look through pointer conversions.
7680
7681 2008-03-18  Jan Hubicka  <jh@suse.cz>
7682
7683         * tree-pretty-print.c: Include predict.h.
7684         (dump_generic_node): Dump predictor.
7685         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7686         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7687         * gimple-low.c (lower_stmt): Likewise.
7688         * expr.c (expand_expr_real): Likewise.
7689         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7690         them.
7691         (build_predict_expr, build_predict_expr): New.
7692         * predict.h (predictor_name, build_predict_expr): Update.
7693         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7694         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7695         * predict.def (PRED_CONTINUE): Update hitrate.
7696         * tree.def (PREDICT_EXPR): Define.
7697         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7698         do not handle BIND_EXPR.
7699         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7700         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7701         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7702         operands.
7703
7704 2008-03-18  Michael Matz  <matz@suse.de>
7705
7706         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7707
7708 2008-03-18  Richard Guenther  <rguenther@suse.de>
7709
7710         * tree-gimple.h (is_gimple_invariant_address): Declare.
7711         (is_gimple_constant): Likewise.
7712         * tree-gimple.c (is_gimple_constant): New function.
7713         (is_gimple_invariant_address): Likewise.
7714         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7715         and is_gimple_invariant_address.
7716         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7717         previous change.
7718         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7719         an addressable base.
7720
7721 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7722
7723         PR middle-end/35611
7724         * gimplify.c (gimplify_expr): Gimplify second operand of
7725         OMP_ATOMIC_LOAD.
7726
7727 2008-03-17  Richard Guenther  <rguenther@suse.de>
7728
7729         PR tree-optimization/19637
7730         * fold-const.c (fold_unary): Remove restrictions of removing
7731         intermediate pointer-conversions (P2)(P1)P0.
7732         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7733         conversion to void pointer.
7734         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7735
7736 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7737
7738         PR debug/31510
7739         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7740         emulated thread local variables.
7741
7742 2008-03-16  Richard Guenther  <rguenther@suse.de>
7743
7744         PR middle-end/35607
7745         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7746         expand TREE_INVARIANT operations that are not gimple invariant.
7747
7748 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7749
7750         * doc/extend.texi (Alignment): Say that the ABI controls
7751         the __alignof__ for non-strict-alignment targets rather
7752         than being a recommendation.
7753
7754 2008-03-15  Paul Brook  <paul@codesourcery.com>
7755
7756         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7757         annotations.
7758         (arm_output_fn_unwind): Mark functions that can not be unwound.
7759
7760 2008-03-15  Paul Brook  <paul@codesourcery.com>
7761
7762         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7763         extension instructions.
7764
7765 2008-03-15  Richard Guenther  <rguenther@suse.de>
7766
7767         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7768         and fold constant aggregate refs.
7769         (fold_const_aggregate_ref): Handle string constants
7770         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7771         (evaluate_stmt): Simplify now that ccp_fold folds constant
7772         aggregate refs.
7773
7774 2008-03-15  Paul Brook  <paul@codesourcery.com>
7775
7776         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7777         (extzv): Use gen_extzv_t2.
7778         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7779
7780 2008-03-15  Richard Guenther  <rguenther@suse.de>
7781
7782         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7783         (fold_const_aggregate_ref): Likewise.
7784         (get_value): Return NULL if we don't have any values.
7785         (ccp_finalize): Set const_val to NULL after freeing it.
7786         * tree-flow.h (get_symbol_constant_value): Declare.
7787         (fold_const_aggregate_ref): Likewise.
7788         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7789
7790 2008-03-15  Richard Guenther  <rguenther@suse.de>
7791
7792         PR middle-end/35593
7793         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7794         to not produce negative array indices if not allowed.  Add
7795         parameter to indicate that.
7796         (maybe_fold_offset_to_component_ref): Allow negative array
7797         indices only for the first member of a structure.
7798         (maybe_fold_offset_to_reference): Allow negative array indices.
7799         (maybe_fold_stmt_addition): Likewise.
7800
7801 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7802             Anatoly Sokolov <aesok@post.ru>
7803
7804         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7805         (avr_arch): Add ARCH_AVR6.
7806         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7807         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7808         instead of fixed value 2.
7809         (print_operand_address): Use gs() asm specifier instead of pm().
7810         (avr_assemble_integer): (Ditto.).
7811         (avr_output_addr_vec_elt): (Ditto.).
7812         (print_operand): Handle "!" code.
7813         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7814         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7815         (AVR_HAVE_EIJMP_EICALL): Define.
7816         (AVR_3_BYTE_PC): Redefine.
7817         (AVR_2_BYTE_PC): (Ditto.).
7818         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7819         (LINK_SPEC): Add atmega2560 and atmega2561.
7820         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7821         (crtm2561.o).
7822         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7823         for 3 byte PC devices.
7824         (call_value_insn): (Ditto.).
7825         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7826         (indirect_jump): Use only for for 2 byte PC devices.
7827         (*tablejump): (Ditto.).
7828         (*indirect_jump_avr6): Add insn.
7829         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7830         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7831         instead of ijmp for 3 byte PC devices.
7832         (__tablejump2__): (Ditto.).
7833         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7834         (MULITLIB_DIRNAMES): (Ditto.). 
7835         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7836
7837 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7838
7839         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7840         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7841         ("mmx_psadbw"): Use V1DI mode for operand 0.
7842         * config/i386/i386-modes.def (V1SI): New vector mode.
7843         * config/i386/i386.c (struct builtin_description)
7844         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7845         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7846         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7847         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7848         v1di_ftype_v8qi_v8qi type.
7849         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7850
7851         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7852         __builtin_ia32_pmuludq]: Fix the mode of return value.
7853
7854 2008-03-15  Richard Guenther  <rguenther@suse.de>
7855
7856         PR middle-end/35595
7857         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7858         being a PHI_NODE.
7859
7860 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7861         
7862         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7863         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7864         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7865         unless TARGET_SERIALIZE_VOLATILE is enabled.
7866         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7867         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7868         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7869
7870 2008-03-14  Richard Guenther  <rguenther@suse.de>
7871
7872         PR tree-optimization/34172
7873         * tree-flow.h (refs_may_alias_p): Declare.
7874         (get_single_def_stmt): Likewise.
7875         (get_single_def_stmt_from_phi): Likewise.
7876         (get_single_def_stmt_with_phi): Likewise.
7877         * tree-dfa.c (refs_may_alias_p): New function.
7878         (get_single_def_stmt): Likewise.
7879         (get_single_def_stmt_from_phi): Likewise.
7880         (get_single_def_stmt_with_phi): Likewise.
7881         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7882         (vn_reference_lookup_1): New helper function.
7883         (vn_reference_lookup): Walk the virtual use-def chain to
7884         continue searching for a match if the def does not alias the
7885         reference we are looking for.
7886
7887 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7888
7889         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7890         archive and Perzl.  Update The Written Word listing.
7891
7892 2008-03-14  Richard Guenther  <rguenther@suse.de>
7893
7894         PR tree-optimization/34043
7895         PR tree-optimization/33989
7896         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7897         when doing FRE.
7898         (bitmap_find_leader): Use extra argument to verify dominance
7899         relationship inside a basic-block.
7900         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7901         (find_leader_in_sets): Adjust.
7902         (create_component_ref_by_pieces): Take extra argument for
7903         dominance check, handle lookup failures.
7904         (find_or_generate_expression): Likewise.
7905         (create_expression_by_pieces): Likewise.
7906         (insert_into_preds_of_block): Adjust.
7907         (create_value_expr_from): If asked for, verify all operands
7908         are in the blocks AVAIL_OUT set.
7909         (make_values_for_stmt): Check for SSA_NAMEs that are life
7910         over an abnormal edge.
7911         (compute_avail): Remove such check.
7912         (do_SCCVN_insertion): New function.
7913         (eliminate): If we do not find a leader suitable for replacement
7914         insert a replacement expression from SCCVN if available.
7915         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7916         (struct vn_ssa_aux): Add needs_insertion flag.
7917         * tree-ssa-sccvn.c (may_insert): New global flag.
7918         (copy_reference_ops_from_ref): Value-number union member access
7919         based on its size, not type and member if insertion is allowed.
7920         (visit_reference_op_load): For a weak match from union type
7921         punning lookup a view-converted value and insert a SSA_NAME
7922         for that value if that is not found.
7923         (visit_use): Make dumps shorter.  Do not disallow value numbering
7924         SSA_NAMEs that are life over an abnormal edge to constants.
7925         (free_scc_vn): Release inserted SSA_NAMEs.
7926         (run_scc_vn): New flag to specify whether insertion is allowed.
7927         Process SSA_NAMEs in forward order.
7928         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7929         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7930         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7931         pointer type to/from integral types that do not change the
7932         precision to regular conversions.
7933
7934 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7935
7936         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7937         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7938         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7939         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7940         input arguments and the mode of return value.  Built-in functions
7941         that operate on whole 64-bit MMX register now use V1DI mode.
7942
7943 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7944             Olga Golovanevsky  <olga@il.ibm.com>
7945
7946         PR tree-optimization/35041
7947         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7948         to locate the right position in a statement.
7949
7950 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7951
7952         PR target/34000
7953         PR target/35553
7954         * config/i386/xmmintrin.h:  Change all static inline functions to
7955         extern inline and add __gnu_inline__ attribute.
7956         * config/i386/bmintrin.h: Ditto.
7957         * config/i386/smmintrin.h: Ditto.
7958         * config/i386/tmmintrin.h: Ditto.
7959         * config/i386/mmintrin-common.h: Ditto.
7960         * config/i386/ammintrin.h: Ditto.
7961         * config/i386/emmintrin.h: Ditto.
7962         * config/i386/pmmintrin.h: Ditto.
7963         * config/i386/mmintrin.h: Ditto.
7964         * config/i386/mm3dnow.h: Ditto.
7965
7966 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7967
7968         PR middle-end/35185
7969         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7970         (lower_omp_2): New function.
7971         (lower_omp_1, lower_omp): Rewritten.
7972
7973 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7974
7975         PR 35054
7976         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7977         with the phrase "Microsoft Windows compilers".
7978         (Push/Pop Macro Pragmas): New subsection. Document
7979         #pragma push_macro and pragma pop_macro.
7980
7981 2008-03-12  Paul Brook  <paul@codesourcery.com>
7982
7983         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7984
7985 2008-03-12  Paul Brook  <paul@codesourcery.com>
7986
7987         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7988         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7989         (thumb2_addsi_shortim): Rename ...
7990         (thumb2_addsi_short): ... to this.  Allow register operands.
7991         (thumb2_subsi_short): New pattern.
7992         (thumb2_one_cmplsi2_short,
7993         thumb2_negsi2_short): New patterns and peepholes.
7994
7995 2008-03-12  Paul Brook  <paul@codesourcery.com>
7996
7997         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7998
7999 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
8000
8001         * config/i386/i386.md (int_cond): New code iterator.
8002         (fp_cond): Ditto.
8003         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8004         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8005         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8006         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8007         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8008         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8009         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8010         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8011
8012 2008-03-12  Paul Brook  <paul@codesourcery.com>
8013
8014         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8015         instead of {arm,thumb}_compute_save_reg_mask.
8016         (output_return_instruction): Ditto.
8017         (thumb_unexpanded_epilogue): Ditto.
8018         (thumb1_expand_prologue): Ditto.
8019         (thumb1_output_function_prologue): Ditto.
8020         (arm_set_return_address): Ditto.
8021         (thumb_set_return_address): Ditto.
8022         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
8023         regs to achieve stack alignment.
8024         (thumb1_compute_save_reg_mask): Fix compiler warning.
8025         (arm_output_epilogue): Use offsets->saved_regs_mask.
8026         Adjust stack pointer by poping call clobered registers.
8027         (arm_expand_prologue): Use offsets->saved_regs_mask.
8028         Adjust stack pointer by pushing extra registers.
8029         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
8030
8031 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
8032
8033         PR tree-opt/35422
8034         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8035         conversion to the operands of a multiplication.
8036
8037 2008-03-12  Richard Guenther  <rguenther@suse.de>
8038
8039         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8040         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8041         * timevar.def (TV_TREE_PHIPROP): Add.
8042         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8043         pass description.  Use TV_TREE_PHIPROP.
8044         * tree-ssa-forwprop.c: Remove phiprop code.
8045
8046 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8047
8048         PR middle-end/35549
8049         * omp-low.c (maybe_lookup_decl): Constify first argument.
8050         (use_pointer_for_field): Change last argument from bool to
8051         omp_context *.  Disallow shared copy-in/out in nested
8052         parallel if decl is shared in outer parallel too.
8053         (build_outer_var_ref, scan_sharing_clauses,
8054         lower_rec_input_clauses, lower_copyprivate_clauses,
8055         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8056
8057 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8058             Ira Rosen  <irar@il.ibm.com>
8059
8060         * tree-vectorizer.c (free_stmt_vec_info): New function.
8061         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8062         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8063         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8064         * tree-vect-transform.c (vectorizable_conversion): Free
8065         vec_oprnds0 if it was allocated.
8066         (vect_permute_store_chain): Remove unused VECs.
8067         (vectorizable_store): Free VECs that are allocated in the..
8068         function.
8069         (vect_transform_strided_load, vectorizable_load): Likewise.
8070         (vect_remove_stores): Simplify the code.
8071         (vect_transform_loop): Move code to vect_remove_stores().
8072         Call vect_remove_stores() and free_stmt_vec_info().
8073
8074 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8075
8076         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8077         TARGET_HPUX.  Revise comment.
8078         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8079         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8080         Use sr4 variant of `be' instruction when not generating PIC code.
8081         (attr_length_call): Adjust for above change.
8082
8083 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8084
8085         * ipa-reference.c (static_execute): Remove module_statics_const and
8086         associated setting code.
8087
8088 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8089
8090         PR target/35540
8091         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8092         predicate for operand 1.
8093         (paritysi2_cmp): Use register_operand predicate for operand 2.
8094         Use earlyclobber modifier for operand 1.  Remove support for
8095         memory operands.
8096         (paritydi2_cmp): Use register_operand predicate for operand 3.
8097         Use earlyclobber modifier for operand 1.  Remove support for
8098         memory operands.
8099
8100 2008-03-11  Paul Brook  <paul@codesourcery.com>
8101             Vladimir Prus  <vladimir@codesourcery.com>
8102
8103         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8104         (arm_compute_save_reg0_reg12_mask): Always
8105         check if register 11 must be saved.  Always safe hard frame pointer
8106         when frame_pointer_needeed.
8107         (arm_compute_save_reg_mask): Save IP and PC
8108         only with apcs frames.
8109         (arm_output_epilogue): Adjust Thumb2 codepath to
8110         be also invoked and work for ARM non-apcs frames.
8111         (arm_expand_prologue): Don't bother saving IP
8112         for non-apcs frame, since it's not clobbered by
8113         prologue code.  Implement non-apcs frame
8114         layout.
8115
8116 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8117
8118         PR rtl-optimization/35281
8119         * expr.c (convert_move): Use a new pseudo for the intermediate
8120         from_mode->word_mode result.
8121
8122 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8123
8124         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8125         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8126         * toplev.c (compile_file): Don't call it.
8127
8128 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8129
8130         PR middle-end/35526
8131         * expr.c (store_expr): Call emit_block_move if the mode
8132         of "temp" RTX is BLKmode.
8133
8134 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8135             Richard Guenther  <rguenther@suse.de>
8136
8137         PR tree-optimization/31358
8138         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8139         the step with a NULL_TREE.
8140         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8141         to sizetype if type is a pointer type.
8142         (add_candidate_1): Don't convert the base and step to
8143         the generic type if the orginal type is a pointer type.
8144         (add_iv_value_candidates): Use sizetype for the step
8145         if type is a pointer type.
8146         (cand_value_at): Likewise.
8147         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8148         for pointer types.
8149         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8150         Don't convert the tem affine to the type.
8151         (add_elt_to_tree): Use sizetype for the step if a pointer.
8152         Use POINTER_PLUS_EXPR for pointers.
8153         (aff_combination_to_tree): Use sizetype for the step if a
8154         pointer.
8155
8156 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8157
8158         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8159         Remove commutativity hint.
8160
8161 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8162
8163         PR c/35438
8164         PR c/35439
8165         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8166         errorneous type.  Check that v is a VAR_DECL.
8167
8168         PR middle-end/35099
8169         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8170
8171 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8172
8173         PR tree-optimization/35494
8174         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8175         may be overriden at link and run time.
8176
8177 2008-03-10  Richard Guenther  <rguenther@suse.de>
8178
8179         PR tree-optimization/34677
8180         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8181         (poolify_tree): Likewise.
8182         (modify_expr_template): Likewise.
8183         (poolify_modify_stmt): Likewise.
8184         (insert_fake_stores): Handle all component-ref style stores
8185         in addition to INDIRECT_REF.  Also handle complex types.
8186         Do not poolify the inserted load.
8187         (realify_fake_stores): Do not rebuild the tree but only
8188         make it a SSA_NAME copy.
8189         (init_pre): Remove initialzation of modify_expr_template.
8190         Do not allocate modify_expr_node_pool.
8191         (fini_pre): Do not free modify_expr_node_pool.
8192
8193 2008-03-10  Paul Brook  <paul@codesourcery.com>
8194
8195         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8196         to avoid conflicts.
8197
8198 2008-03-10  Paul Brook  <paul@codesourcery.com>
8199             Mark Shinwell  <shinwell@codesourcery.com>
8200
8201         * config/arm/cortex-r4.md: New.
8202         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8203         insn attributes.
8204         * config/arm/arm.md: Include cortex-r4.md.
8205         (insn): Add smmls, sdiv and udiv values.
8206         (generic_sched): Don't use generic scheduling for Cortex-R4.
8207         (arm_issue_rate): New function.
8208         (TARGET_SCHED_ISSUE_RATE): Define.
8209
8210 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8211
8212         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8213
8214 2008-03-10  Richard Guenther  <rguenther@suse.de>
8215
8216         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8217         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8218
8219 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8220
8221         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8222         Set default to true.
8223
8224 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8225
8226         * c.opt (Wsynth): Deprecate.
8227         * doc/invoke.texi (Option Summary, Warning Options): Document
8228         -Wno-format-contains-nul.
8229
8230 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8231
8232         PR target/35496
8233         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8234         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8235
8236 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8237
8238         * config/rs6000/rs6000.c (builtin_description): Rename vector
8239         left shift operations.
8240         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8241         (altivec_vsl<VI_char>): Rename to ...
8242         (ashl<mode>3): ... new name.
8243         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8244         gen_ashlv4si3.
8245         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8246
8247 2008-03-08  Richard Guenther  <rguenther@suse.de>
8248
8249         * coverage.h (tree_coverage_counter_addr): Declare.
8250         * coverage.c (tree_coverage_counter_addr): New function.
8251         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8252         before using again.
8253         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8254         (tree_gen_one_value_profiler): Likewise.
8255         (tree_gen_ic_profiler): Likewise.
8256         (tree_gen_average_profiler): Likewise.
8257         (tree_gen_ior_profiler): Likewise.
8258
8259 2008-03-08  Richard Guenther  <rguenther@suse.de>
8260
8261         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8262         (vn_binary_op_insert): Likewise.
8263         (vn_unary_op_lookup): Likewise.
8264         (vn_unary_op_insert): Likewise.
8265         (vn_nary_op_lookup): Declare.
8266         (vn_nary_op_insert): Likewise.
8267         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8268         and binary hashes, use a single obstack for unary_op_pool
8269         and binary_op_pool.
8270         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8271         a single struct vn_nary_op_s.  Store tree code length and
8272         a variable number of operands.
8273         (struct vn_reference_op_struct): Remove unused op2.
8274         (vn_reference_op_eq): Do not compare op2.
8275         (vn_reference_op_compute_hash): Do not compute hash of op2.
8276         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8277         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8278         with vn_nary_op_compute_hash.
8279         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8280         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8281         vn_nary_op_lookup.
8282         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8283         vn_nary_op_insert.
8284         (visit_unary_op): Call nary functions.
8285         (visit_binary_op): Likewise.
8286         (process_scc): Adjust for struct vn_tables_s changes.
8287         (allocate_vn_table): Likewise.
8288         (free_vn_table): Likewise.
8289         * tree-vn.c (vn_add): Call nary functions.
8290         (vn_lookup): Likewise.
8291
8292 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8293
8294         PR target/35498
8295         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8296         wdst back after sync_compare_and_swapqhi_internal.
8297
8298 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8299
8300         PR target/22152
8301         * config/i386/i386-modes.def (V1DI): New vector mode.
8302         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8303         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8304         (MMXMODE248): Ditto.
8305         (MMXMODE): Add V1DI mode.
8306         (mmxvecsize): Change DI mode to V1DI mode.
8307         ("mov<mode>): Use MMXMODEI8 mode iterator.
8308         ("*mov<mode>_internal_rex64"): Ditto.
8309         ("*mov<mode>_internal"): Ditto.
8310         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8311         ("mmx_sub<mode>3"): Ditto.
8312         ("mmx_adddi3"): Remove insn pattern.
8313         ("mmx_subdi3"): Ditto.
8314         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8315         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8316         ("mmx_ashl<mode>3"): Ditto.
8317         ("mmx_lshrdi3"): Remove insn pattern.
8318         ("mmx_ashldi3"): Ditto.
8319         * config/i386/i386.c (classify_argument): Handle V1DImode.
8320         (function_arg_advance_32): Ditto.
8321         (function_arg_32): Ditto.
8322         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8323         mmx_addv1di3 insn pattern.
8324         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8325         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8326         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8327         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8328         Remove definitions of built-in functions.
8329         (V1DI_type_node): New node.
8330         (v1di_ftype_v1di_int): Ditto.
8331         (v1di_ftype_v1di_v1di): Ditto.
8332         (v2si_ftype_v2si_si): Ditto.
8333         (v4hi_ftype_v4hi_di): Remove node.
8334         (v2si_ftype_v2si_di): Ditto.
8335         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8336         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8337         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8338         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8339         Add new builtins using def_builtin_const.
8340         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8341         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8342         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8343         * config/i386/mmintrin.h (__v1di): New typedef.
8344         (_mm_add_si64): Cast arguments to __v1di type.
8345         (_mm_sub_si64): Ditto.
8346         (_mm_sll_pi16): Cast __count to __v4hi type.
8347         (_mm_sll_pi32): Cast __count to __v2si type.
8348         (_mm_sll_si64): Cast arguments to __v1di type.
8349         (_mm_srl_pi16): Cast __count to __v4hi type.
8350         (_mm_srl_pi32): Cast __count to __v2si type.
8351         (_mm_srl_si64): Cast arguments to __v1di type.
8352         (_mm_sra_pi16): Cast __count to __v4hi type.
8353         (_mm_sra_pi32): Cast __count to __v2si type.
8354         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8355         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8356         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8357         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8358         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8359         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8360         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8361         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8362         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8363         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8364         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8365         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8366
8367 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8368
8369         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8370
8371 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8372
8373         PR target/35373
8374         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8375         reg+const addressing for Altivec modes.  Don't generate reg+reg
8376         addressing for TFmode or TDmode quantities.
8377
8378 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8379
8380         * c-common.c (vector_types_convertible_p): Call langhook
8381         instead of comptypes.
8382
8383 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8384
8385         PR tree-opt/35402
8386         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8387         integral and scalar float variables which have a
8388         NULL DECL_INITIAL.
8389
8390 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8391
8392         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8393         dwarf_register_span hook when emitting unwind information for
8394         register-to-memory saves.
8395         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8396         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8397
8398 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8399
8400         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8401         for the same VAR_DECL.
8402
8403 2008-03-06  Tom Tromey  <tromey@redhat.com>
8404
8405         * treelang: Delete.
8406         * doc/standards.texi (Standards): Don't mention treelang.
8407         * doc/invoke.texi (Overall Options): Don't mention treelang.
8408         * doc/install.texi (Prerequisites): Don't mention bison or
8409         treelang.
8410         (Configuration): Don't mention treelang.
8411         (Building): Likewise.
8412         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8413
8414 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8415
8416         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8417         word-extractions out of a multi-word object.
8418
8419 2008-03-06  Richard Guenther  <rguenther@suse.de>
8420
8421         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8422         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8423         result type and precision.
8424         * expr.c (get_inner_reference): Set unsignedp based on the result
8425         type of BIT_FIELD_REF.
8426         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8427         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8428         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8429         for BIT_FIELD_REF.
8430         (sra_build_assignment): Likewise.
8431         (sra_build_elt_assignment): Likewise.
8432         (sra_explode_bitfield_assignment): Likewise.
8433         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8434         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8435         set BIT_FIELD_REF_UNSIGNED.
8436         (vectorizable_load): Likewise.
8437
8438 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8439
8440         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8441         at bb start.
8442
8443 2008-03-06  Richard Guenther  <rguenther@suse.de>
8444
8445         * alias.c (struct alias_set_entry): Move has_zero_child field
8446         to pack with alias_set.
8447
8448 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8449
8450         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8451         32bit host.
8452
8453 2008-03-05  Ian Lance Taylor  <iant@google.com>
8454
8455         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8456
8457 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8458
8459         * fwprop.c (update_df): Support width and offset parameters of
8460         df_ref_create.
8461         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8462         global_conflicts): Change DF_REF_EXTRACT to either
8463         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8464         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8465         * df-scan.c (df_ref_record, df_defs_record,
8466         df_ref_create_structure, df_def_record_1, df_uses_record,
8467         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8468         df_bb_refs_collect, df_entry_block_defs_collect,
8469         df_exit_block_uses_collect): Support new width and offset fields.
8470         (ref_extract_pool): New storage pool.
8471         (df_free_ref): New function.
8472         (df_reg_chain_unlink, df_free_collection_rec,
8473         df_sort_and_compress_refs): Call df_free_ref.
8474         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8475         of df_ref_extract.
8476         (df_ref_create_structure): Allocate df_ref_extract if offset and
8477         width fields are used.
8478         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8479         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8480         and SIGN_EXTRACT.
8481         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8482         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8483         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8484         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8485         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8486         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8487         (df_ref_extract): New structure.
8488         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8489         (df_ref_create): Add width and offset parameters.
8490         
8491 2008-03-05  Richard Guenther  <rguenther@suse.de>
8492
8493         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8494         Use ranges_overlap_p.
8495         (offset_overlaps_with_access): Rename
8496         to ranges_overlap_p and move ...
8497         * tree-flow-inline.h (ranges_overlap_p): ... here.
8498
8499         * tree.h (get_inner_reference, handled_component_p): Update
8500         comments.
8501
8502         * tree.h (record_component_aliases, get_alias_set,
8503         alias_sets_conflict_p, alias_sets_must_conflict_p,
8504         objects_must_conflict_p): Move declarations ...
8505         * alias.h (record_component_aliases, get_alias_set,
8506         alias_sets_conflict_p, alias_sets_must_conflict_p,
8507         objects_must_conflict_p): ... here.
8508         Include coretypes.h.
8509         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8510
8511 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8512
8513         * cfg.c: Include tree-flow.h.
8514         (remove_edge_raw): Call redirect_edge_var_map_clear.
8515         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8516         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8517         (redirect_edge_var_map_result): New.
8518         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8519         PENDING_STMT use with redirect_edge_var_map_*.
8520         * tree-ssa.c (edge_var_maps): New definition.
8521         (redirect_edge_var_map_add): New.
8522         (redirect_edge_var_map_clear): New.
8523         (redirect_edge_var_map_dup): New.
8524         (redirect_edge_var_map_vector): New.
8525         (redirect_edge_var_map_destroy): New.
8526         (ssa_redirect_edge): Replace PENDING_STMT use with
8527         redirect_edge_var_map_*.
8528         (flush_pending_stmts): Same.
8529         (delete_tree_ssa): Destroy edge var map.
8530         * tree-flow.h (struct _edge_var_map): New.
8531         Define edge_var_map vector type.
8532         Declare redirect_edge_var_map_* prototypes.
8533         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8534         * tree-cfg.c (reinstall_phi_args): Replace
8535         PENDING_STMT use with redirect_edge_var_map_*.
8536
8537 2008-03-05  Richard Guenther  <rguenther@suse.de>
8538
8539         PR tree-optimization/35472
8540         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8541         whose single use_stmt has a overlapping set of loaded and
8542         stored symbols as that use_stmt might be a noop assignment then.
8543
8544 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8545
8546         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8547
8548 2008-03-05  Richard Guenther  <rguenther@suse.de>
8549
8550         PR c++/35336
8551         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8552         should be constants.
8553         * tree-cfg.c (verify_expr): Verify it.
8554         * fold-const.c (fold_truthop): Remove code generating
8555         BIT_FIELD_REFs of structure bases.
8556         (fold_binary): Likewise.
8557         (fold_ternary): Position and size of BIT_FIELD_REFs are
8558         always host integers.
8559         (make_bit_field_ref): Remove.
8560         (optimize_bit_field_compare): Remove.
8561         (all_ones_mask_p): Remove.
8562
8563 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8564
8565         PR gcc/33009
8566         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8567         (split_block_and_df_analyze): New. Split basic block and rebuild
8568         dataflow.
8569         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8570         SPLIT_BLOCK.
8571         (split_pattern_seq): Likewise.
8572         (erase_matching_seqs): Likewise.
8573         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8574
8575 2008-03-04  Geoff Keating  <geoffk@apple.com>
8576
8577         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8578         declaration and code.
8579         (tree_invalid_nonnegative_warnv_p): Likewise.
8580
8581 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8582
8583         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8584         examples.  Truncate option-names then causing overfull hbox.
8585
8586 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8587
8588         PR target/35222
8589         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8590         on hpux10.
8591         * configure: Rebuilt.
8592
8593 2008-03-04  Rafael Espindola  <espindola@google.com>
8594
8595         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8596         (tree_unary_nonnegative_warnv_p): New.
8597         (tree_binary_nonnegative_warnv_p): New.
8598         (tree_single_nonnegative_warnv_p): New.
8599         (tree_invalid_nonnegative_warnv_p): New.
8600         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8601
8602 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8603
8604         PR 28322
8605         * opts.c (handle_option): Postpone 'unknown option' errors only for
8606         warning options.
8607
8608 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8609
8610         PR target/35453
8611         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8612         (_SIDD_XXX): This.
8613
8614 2008-03-04  Rafael Espindola  <espindola@google.com>
8615
8616         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8617         (tree_binary_nonzero_warnv_p): New.
8618         (tree_single_nonzero_warnv_p): New.
8619         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8620
8621 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8622
8623         PR middle-end/35456
8624         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8625         transformations for modes that have signed zeros.
8626         * ifcvt.c (noce_try_abs): Ditto.
8627
8628 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8629
8630         * config/i386/i386.c (override_options): Force
8631         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8632
8633 2008-03-04  Jan Hubicka  <jh@suse.cz>
8634
8635         PR c++/35262
8636         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8637         in last commit.
8638
8639 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8640
8641         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8642         label to probe the stack.
8643
8644 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8645
8646         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8647         (__gthr_win32_mutex_destroy): Declare.
8648         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8649         __gthr_win32_mutex_destroy.
8650         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8651
8652 2008-03-03  Jan Hubicka  <jh@suse.cz>
8653
8654         PR c++/35262
8655         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8656         aggressive on inlining cold calls.
8657
8658 2008-03-03  Richard Guenther  <rguenther@suse.de>
8659
8660         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8661         struct copies into the expression table.
8662         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8663         (try_to_simplify): Likewise.
8664         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8665         integral and pointer arguments which do not change the
8666         precision to NOP_EXPRs.
8667         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8668         VIEW_CONVERT_EXPR case.
8669
8670 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8671
8672         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8673         defined in a loop at depth 0 is invariant.
8674         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8675         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8676         be called at loop depth 0.
8677
8678 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8679
8680         PR driver/35420
8681         * gcc.c (process_command): Update copyright notice dates.
8682         * gcov.c (print_version): Likewise.
8683         * gcov-dump.c (print_version): Likewise.
8684         * mips-tfile.c (main): Likewise.
8685         * mips-tdump.c (main): Likewise.
8686
8687 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8688
8689         PR 24924
8690         * c-common.c (flag_permissive): Delete.
8691         (constant_expression_warnings): Check flags first.
8692         (constant_expression_error): New.
8693         * c-common.h (flag_permissive): Delete.
8694         (constant_expression_error): Declare.
8695         * flags.h (flag_permissive): Declare. Update description.
8696         * diagnostic.c (pedwarn): Update.
8697         (permerror): New.
8698         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8699         (permissive_error_kind): New.
8700         * toplev.c (flag_permissive): Define. Update description.
8701         * toplev.h (permissive_error_kind): Declare.
8702         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8703         (pedwarn_c90): Use pedantic_warning_kind.
8704         * c-opts.c (c_common_post_options): flag_permissive does not affect
8705         flag_pedantic_errors.
8706
8707 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8708
8709         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8710         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8711         __absvsi2, __absvDI2): Use unsigned arithmetic.
8712
8713 2008-03-02  Andi Kleen  <ak@suse.de>
8714             Richard Guenther  <rguenther@suse.de>
8715
8716         * struct-equiv.c: Remove file.
8717         * cfg_cleanup.c (condjump_equiv_p): Remove.
8718         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8719         (struct-equiv.o): Remove rule.
8720         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8721         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8722         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8723
8724 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8725
8726         * ifcvt.c (noce_process_if_block): Try to handle only the then
8727         block if the else block exists but isn't suitable.
8728
8729 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8730
8731         PR gcc/35063
8732         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8733         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8734         regression from previous patch.
8735
8736 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8737
8738         PR gcc/35063
8739         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8740         implemented.
8741         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8742         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8743         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8744         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8745         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8746         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8747         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8748         (__gthread_mutex_destroy_function): Rename to
8749         __gthread_mutex_destroy.
8750         * gthr-dce.h (__gthread_mutex_destroy): Call
8751         pthread_mutex_destroy.
8752         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8753         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8754         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8755
8756 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8757
8758         * df-scan.c (df_ref_chain_change_bb): Simplify.
8759         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8760         set_block_for_insn if there's any change.
8761         * df.h ((df_insn_change_bb): Fix prototype.
8762         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8763         df_insn_change_bb, don't call set_block_for_insn.
8764         * emit-rtl.c (reorder_insns): Likewise.
8765         * haifa-sched.c (move_insn): Likewise.
8766
8767 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8768
8769         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8770
8771 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8772
8773         * tree-flow-inline.h (next_readonly_imm_use): Return
8774         NULL_USE_OPERAND_P after the end.
8775
8776 2008-03-01  Richard Guenther  <rguenther@suse.de>
8777
8778         PR tree-optimization/35411
8779         * tree-sra.c (sra_build_assignment): Split conversion to
8780         final type to a separate statement if we are not assigning
8781         to a register.
8782
8783 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8784
8785         * fold-const.c (fold_convertible_p): Correct the logic to follow
8786         that in fold_convert().
8787
8788 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8789
8790         PR c++/35315
8791         * tree-inline.c (build_duplicate_type): When we make a
8792         duplicate type, make it unique in the canonical types system.
8793
8794 2008-02-29  Tom Tromey  <tromey@redhat.com>
8795
8796         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8797         input_file_stack_history, input_file_stack_restored): Remove.
8798         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8799         * input.h (struct file_stack): Remove.
8800         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8801         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8802         Likewise.
8803         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8804         type.
8805         (diagnostic_last_module_changed): Add 'map' argument.
8806         (diagnostic_set_last_function): Likewise.
8807         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8808         line map, not input_file_stack.
8809         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8810
8811 2008-02-29  Paul Brook  <paul@codesourcery.com>
8812
8813         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8814
8815 2008-02-29  Paul Brook  <paul@codesourcery.com>
8816
8817         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8818
8819 2008-02-29  Richard Guenther  <rguenther@suse.de>
8820
8821         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8822         vn_lookup_or_add.
8823         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8824         value for comparing for a store match.
8825         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8826         (try_to_simplify): Do not do a full-blown reference lookup.
8827
8828 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8829
8830         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8831         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8832
8833         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8834
8835 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8836
8837         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8838         strides against cache sizes.
8839
8840 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8841
8842         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8843         constant to fpul.
8844
8845 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8846
8847         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8848         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8849         is smaller than the original promoted value.
8850         (simplify_subreg): If OP is a SUBREG, try to preserve its
8851         SUBREG_PROMOTED_VAR_P information.
8852
8853 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8854
8855         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8856         (VN_INFO_GET): Allocate new objects on the obstack.
8857         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8858         for rpo_numbers_temp, for consistency.
8859         (free_scc_vn): Free the obstack.
8860
8861 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8862
8863         * doc/invoke.texi: Document -ftree-loop-distribution.
8864         * tree-loop-distribution.c: New.
8865         * tree-pass.h (pass_loop_distribution): New.
8866         * graphds.h (struct graph): Add htab_t indices.
8867         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8868         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8869         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8870         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8871         * tree-data-ref.c (debug_data_dependence_relations): New.
8872         (dump_data_dependence_relation): Also print data references.
8873         (free_data_ref): Extern.
8874         (same_access_functions): Moved...
8875         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8876         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8877         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8878         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8879         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8880         (stmts_from_loop): Skip LABEL_EXPR.
8881         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8882         New.
8883         (build_rdg): Initialize rdg->indices htab.
8884         (free_rdg, stores_from_loop, ref_base_address,
8885         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8886         have_similar_memory_accesses_1, ref_base_address_1,
8887         remove_similar_memory_refs): New.
8888         * tree-data-ref.h: Depend on tree-chrec.h.
8889         (debug_data_dependence_relations, free_data_ref): Declared.
8890         (same_access_functions): ... here.
8891         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8892         New.
8893         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8894         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8895         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8896         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8897         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8898         rdg_vertex_for_stmt): Declared.
8899         (struct rdg_edge): Add level.
8900         (RDGE_LEVEL): New.
8901         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8902         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8903         Declared.
8904         (rdg_has_similar_memory_accesses): New.
8905         * tree-vect-analyze.c: Remove unused static decls.
8906         * lambda.h (dependence_level): New.
8907         * common.opt (ftree-loop-distribution): New.
8908         * tree-flow.h (mark_virtual_ops_in_bb, 
8909         slpeel_tree_duplicate_loop_to_edge_cfg,
8910         rename_variables_in_loop): Declared.
8911         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8912         (OBJS-common): Add tree-loop-distribution.o.
8913         (tree-loop-distribution.o): New rule.
8914         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8915         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8916         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8917
8918 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8919
8920         PR target/33963
8921         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8922         other than structures and unions.
8923
8924 2008-02-28  Richard Guenther  <rguenther@suse.de>
8925
8926         Revert:
8927         2008-02-26  Richard Guenther  <rguenther@suse.de>
8928
8929         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8930         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8931         (lookup_decl_from_uid): Declare.
8932         (remove_decl_from_map): Likewise.
8933         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8934         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8935         (decl_for_uid_map): New global hashtable mapping DECL_UID
8936         to the decl tree.
8937         (init_ttree): Allocate it.
8938         (insert_decl_to_uid_decl_map): New helper function.
8939         (make_node_stat): Insert new decls into the map.
8940         (copy_node_stat): Likewise.
8941         (lookup_decl_from_uid): New function.
8942         (remove_decl_from_map): Likewise.
8943         (print_decl_for_uid_map_statistics): New helper.
8944         (dump_tree_statistics): Call it.
8945
8946         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8947         (referenced_var_iterator): Adjust.
8948         (FOR_EACH_REFERENCED_VAR): Adjust.
8949         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8950         (num_referenced_vars): Adjust.
8951         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8952         (first_referenced_var): Remove.
8953         (end_referenced_vars_p): Likewise.
8954         (next_referenced_var): Likewise.
8955         (referenced_var_iterator_set): New helper function.
8956         * tree-dfa.c (referenced_var_lookup): Adjust.
8957         (referenced_var_check_and_insert): Likewise.
8958         (remove_referenced_var): Likewise.
8959         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8960         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8961         (verify_call_clobbering): Likewise.
8962         (verify_memory_partitions): Likewise.
8963         (init_tree_ssa): Allocate bitmap instead of hashtable for
8964         referenced_vars.
8965         (delete_tree_ssa): Adjust.
8966         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8967         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8968         (compute_tag_properties): Likewise.
8969         (set_initial_properties): Likewise.
8970         (find_partition_for): Likewise.
8971         (update_reference_counts): Likewise.
8972         (dump_may_aliases_for): Likewise.
8973         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8974         (add_call_clobber_ops): Likewise.
8975         (add_call_read_ops): Likewise.
8976         (get_asm_expr_operands): Likewise.
8977         * tree-into-ssa.c (dump_decl_set): Likewise.
8978         (update_ssa): Likewise.
8979         * tree-sra.c (scan_function): Likewise.
8980         (decide_instantiations): Likewise.
8981         (scalarize_parms): Likewise.
8982         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8983         (dsa_named_for): Likewise.
8984         * tree-ssa-structalias.c (update_alias_info): Likewise.
8985         (merge_smts_into): Likewise.
8986
8987 2008-02-27  David Daney  <ddaney@avtrex.com>
8988
8989         PR target/34409
8990         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8991         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8992         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8993         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8994         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8995
8996 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8997
8998         PR target/25477
8999         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9000         (BUILT_IN_NEXTTOWARD): Remove.
9001         (BUILT_IN_NEXTTOWARDF): Ditto.
9002         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9003         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
9004
9005 2008-02-27  Tom Tromey  <tromey@redhat.com>
9006
9007         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9008         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9009
9010 2008-02-27  Jan Beulich  <jbeulich@novell.com>
9011
9012         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9013         update the respective field on newdecl.
9014
9015 2008-02-27  Revital Eres  <eres@il.ibm.com>
9016
9017         PR rtl-optimization/34999
9018         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9019         crossing edges that ends with a call insn.
9020         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9021         call insn and clear the EDGE_CROSSING flag of the crossing edge
9022         when fixing fallthru edges.
9023
9024 2008-02-27  Richard Guenther  <rguenther@suse.de>
9025
9026         PR middle-end/35390
9027         * fold-const.c (fold_unary): Return the correct argument,
9028         converted to the result type.
9029
9030 2008-02-27  Richard Guenther  <rguenther@suse.de>
9031
9032         PR middle-end/34971
9033         * expr.c (expand_expr_real_1): Assert on rotates that operate
9034         on partial modes.
9035         * fold-const.c (fold_binary): Use the types precision, not the
9036         bitsize of the mode if folding rotate expressions.  Build rotates
9037         only for full modes.
9038
9039 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
9040
9041         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9042         and CPP_PRAGMA_EOL.
9043         * c-pragma.c (pragma_ns_name): New typedef.
9044         (registered_pp_pragmas): New variable.
9045         (c_pp_lookup_pragma): New function.
9046         (c_register_pragma_1): If flag_preprocess_only, do nothing
9047         for non-expanded pragmas, for expanded ones push pragma's
9048         namespace and name into registered_pp_pragmas vector.
9049         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9050         flag_preprocess_only, don't register GCC pch_preprocess
9051         pragma if flag_preprocess_only.
9052         * c-opts.c (c_common_init): Call init_pragma even if
9053         flag_preprocess_only.
9054         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9055         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9056         cpp_register_pragma if flag_preprocess_only.
9057
9058 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9059
9060         PR c/28800
9061         * c-parser.c (c_parser_translation_unit): Warn for empty
9062         translation unit, not empty source file.
9063
9064 2008-02-26  Paul Brook  <paul@codesourcery.com>
9065
9066         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9067         operand for Thumb-2.
9068         * config/arm/arm.h (reg_class): Add CORE_REGS.
9069         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9070         (BASE_REG_CLASS): Use CORE_REGS.
9071         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9072         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9073         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9074         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9075         ARM_REGNO_OK_FOR_INDEX_P.
9076         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9077         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9078         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9079         (ldm/stm peepholes): Ditto.
9080         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9081         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9082         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9083         * config/arm/constraints.md: Enable "k" constraint on ARM.
9084
9085 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9086
9087         * config/rs6000/rs6000.c: Annotate cache line size field in all
9088         instances of struct processor_costs.
9089
9090 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9091
9092         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9093         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9094         jump_bypass): New counters.
9095         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9096         * dce.c (gate_ud_dce): Same.
9097         (gate_fast_dce): Same.
9098         * dse.c (gate_dse1): New function.
9099         (gate_dse2): New function.
9100         (gate_dse): Merge results of new gate functions.
9101         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9102         (gate_handle_jump_bypass): Add dbg_cnt.
9103         (gate_handle_gcse): Add dbg_cnt.
9104         * ifcvt.c (gate_handle_if_conversion): Same.
9105         (gate_handle_if_after_combine): Same.
9106         (gate_handle_if_after_reload): Same.
9107         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9108
9109 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9110
9111         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9112         line sizes.
9113         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9114
9115 2008-02-26  Jason Merrill  <jason@redhat.com>
9116
9117         PR c++/35315
9118         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9119         alone if it's the naming decl for the type's main variant.
9120
9121 2008-02-26  Tom Tromey  <tromey@redhat.com>
9122
9123         * system.h (USE_MAPPED_LOCATION): Poison.
9124         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9125         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9126         (make_goto_expr_edges): Likewise.
9127         (remove_bb): Likewise.
9128         (execute_warn_function_return): Likewise.
9129         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9130         location_t.
9131         * c-common.c (fname_decl): Remove old location code.
9132         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9133         location code.
9134         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9135         variant.
9136         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9137         (gen_rtx_ASM_INPUT): Likewise.
9138         (gen_rtx_ASM_INPUT_loc): Likewise.
9139         (get_rtx_asm_OPERANDS): Remove.
9140         * cfglayout.c (insn_locators_alloc): Remove old location code.
9141         (set_curr_insn_source_location): Likewise.
9142         (curr_insn_locator): Likewise.
9143         * print-tree.c (print_node): Remove old location code.
9144         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9145         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9146         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9147         location_from_locus.
9148         (construct_exit_block): Remove old location code.
9149         * emit-rtl.c (force_next_line_note): Remove old location code.
9150         * profile.c (branch_prob): Remove old location code.
9151         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9152         LOC_LINE): Remove old-location variants.
9153         * langhooks.c (lhd_print_error_function): Remove old location
9154         code.
9155         * configure, config.in: Rebuilt.
9156         * configure.ac (--enable-mapped-location): Remove.
9157         * c-decl.c (c_init_decl_processing): Remove old location code.
9158         (finish_function): Likewise.
9159         * recog.c (decode_asm_operands): Remove old location code.
9160         * c-pch.c (c_common_read_pch): Remove old location code.
9161         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9162         variants.
9163         * gimple-low.c (lower_function_body): Remove old location code.
9164         * toplev.c (unknown_location): Remove.
9165         (push_srcloc): Remove old-location variant.
9166         (process_options): Remove old location code.
9167         (lang_dependent_init): Likewise.
9168         * input.h (UNKNOWN_LOCATION): Move definition.
9169         (location_t): Undeprecate.
9170         (source_locus): Remove.
9171         (location_from_locus): Remove.
9172         (struct location_s): Remove.
9173         Remove all old-location code.
9174         (input_line, input_filename): Remove.
9175         * final.c (final_scan_insn): Remove old location code.
9176         * diagnostic.c (diagnostic_build_prefix): Remove
9177         USE_MAPPED_LOCATION test.
9178         * tree.h (gimple_stmt) <locus>: Now a location_t.
9179         (tree_exp) <locus>: Likewise.
9180         (DECL_IS_BUILTIN): Remove old-location variant.
9181         (annotate_with_file_line, annotate_with_locus): Likewise.
9182         (expr_locus, set_expr_locus): Update.
9183         * tree.c (build1_stat): Remove old location code.
9184         (last_annotated_node): Remove.
9185         (annotate_with_file_line): Remove old-location variant.
9186         (annotate_with_locus): Likewise.
9187         (expr_location): Remove old location code.
9188         (set_expr_location): Likewise.
9189         (expr_has_location): Likewise.
9190         (expr_locus): Likewise.
9191         (set_expr_locus): Likewise.
9192         (expr_filename): Don't use location_from_locus.
9193         (expr_lineno): Likewise.
9194         * rtl-error.c (location_for_asm): Remove old location code.
9195         * c-lex.c (cb_line_change): Remove old location code.
9196         (fe_file_change): Likewise.
9197         (cb_def_pragma): Likewise.
9198         (c_lex_with_flags): Likewise.
9199         * gengtype.c (do_typedef): Don't special-case location types.
9200         (define_location_structures): Remove.
9201         (main): Don't call define_location_structures.
9202         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9203         code.
9204
9205 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9206
9207         PR 26264
9208         * builtins.def (BUILT_IN_STDARG_START): Remove.
9209         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9210         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9211         * tree-inline.c (inline_forbidden_p_1): Likewise.
9212         
9213 2008-02-26  Richard Guenther  <rguenther@suse.de>
9214
9215         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9216         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9217         (lookup_decl_from_uid): Declare.
9218         (remove_decl_from_map): Likewise.
9219         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9220         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9221         (decl_for_uid_map): New global hashtable mapping DECL_UID
9222         to the decl tree.
9223         (init_ttree): Allocate it.
9224         (insert_decl_to_uid_decl_map): New helper function.
9225         (make_node_stat): Insert new decls into the map.
9226         (copy_node_stat): Likewise.
9227         (lookup_decl_from_uid): New function.
9228         (remove_decl_from_map): Likewise.
9229         (print_decl_for_uid_map_statistics): New helper.
9230         (dump_tree_statistics): Call it.
9231
9232         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9233         (referenced_var_iterator): Adjust.
9234         (FOR_EACH_REFERENCED_VAR): Adjust.
9235         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9236         (num_referenced_vars): Adjust.
9237         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9238         (first_referenced_var): Remove.
9239         (end_referenced_vars_p): Likewise.
9240         (next_referenced_var): Likewise.
9241         (referenced_var_iterator_set): New helper function.
9242         * tree-dfa.c (referenced_var_lookup): Adjust.
9243         (referenced_var_check_and_insert): Likewise.
9244         (remove_referenced_var): Likewise.
9245         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9246         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9247         (verify_call_clobbering): Likewise.
9248         (verify_memory_partitions): Likewise.
9249         (init_tree_ssa): Allocate bitmap instead of hashtable for
9250         referenced_vars.
9251         (delete_tree_ssa): Adjust.
9252         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9253         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9254         (compute_tag_properties): Likewise.
9255         (set_initial_properties): Likewise.
9256         (find_partition_for): Likewise.
9257         (update_reference_counts): Likewise.
9258         (dump_may_aliases_for): Likewise.
9259         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9260         (add_call_clobber_ops): Likewise.
9261         (add_call_read_ops): Likewise.
9262         (get_asm_expr_operands): Likewise.
9263         * tree-into-ssa.c (dump_decl_set): Likewise.
9264         (update_ssa): Likewise.
9265         * tree-sra.c (scan_function): Likewise.
9266         (decide_instantiations): Likewise.
9267         (scalarize_parms): Likewise.
9268         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9269         (dsa_named_for): Likewise.
9270         * tree-ssa-structalias.c (update_alias_info): Likewise.
9271         (merge_smts_into): Likewise.
9272
9273 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9274
9275         PR 34351
9276         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9277         * c-opts.c (c_common_handle_option): Wall enables
9278         Wvolatile-register-var.
9279         * common.opt: Move Wvolatile-register-var to...
9280         * c.opt: ...here.
9281         
9282 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9283
9284         * common.opt (Wlarger-than=): New.
9285         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9286         -Wlarger-than=.
9287         * opts.c (common_handle_option): Handle -Wlarger-than=.
9288         * optc-gen.awk: Likewise.
9289         * opth-gen.awk: Likewise.
9290         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9291         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9292         
9293 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9294
9295         * c-common.c (match_case_to_enum_1): Add appropriate
9296         OPT_W* parameter to warning.
9297         (c_do_switch_warnings): Likewise.
9298         * c-typeck.c (warning_init): Add one more parameter following
9299         'warning' function.
9300         (push_init_level): Update call to warning_init.
9301         (pop_init_level): Likewise.
9302         (add_pending_init): Likewise.
9303         (output_init_element: Likewise.
9304
9305 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9306
9307         PR 28322
9308         * toplev.c (toplev_main): If there are warnings or error, print
9309         errors for ignored options.
9310         * opts.c (ignored_options): New static variable.
9311         (postpone_unknown_option_error): New.
9312         (print_ignored_options): New.
9313         (handle_option): Postpone errors for unknown -Wno-* options.
9314         * opts.h (print_ignored_options): Declare.
9315         
9316 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9317
9318         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9319         to "ghost".
9320
9321 2008-02-25  Richard Guenther  <rguenther@suse.de>
9322
9323         Revert:
9324         2008-02-25  Richard Guenther  <rguenther@suse.de>
9325
9326         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9327         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9328         (lookup_decl_from_uid): Declare.
9329         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9330         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9331         (decl_for_uid_map): New global hashtable mapping DECL_UID
9332         to the decl tree.
9333         (init_ttree): Allocate it.
9334         (insert_decl_to_uid_decl_map): New helper function.
9335         (make_node_stat): Insert new decls into the map.
9336         (copy_node_stat): Likewise.
9337         (lookup_decl_from_uid): New function.
9338         (print_decl_for_uid_map_statistics): New helper.
9339         (dump_tree_statistics): Call it.
9340
9341         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9342         (referenced_var_iterator): Adjust.
9343         (FOR_EACH_REFERENCED_VAR): Adjust.
9344         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9345         (num_referenced_vars): Adjust.
9346         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9347         (first_referenced_var): Remove.
9348         (end_referenced_vars_p): Likewise.
9349         (next_referenced_var): Likewise.
9350         (referenced_var_iterator_set): New helper function.
9351         * tree-dfa.c (referenced_var_lookup): Adjust.
9352         (referenced_var_check_and_insert): Likewise.
9353         (remove_referenced_var): Likewise.
9354         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9355         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9356         (verify_call_clobbering): Likewise.
9357         (verify_memory_partitions): Likewise.
9358         (init_tree_ssa): Allocate bitmap instead of hashtable for
9359         referenced_vars.
9360         (delete_tree_ssa): Adjust.
9361         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9362         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9363         (compute_tag_properties): Likewise.
9364         (set_initial_properties): Likewise.
9365         (find_partition_for): Likewise.
9366         (update_reference_counts): Likewise.
9367         (dump_may_aliases_for): Likewise.
9368         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9369         (add_call_clobber_ops): Likewise.
9370         (add_call_read_ops): Likewise.
9371         (get_asm_expr_operands): Likewise.
9372         * tree-into-ssa.c (dump_decl_set): Likewise.
9373         (update_ssa): Likewise.
9374         * tree-sra.c (scan_function): Likewise.
9375         (decide_instantiations): Likewise.
9376         (scalarize_parms): Likewise.
9377         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9378         (dsa_named_for): Likewise.
9379         * tree-ssa-structalias.c (update_alias_info): Likewise.
9380         (merge_smts_into): Likewise.
9381
9382 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9383
9384         PR fortran/29549
9385         * doc/invoke.texi (-fcx-limited-range): Document new option.
9386         * toplev.c (process_options): Handle -fcx-fortran-rules.
9387         * common.opt: Add documentation for -fcx-fortran-rules.
9388
9389 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9390
9391         PR c/35162
9392         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9393         actual behaviour and C99.
9394         
9395 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9396
9397         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9398         (ASM_CPU_POWER6_SPEC): Likewise.
9399         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9400         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9401         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9402
9403 2008-02-25  Richard Guenther  <rguenther@suse.de>
9404
9405         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9406         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9407         (lookup_decl_from_uid): Declare.
9408         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9409         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9410         (decl_for_uid_map): New global hashtable mapping DECL_UID
9411         to the decl tree.
9412         (init_ttree): Allocate it.
9413         (insert_decl_to_uid_decl_map): New helper function.
9414         (make_node_stat): Insert new decls into the map.
9415         (copy_node_stat): Likewise.
9416         (lookup_decl_from_uid): New function.
9417         (print_decl_for_uid_map_statistics): New helper.
9418         (dump_tree_statistics): Call it.
9419
9420         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9421         (referenced_var_iterator): Adjust.
9422         (FOR_EACH_REFERENCED_VAR): Adjust.
9423         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9424         (num_referenced_vars): Adjust.
9425         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9426         (first_referenced_var): Remove.
9427         (end_referenced_vars_p): Likewise.
9428         (next_referenced_var): Likewise.
9429         (referenced_var_iterator_set): New helper function.
9430         * tree-dfa.c (referenced_var_lookup): Adjust.
9431         (referenced_var_check_and_insert): Likewise.
9432         (remove_referenced_var): Likewise.
9433         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9434         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9435         (verify_call_clobbering): Likewise.
9436         (verify_memory_partitions): Likewise.
9437         (init_tree_ssa): Allocate bitmap instead of hashtable for
9438         referenced_vars.
9439         (delete_tree_ssa): Adjust.
9440         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9441         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9442         (compute_tag_properties): Likewise.
9443         (set_initial_properties): Likewise.
9444         (find_partition_for): Likewise.
9445         (update_reference_counts): Likewise.
9446         (dump_may_aliases_for): Likewise.
9447         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9448         (add_call_clobber_ops): Likewise.
9449         (add_call_read_ops): Likewise.
9450         (get_asm_expr_operands): Likewise.
9451         * tree-into-ssa.c (dump_decl_set): Likewise.
9452         (update_ssa): Likewise.
9453         * tree-sra.c (scan_function): Likewise.
9454         (decide_instantiations): Likewise.
9455         (scalarize_parms): Likewise.
9456         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9457         (dsa_named_for): Likewise.
9458         * tree-ssa-structalias.c (update_alias_info): Likewise.
9459         (merge_smts_into): Likewise.
9460
9461 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9462
9463         PR target/35258
9464         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9465         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9466         * alias.h (nonoverlapping_memrefs_p): Likewise.
9467
9468 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9469
9470         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9471         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9472         __emultls_get_address, __emultls_register_common,
9473         __floatundi?f, and _Unwind_GetIPInfo.
9474         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9475         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9476         (gen_regparm_prefix): Likewise.
9477         (i386_nlm_encode_section_info): Sync with
9478         config/i386/winnt.c:i386_pe_encode_section_info().
9479         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9480         i386_nlm_mangle_decl_assembler_name): New.
9481         (netware_override_options): New.
9482         * config/i386/netware.h (netware_override_options): Declare.
9483         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9484         (i386_nlm_mangle_decl_assembler_name): Declare.
9485         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9486
9487 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9488
9489         PR other/32948
9490         * c-decl.c (grokdeclarator): Remove unused local variables
9491         `typedef_type' and `type_as_written'.
9492         * bb-reorder.c
9493         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9494         unused local variable `has_hot_blocks'.
9495         (fix_crossing_conditional_branches): Remove unused local variable
9496         `prev_bb'.
9497         
9498 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9499
9500         PR middle-end/19984
9501         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9502         using DEF_C99_BUILTIN.
9503         (BUILT_IN_NANF): Ditto.
9504         (BUILT_IN_NANL): Ditto.
9505
9506 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9507             Revital Eres  <eres@il.ibm.com>
9508
9509         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9510         regarding the order of two dependent insns in the same row.
9511
9512 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9513
9514         * stor-layout.c (layout_decl): Do not bump the alignment of a
9515         bit-field to more than byte alignment if it is packed.
9516
9517 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9518
9519         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9520         e300c2 and e300c3.
9521
9522 2008-02-24  Diego Novillo  <dnovillo@google.com>
9523
9524         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9525
9526         PR 33738
9527         * tree-vrp.c (vrp_evaluate_conditional): With
9528         -Wtype-limits, emit a warning when comparing against a
9529         constant outside the natural range of OP0's type.
9530         * c.opt (Wtype-limits): Move ...
9531         * common.opt (Wtype-limits): ... here.
9532
9533 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9534
9535         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9536         * config/rs6000/e300c2c3.md: New file.
9537         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9538         e300c2 and e300c3.
9539         (rs6000_override_options): Add e300c2 and e300c3 cases to
9540         processor_target_table. Do not allow usage of Altivec or Spe
9541         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9542         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9543         * config/rs6000/rs6000.h (processor_type): Add
9544         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9545         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9546         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9547         and ppce300c3. Include e300c2c3.md.
9548
9549 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9550
9551         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9552         instead of TARGET_STRICT_ALIGN.
9553
9554 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9555
9556         * explow.c (memory_address): Assert that the generated address is
9557         valid.
9558
9559 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9560
9561         PR target/25477
9562         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9563         * config/darwin-ppc-ldouble-patch.def: New file.
9564         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9565         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9566         SUBTARGET_INIT_BUILTINS if defined.
9567         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9568         New functions.
9569
9570 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9571
9572         PR rtl-opt/33512
9573         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9574         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9575
9576 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9577
9578         PR pch/35027
9579         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9580         file" warning condtional on -Winvalid-PCH.
9581
9582 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9583
9584         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9585
9586 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9587
9588         PR target/22076
9589         PR target/34256 
9590         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9591         prevent reload from using MMX registers.
9592         (*mov<mode>_internal): Ditto.
9593         (*movv2sf_internal_rex64): Ditto.
9594         (*movv2sf_internal): Ditto.
9595
9596 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9597
9598         PR documentation/31569
9599         * doc/install.texi2html: Use makeinfo --no-number-sections.
9600
9601 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9602
9603         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9604         ensure that we can address an entire entity > 8 bytes.  Don't
9605         generate reg+reg addressing for such data.
9606
9607 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9608
9609         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9610         strings when optimizing for size, unless the target cares about
9611         alignment.
9612
9613 2008-02-22  Tom Tromey  <tromey@redhat.com>
9614
9615         * regclass.c (current_pass): Remove declaration.
9616
9617 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9618
9619         * config/avr/libgcc.S (__RAMPZ__): Define.
9620         (__do_copy_data): Add for devices with 128KB code memory.
9621
9622 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9623
9624         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9625         Use spe_abi.
9626         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9627
9628 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9629
9630         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9631         GENNONACR_REGS.
9632
9633 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9634
9635         PR c/19999
9636         * c-typeck.c (build_binary_op): Warn about floating point
9637         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9638
9639 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9640
9641         PR target/34526
9642         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9643         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9644         add vrsave.
9645         (rs6000_override_options): Set altivec_abi as default, not override,
9646         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9647         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9648         is used; use new member spe_abi.
9649         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9650         spe_abi and altivec_abi.
9651
9652 2008-02-22  Tomas Bily  <tbily@suse.cz>
9653
9654         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9655
9656 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9657
9658         PR bootstrap/35273
9659         * config.build (build_file_translate): Set to `CMD //c' only if
9660         it works.
9661         * Makefile.in (build_file_translate): Improve comment.
9662
9663 2008-02-21  Jan Hubicka  <jh@suse.cz>
9664
9665         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9666         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9667         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9668
9669 2008-02-21  Michael Matz  <matz@suse.de>
9670
9671         PR target/35264
9672         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9673
9674 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9675
9676         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9677         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9678         as insn constraint.
9679         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9680         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9681         SSE_VEC_FLOAT_MODE_P as insn constraint.
9682         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9683         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9684         sse4a_movntdf using MODEF mode iterator.
9685         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9686         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9687         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9688         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9689         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9690         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9691         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9692
9693 2008-02-21  Richard Guenther  <rguenther@suse.de>
9694
9695         * tree.def (PAREN_EXPR): New tree code.
9696         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9697         and PAREN_EXPR.
9698         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9699         * expr.c (expand_expr_real_1): Likewise.
9700         * tree-inline.c (estimate_num_insns_1): Likewise.
9701         * tree-complex.c (expand_complex_move): Likewise.
9702         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9703         as plain x.
9704
9705 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9706
9707         PR target/35225
9708         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9709
9710 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9711
9712         PR target/35190
9713         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9714
9715         * config/sh/sh.c (find_barrier): Don't go past
9716         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9717
9718 2008-02-20  DJ Delorie  <dj@redhat.com>
9719
9720         * config/h8300/h8300.md (insv): Force source operand to be a register.
9721
9722         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9723         as a jump, not as a plain insn.
9724         
9725 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9726
9727         * doc/invoke.texi (Warning Options): Add new option
9728         -Wframe-larger-than=.
9729         (-Wframe-larger-than): Document.
9730
9731         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9732         Add declarations for new option variables.
9733
9734         * final.c (final_start_function): Check the frame size
9735         before emission and issue a Wframe-larger-than warning.
9736
9737         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9738         Add definitions for new option variables.
9739         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9740
9741         * common.opt (Wframe-larger-than=): New option.
9742
9743 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9744
9745         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9746         (<sse>_div<mode>3): Ditto.
9747         (<sse>_vmdiv<mode>3): Ditto.
9748         (<sse>_vmsqrt<mode>2): Ditto.
9749         (*smax<mode>3): Ditto.
9750         (sse5_frcz<mode>2): Ditto.
9751         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9752         as insn constraint.
9753
9754 2008-02-20  Richard Guenther  <rguenther@suse.de>
9755
9756         PR middle-end/35265
9757         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9758         be happy with INTEGRAL_TYPE_P.
9759
9760 2008-02-20  Richard Guenther  <rguenther@suse.de>
9761
9762         * fold-const.c (split_tree): Associate floatig-point expressions
9763         if flag_associative_math is set.
9764
9765 2008-02-20  Richard Guenther  <rguenther@suse.de>
9766
9767         * tree.h (fold_real_zero_addition_p): Declare.
9768         * fold-const.c (fold_real_zero_addition_p): Export.
9769         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9770         floating-point operations with zero and one.
9771
9772 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9773
9774         * doc/install.texi: Correct references to CFLAGS, replacing them
9775         with BOOT_CFLAGS.  Document flags used during bootstrap for
9776         target libraries.
9777                                 
9778 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9779
9780         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9781         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9782         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9783         insn constraint.
9784         (smin<mode>3): Ditto from similar patterns.
9785         (smax<mode>3): Ditto.
9786         (*ieee_smin<mode>3): Ditto.
9787         (*ieee_smax<mode>3): Ditto.
9788         * config/i386/sse.md (sse): New mode attribute.
9789         (mov<mode>): Macroize expander from movv4sf and movv2df using
9790         SSEMODEF2P mode iterator.
9791         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9792         SSE_VEC_FLOAT_MODE_P as insn constraint.
9793         (storent<mode>): Ditto.
9794         (storent<mode>): Macroize expander from storentsf and storentdf using
9795         MODEF mode iterator.
9796         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9797         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9798         (abs<mode>2): Ditto from similar patterns.
9799         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9800         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9801         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9802         (<sse>_vmsqrt<mode>2): Ditto.
9803         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9804         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9805         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9806         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9807         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9808         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9809         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9810         insn constraint.
9811         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9812         iterator and SSE_FLOAT_MODE_P as insn constraint.
9813         (<sse>_ucomi): Ditto from similar patterns.
9814         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9815         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9816         SSE_VEC_FLOAT_MODE_P as insn constraint.
9817         (vcond<mode>): Ditto from similar patterns.
9818         (and<mode>3, *and<mode>3): Ditto.
9819         (<sse>_nand<mode>3): Ditto.
9820         (ior<mode>3, *ior<mode>3): Ditto.
9821         (xor<mode>3, *xor<mode>3): Ditto.
9822         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9823         iterator and SSE_FLOAT_MODE_P as insn constraint.
9824         (*nand<mode>3): Ditto from similar patterns.
9825         (*ior<mode>3): Ditto.
9826         (*xor<mode>3): Ditto.
9827
9828 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9829
9830         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9831         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9832         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9833
9834 2008-02-19  Jan Hubicka  <jh@suse.cz>
9835
9836         * predict.c (tree_bb_level_predictions): Remove variable next
9837         mistakely introduced by previous commit.
9838
9839 2008-02-19  Jan Hubicka  <jh@suse.cz>
9840
9841         * predict.c (predict_paths_leading_to): Rewrite.
9842         (predict_paths_for_bb): New.
9843         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9844
9845 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9846
9847         PR bootstrap/35218
9848         * Makefile.in (build_file_translate): New.
9849         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9850         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9851         * configure.ac (build_file_translate): Substitute it.
9852         * configure: Regenerate.
9853
9854 2008-02-19  Jan Hubicka  <jh@suse.cz>
9855
9856         PR rtl-optimization/34408
9857         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9858         invalid sharing.
9859
9860 2008-02-19  Jan Hubicka  <jh@suse.cz>
9861
9862         PR middle-end/28779
9863         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9864         call_expr.
9865
9866 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9867
9868         PR Ada/35186
9869         * config/i386/i386-modes.def: Revert the last DI alignment
9870         change until Ada people can look into it.
9871
9872 2008-02-19  Nick Clifton  <nickc@redhat.com>
9873
9874         * opts.c (print_specific_help): Fix typo in --help text.
9875
9876 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9877
9878         PR target/35239
9879         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9880         32-bit inline asm without asm alternatives for host GCC < 3.0.
9881
9882 2008-02-19  Richard Guenther  <rguenther@suse.de>
9883
9884         PR tree-optimization/34989
9885         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9886         Allow propagation to INDIRECT_REF if we can simplify only.
9887
9888 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9889
9890         * c-common.c (warn_for_collisions_1): Use appropriate option when
9891         warning.
9892
9893 2008-02-19  Nick Clifton  <nickc@redhat.com>
9894
9895         PR other/31349
9896         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9897         (handle_options): Fix indentation.
9898         (print_filtered_help): If no language-specific options were
9899         displayed tell the user how to list all the options supported by
9900         the language's front-end.
9901         (print_specific_help): Fix indentation and remove duplicate line.
9902         (common_handle_option): Handle the -v option.
9903         For --help enable the display of undocumented options if the -v
9904         switch has been included on the command line.
9905         For --help= check for overlaps in the arguments between the option
9906         classes and the language names and issue a warning when they
9907         cannot be disambiguated.
9908         * c.opt (v): Pass on to the common option handler.
9909
9910 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9911
9912         * modulo-sched.c (sms_schedule): Change dump message when
9913         create_ddg function fails.
9914         (try_scheduling_node_in_cycle): Rename row to cycle.
9915         (print_partial_schedule): Rename CYCLE to ROW.
9916
9917 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9918             Zdenek Dvorak  <ook@ucw.cz>
9919
9920         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9921
9922 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9923
9924         PR target/33555
9925         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9926         (*x86_movdicc_0_m1_se): Ditto.
9927
9928 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9929
9930         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9931         (CMPtype): Define as __gcc_CMPtype.
9932         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9933         (CMPtype): Define as __gcc_CMPtype.
9934
9935 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9936
9937         Support valgrind 3.3 for --enable-checking=valgrind.
9938         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9939         here.
9940         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9941         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9942         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9943         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9944         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9945         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9946         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9947         respectively.
9948         * ggc-zone.c: Similar.
9949         * ggc-page.c: Similar.
9950
9951 2008-02-19  Paul Brook  <paul@codesourcery.com>
9952
9953         PR target/35071
9954         * config/arm/ieee754-df.S: Fix do_it typo.
9955         * config/arm/ieee754-sf.S: Fix do_it typo.
9956
9957 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9958
9959         PR target/35189
9960         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9961         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9962         (OPTION_MASK_ISA_SSE_SET): Likewise.
9963         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9964         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9965         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9966         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9967         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9968         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9969         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9970         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9971         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9972         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9973         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9974         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9975         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9976         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9977         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9978         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9979         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9980         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9981         (OPTION_MASK_ISA_SSE4): Removed.
9982         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9983         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9984         (override_options): Don't turn on implied SSE/MMX bits in
9985         ix86_isa_flags.
9986
9987 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9988
9989         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9990         32bit host.
9991
9992 2008-02-18  Joey Ye  <joey.ye@intel.com>
9993
9994         PR middle-end/34921
9995         * tree-nested.c (insert_field_into_struct): Set type alignment
9996         to field alignment if the former is less than the latter.
9997
9998 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9999
10000         * BASE-VER: Set to 4.4.0.
10001
10002 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10003
10004         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10005         * doc/cfg.texi: Likewise.
10006         * doc/extend.texi: Likewise.
10007         * doc/gty.texi: Likewise.
10008         * doc/invoke.texi: Likewise.
10009         * doc/loop.texi: Likewise.
10010         * doc/md.texi: Likewise.
10011         * doc/passes.texi: Likewise.
10012         * doc/rtl.texi: Likewise.
10013         * doc/sourcebuild.texi: Likewise.
10014         * doc/tm.texi: Likewise.
10015         * doc/tree-ssa.texi: Likewise.
10016
10017 2008-02-17  Richard Guenther  <rguenther@suse.de>
10018
10019         PR middle-end/35227
10020         * tree-complex.c (init_parameter_lattice_values): Handle parameters
10021         without default definition.
10022
10023 2008-02-17  Richard Guenther  <rguenther@suse.de>
10024
10025         PR tree-optimization/35231
10026         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10027         if A | B != 1.
10028
10029 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
10030
10031         Revert:
10032         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
10033         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10034         libgcc_cmp_return mode.
10035
10036 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10037
10038         PR c/28368
10039         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10040
10041 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
10042
10043         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10044         multilibs.
10045
10046 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10047
10048         * doc/c-tree.texi: Use `@.' where appropriate.
10049         * doc/extend.texi: Likewise.
10050         * doc/install.texi: Likewise.
10051         * doc/invoke.texi: Likewise.
10052         * doc/loop.texi: Likewise.
10053         * doc/makefile.texi: Likewise.
10054         * doc/md.texi: Likewise.
10055         * doc/passes.texi: Likewise.
10056         * doc/standards.texi: Likewise.
10057         * doc/tm.texi: Likewise.
10058
10059 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10060
10061         PR middle-end/35196
10062         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10063         in entry_bb.
10064         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10065         rather than in entry_bb.
10066
10067 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10068
10069         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10070         libgcc_cmp_return mode.
10071
10072 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10073
10074         PR middle-end/35130
10075         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10076         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10077
10078 2008-02-15  Richard Guenther  <rguenther@suse.de>
10079             Zdenek Dvorak  <ook@ucw.cz>
10080
10081         PR tree-optimization/35164
10082         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10083         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10084         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10085         Only propagate addresses which do not have abnormal SSA_NAMEs
10086         in their operands.
10087
10088 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10089
10090         PR target/35088
10091         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10092
10093 2008-02-15  Jan Hubicka  <jh@suse.cz>
10094
10095         PR middle-end/35149
10096         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10097
10098 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10099
10100         PR middle-end/34621
10101         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10102         when calculating alignment_pad.
10103
10104 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10105
10106         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10107         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10108         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10109         and STACK_BOUNDARY define.
10110
10111 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10112
10113         PR preprocessor/35061
10114         * c-pragma.c (handle_pragma_pop_macro): Check that
10115         pushed_macro_table has been allocated.
10116
10117 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10118
10119         PR middle-end/35136
10120         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10121         (force_gimple_operand): Likewise.
10122         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10123         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10124         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10125         (find_interesting_uses_address): Check addressability and alignment
10126         of the base expression only after substituting bases of IVs into it.
10127
10128 2008-02-14  Michael Matz  <matz@suse.de>
10129
10130         PR target/34930
10131         * function.c (instantiate_virtual_regs_in_insn): Reload address
10132         before falling back to reloading the whole operand.
10133
10134 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10135
10136         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10137         before the first section switch note.
10138
10139 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10140
10141         * doc/bugreport.texi: Update copyright years.
10142         * doc/c-tree.texi: Likewise.
10143         * doc/cfg.texi: Likewise.
10144         * doc/cpp.texi: Likewise.
10145         * doc/cppinternals.texi: Likewise.
10146         * doc/fragments.texi: Likewise.
10147         * doc/frontends.texi: Likewise.
10148         * doc/gcc.texi: Likewise.
10149         * doc/gty.texi: Likewise.
10150         * doc/hostconfig.texi: Likewise.
10151         * doc/implement-c.texi: Likewise.
10152         * doc/libgcc.texi: Likewise.
10153         * doc/loop.texi: Likewise.
10154         * doc/makefile.texi: Likewise.
10155         * doc/options.texi: Likewise.
10156         * doc/passes.texi: Likewise.
10157         * doc/rtl.texi: Likewise.
10158         * doc/sourcebuild.texi: Likewise.
10159         * doc/standards.texi: Likewise.
10160         * doc/tree-ssa.texi: Likewise.
10161         * doc/trouble.texi: Likewise.
10162
10163         * doc/extend.texi: Use @: or add comma where appropriate.
10164         * doc/invoke.texi: Likewise.
10165         * doc/tm.texi: Likewise.
10166
10167 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10168
10169         PR target/34393
10170         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10171         to a reg.
10172
10173 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10174
10175         * doc/md.texi (clz, ctz): Add reference.
10176         * doc/rtl.texi (clz, ctz): Likewise.
10177
10178 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10179
10180         PR other/35148
10181         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10182         srcdir.
10183
10184 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10185
10186         * config/s390/s390.c (struct constant_pool): New field
10187         emit_pool_after added.
10188         (s390_mainpool_start): Set the emit_pool_after flag according
10189         to the section switch notes.
10190         (s390_mainpool_finish): Consider emit_pool_after when emitting
10191         the literal pool at the end of the function.
10192         (s390_chunkify_start): Force literal pool splits at section
10193         switch notes.
10194
10195 2008-02-13  Michael Matz  <matz@suse.de>
10196
10197         PR debug/35065
10198         * var-tracking.c (clobber_variable_part): Correctly traverse the
10199         list.
10200
10201 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10202
10203         PR 29673
10204         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10205         Add -fdump-ipa-inline.
10206         * tree-dump.c (dump_files): Remove tree-inlined dump.
10207         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10208         
10209 2008-02-12  Richard Guenther  <rguenther@suse.de>
10210
10211         PR tree-optimization/35171
10212         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10213         default defs.
10214
10215 2008-02-12  Richard Guenther  <rguenther@suse.de>
10216
10217         PR middle-end/35163
10218         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10219         value-preserving mode.  Disallow final truncation.
10220
10221 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10222
10223         PR middle-end/35136
10224         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10225         code from here to...
10226         (force_gimple_operand): ...here.
10227
10228 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10229
10230         PR c++/35144
10231         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10232         non-compatible pointers.
10233         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10234         different FIELD_DECLs, try harder by comparing field offsets, sizes
10235         and types.
10236
10237         PR inline-asm/35160
10238         * function.c (match_asm_constraints_1): Don't replace the same input
10239         multiple times.
10240
10241 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10242
10243         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10244         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10245         (expand_epilogue): Restore RAMPZ register.
10246         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10247
10248 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10249
10250         * config/i386/cygwin.asm: (__alloca): Correct calling
10251         convention and alignment.
10252         (__chkstk): Force 8 byte stack alignment.
10253
10254 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10255             Richard Guenther  <rguenther@suse.de>
10256
10257         PR tree-optimization/33992
10258         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10259         the zero we compare against.
10260
10261 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10262
10263         PR libfortran/35063
10264         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10265         to CloseHandle after unlocking to prevent accumulation of handle
10266         count.
10267
10268 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10269
10270         PR middle_end/34150
10271         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10272         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10273         and update LABEL_NUSES during and after reload.
10274
10275 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10276
10277         PR middle-end/34627
10278         * combine.c (simplify_if_then_else): Make sure the comparison is
10279         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10280
10281 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10282
10283         PR bootstrap/35051
10284         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10285         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10286         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10287         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10288         * tree.h (get_type_static_bounds): Likewise.
10289
10290 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10291
10292         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10293         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10294         Make -Wfoo language annotations match what the compiler outputs.
10295
10296 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10297
10298         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10299         intrinsics spu_convts, spu_convtu, spu_convtf.
10300
10301 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10302
10303         * doc/extend.texi (Function Attributes) <noinline>: Mention
10304         asm ("") as method to keep calls.
10305
10306 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10307
10308         PR other/32754
10309         * doc/options.texi (Options): Replace references to opts.sh with
10310         optc-gen.awk.
10311         * opts-common.c: Likewise.
10312         * optc-gen.awk: Likewise.
10313         
10314 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10315
10316         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10317
10318 2008-02-07  Richard Henderson  <rth@redhat.com>
10319
10320         PR rtl-opt/33410
10321         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10322         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10323         funny mode.
10324
10325 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10326
10327         PR tree-optimization/35085
10328         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10329         for operand entry oe2 in addition to operand entry oe3 in order to
10330         expose more opportunities for vectorizer sum reduction.
10331
10332 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10333
10334         PR other/35107
10335         * Makefile.in (LIBS): Remove $(GMPLIBS).
10336         (cc1-dummy, cc1): Add $(GMPLIBS).
10337
10338 2008-02-06  Jan Hubicka  <jh@suse.cz>
10339
10340         PR target/23322
10341         * i386.md (moddf_integer): Do not produce partial memory stalls for
10342         targets where it hurts.
10343
10344 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10345
10346         PR target/35083
10347         * optabs.c (expand_float): Do not check for decimal modes when
10348         expanding unsigned integer through signed conversion.
10349
10350 2008-02-06  Nick Clifton  <nickc@redhat.com>
10351
10352         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10353         inside the clobber with a match_operand and duplicated operand
10354         number in the constraint.
10355         (ineqbranchsi): Delete redundant comment.
10356
10357 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10358
10359         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10360         builtin_define ("__USE_INIT_FINI__").
10361         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10362         -msx multilibs.
10363         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10364
10365 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10366
10367         PR documentation/30330
10368         * doc/invoke.texi (C++ Dialect Options)
10369         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10370         For each warning option -Wfoo that allows -Wno-foo, ensure both
10371         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10372         entry of -Wswitch-default, index -Wnormalized= including the
10373         `=', and -Wlarger-than-@var{len} including @var{len}.
10374
10375 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10376
10377         * config/i386/i386.md (floatunssisf2): Use
10378         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10379         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10380         Macroize expander using MODEF mode iterator.
10381
10382 2008-02-05  Diego Novillo  <dnovillo@google.com>
10383
10384         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10385
10386         PR 33738
10387         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10388
10389 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10390
10391         PR other/35070
10392         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10393
10394 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10395
10396         PR target/35084
10397         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10398         to indicate if a message should be generated.
10399         (init_cumulative_args): Updated.
10400         (function_value_32): Likewise.
10401
10402 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10403
10404         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10405
10406 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10407
10408         PR target/35083
10409         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10410         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10411
10412 2008-02-04  Diego Novillo  <dnovillo@google.com>
10413
10414         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10415
10416         PR 33738
10417         * tree-vrp.c (vrp_evaluate_conditional): With
10418         -Wtype-limits, emit a warning when comparing against a
10419         constant outside the natural range of OP0's type.
10420
10421 2008-02-04  Richard Guenther  <rguenther@suse.de>
10422
10423         PR middle-end/33631
10424         * expr.c (count_type_elements): Give for unions instead of
10425         guessing.
10426
10427 2008-02-04  Richard Guenther  <rguenther@suse.de>
10428
10429         PR middle-end/35043
10430         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10431         to TYPE_DOMAINs base type instead of using bitsizetype here.
10432
10433 2008-02-03  Jason Merrill  <jason@redhat.com>
10434
10435         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10436
10437 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10438
10439         PR other/29972
10440         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10441         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10442         (RS/6000 and PowerPC Options): Fix typos and markup.
10443         * doc/passes.texi (Tree-SSA passes): Likewise.
10444
10445 2008-02-02  Michael Matz  <matz@suse.de>
10446
10447         PR target/35045
10448         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10449         from record_last_reg_set_info.
10450         (record_last_reg_set_info): Take an RTX argument, iterate over all
10451         constituent hardregs.
10452         (record_last_set_info, record_opr_changes): Change calls to
10453         new signature or to record_last_reg_set_info_regno.
10454
10455 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10456
10457         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10458
10459 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10460
10461         PR rtl-optimization/34773
10462         * reg-notes.def (EQUAL): Mention significance of combination of
10463         REG_EQUAL and REG_RETVAL.
10464         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10465         insn that has a REG_RETVAL.
10466
10467 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10468
10469         PR bootstrap/33781
10470         * configure.ac (--enable-fixed-point): Disable unless explicitly
10471         requested on IRIX.
10472         * configure: Regenerate.
10473
10474 2008-02-01  Richard Guenther  <rguenther@suse.de>
10475
10476         PR other/35042
10477         * invoke.texi (-finline-limit): Remove no longer true parts
10478         of the documentation.  Note that there is no default value.
10479
10480 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10481             Mark Mitchell  <mark@codesourcery.com>
10482             Ben Elliston  <bje@au.ibm.com>
10483
10484         PR c/29326
10485         * doc/extend.texi (Other Builtins): Document.
10486
10487 2008-01-31  Tom Browder <tom.browder@gmail.com>
10488
10489         * doc/c-tree.texi (Types): Fix grammar.
10490         (Expression trees): Ditto.
10491         * doc/passes.texi (Tree-SSA passes): Ditto.
10492         
10493         * doc/configterms.texi (Configure Terms): Fix typo.
10494         * doc/cpp.texi (Common Predefined Macros): Ditto.
10495         * doc/md.texi (Machine Constraints): Ditto.
10496         
10497         * doc/makefile.texi (Makefile): Add comma.
10498
10499 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10500             Gerald Pfeifer  <gerald@pfeifer.com>
10501         
10502         * doc/sourcebuild.texi (Front End): Remove references to CVS
10503         and CVSROOT/modules.
10504         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10505         (Back End): Remove reference to CVS.
10506
10507 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10508
10509         PR target/34900
10510         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10511         comment from...
10512         (mips16_gp_pseudo_reg): ...here.
10513         * config/mips/mips.md (load_const_gp): Replace with...
10514         (load_const_gp_<mode>): ...this :P-based insn.
10515
10516 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10517
10518         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10519         options. Minor fixes.
10520         (-std): Move reference to standards closer to where language
10521         standards are first mentioned.
10522         
10523 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10524
10525         PR rtl-optimization/34995
10526         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10527         parameter and return a bool.  If the rtx parameter is nonnull,
10528         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10529         (find_reloads): Update call accordingly.  Pass the new operand
10530         if it needed no address reloads, otherwise pass null.
10531
10532 2008-01-30  Richard Henderson  <rth@redhat.com>
10533
10534         PR c/34993
10535         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10536         for unbounded arrays.
10537
10538 2008-01-30  Silvius Rus  <rus@google.com>
10539
10540         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10541
10542 2008-01-30  Jan Hubicka  <jh@suse.cz>
10543
10544         PR target/34982
10545         * i386.c (init_cumulative_args): Use real function declaration when
10546         calling locally.
10547
10548 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10549
10550         PR rtl-optimization/34998
10551         * global.c (build_insn_chain): Treat non-subreg_lowpart
10552         SUBREGs of pseudos as clobbering all the words covered by the
10553         SUBREG, not just all the bytes.
10554         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10555         original df_ref rather than an extract parameter.
10556         (global_conflicts): Update call accordingly.
10557
10558 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10559
10560         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10561         the overflow check to make it easier to read.
10562         (__fixtfdi): Change the type of the ll member in union
10563         long_double to UDItype_x.
10564
10565 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10566
10567         PR middle-end/34969
10568         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10569         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10570         * tree-inline.c (fold_marked_statements): Call
10571         cgraph_update_edges_for_call_stmt if folding a call statement.
10572         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10573         debug_generic_stmt calls, reset it back afterwards.
10574
10575         PR c/35017
10576         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10577         static decls.
10578         * c-typeck.c (build_external_ref): Don't pedwarn about
10579         static vars in current function's scope.
10580
10581 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10582
10583         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10584
10585 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10586
10587         PR c/35002
10588         * ipa-struct-reorg.c: Fix spelling.
10589         * params.def: Ditto.
10590
10591 2008-01-29  Richard Guenther  <rguenther@suse.de>
10592
10593         PR middle-end/35006
10594         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10595         field.
10596         * tree-inline.c (remap_type): Increment remapping_type_depth
10597         around remapping types.
10598         (copy_body_r): Only add referenced variables if they are referenced
10599         from code, not types.
10600
10601 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10602
10603         PR c++/34055
10604         PR c++/34103
10605         PR c++/34219
10606         PR c++/34606
10607         PR c++/34753
10608         PR c++/34754
10609         PR c++/34755
10610         PR c++/34919
10611         PR c++/34961
10612         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10613         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10614
10615 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10616
10617         PR target/34412
10618         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10619         pointer for tiny stack.
10620
10621 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10622
10623         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10624
10625 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10626
10627         * config/vx-common.h: Fix typo in comment.
10628
10629 2008-01-28  Ian Lance Taylor  <iant@google.com>
10630
10631         PR c++/34862
10632         PR c++/33407
10633         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10634         coalesce pointers if they have different DECL_NO_TBAA_P values.
10635         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10636         between variables with different DECL_NO_TBAA_P values.
10637
10638 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10639
10640         PR 31535
10641         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10642         are not legitimate small data references on SPE targets.
10643
10644 2008-01-28  David Daney  <ddaney@avtrex.com>
10645
10646         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10647
10648 2008-01-28  David Daney  <ddaney@avtrex.com>
10649
10650         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10651
10652 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10653
10654         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10655         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10656         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10657         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10658         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10659         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10660         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10661         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10662
10663 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10664
10665         * basic-block.h (condjump_equiv_p): Fix comment.
10666
10667 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10668
10669         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10670         print_generic_stmt_indented): Fix comment.
10671
10672 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10673
10674         * configure.ac (__stack_chk_fail): Add detecion for availability
10675         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10676         * configure: Regenerate.
10677
10678 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10679
10680         PR middle-end/34688
10681         * final.c (output_addr_const): Handle TRUNCATE.
10682
10683 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10684
10685         PR target/34711
10686         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10687         (zero_cost, infinite_cost): New constants.
10688         (struct cost_pair): Change type of cost to comp_cost.
10689         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10690         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10691         New functions.
10692         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10693         split_address_cost, ptr_difference_cost, difference_cost,
10694         get_computation_cost_at, get_computation_cost,
10695         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10696         determine_use_iv_cost_condition, determine_use_iv_costs,
10697         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10698         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10699         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10700         Change type of cost to comp_cost.
10701         (determine_iv_cost): Increase cost of non-original ivs, instead
10702         of decreasing the cost of original ones.
10703         (get_address_cost): Indicate the complexity of the addressing mode 
10704         in comp_cost.
10705         (try_add_cand_for): Prefer using ivs not specific to some object.
10706         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10707
10708 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10709             Janis Johnson  <janis187@us.ibm.com>
10710
10711         PR target/34814
10712         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10713         (TARGET_INSTANTIATE_DECLS): Likewise.
10714         * target.h (expand_to_rtl_hook): New target hook.
10715         (instantiate_decls): Likewise.
10716         * function.c (instantiate_decl): Make non-static.  Rename to...
10717         (instantiate_decl_rtl): ... this.
10718         (instantiate_expr): Use instantiate_decl_rtl.
10719         (instantiate_decls_1): Likewise.
10720         (instantiate_decls): Likewise.
10721         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10722         * function.h (instantiate_decl_rtl): Add prototype.
10723         * cfgexpand.c (target.h): New include.
10724         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10725         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10726         (TARGET_INSTANTIATE_DECLS): Likewise.
10727         (TARGET_INITIALIZER): New target hooks added.
10728         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10729         New prototype.
10730         * config/rs6000/rs6000.c (tree-flow.h): New include.
10731         (machine_function): Add sdmode_stack_slot field.
10732         (rs6000_alloc_sdmode_stack_slot): New function.
10733         (rs6000_instantiate_decls): Likewise.
10734         (rs6000_secondary_memory_needed_rtx): Likewise.
10735         (rs6000_check_sdmode): Likewise.
10736         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10737         (TARGET_INSTANTIATE_DECLS): Likewise.
10738         (rs6000_hard_regno_mode_ok): Allow SDmode.
10739         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10740         (rs6000_emit_move): Handle SDmode.
10741         (function_arg_advance): Likewise.
10742         (function_arg): Likewise.
10743         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10744         SDmode var args for 32-bit compiles.
10745         (rs6000_secondary_reload_class): Handle SDmode.
10746         (rs6000_output_function_epilogue): Likewise.
10747         (rs6000_function_value): Simplify if statement.
10748         (rs6000_libcall_value): Likewise.
10749         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10750         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10751         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10752         (movsd_hardfloat): New define_insn.
10753         (movsd_softfloat): Likewise.
10754         (movsd_store): Likewise.
10755         (movsd_load): Likewise.
10756         (extendsddd2): Likewise.
10757         (extendsdtd2): Likewise.
10758         (truncddsd2): Likewise.
10759         (movdd_hardfloat64): Fixup comment.
10760         (UNSPEC_MOVSD_LOAD): New constant.
10761         (UNSPEC_MOVSD_STORE): Likewise.
10762
10763 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10764
10765         PR c++/34965
10766         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10767         TRUTH_XOR_EXPR.
10768         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10769         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10770         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10771         and TRUTH_XOR_EXPR.
10772
10773 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10774
10775         PR target/34794
10776         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10777         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10778         __LONGDOUBLE128 too.
10779         * config/rs6000/aix61.h: New file.
10780
10781 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10782
10783         PR rtl-optimization/34959
10784         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10785         popcount and parity rtxes the same mode as their operand.
10786         Truncate or extend the result to the return value's mode
10787         if necessary.
10788
10789 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10790
10791         PR target/34981
10792         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10793         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10794         to GOT_VERSION_REGNUM.
10795         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10796         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10797         * config/mips/mips.c (mips_emit_call_insn): New function.
10798         (mips_call_tls_get_addr): Call mips_expand_call directly.
10799         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10800         emit_call_insn.
10801         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10802         (mips_expand_call): Update the call to mips16_build_call_stub
10803         accordingly and a remove redundant condition.  Assert that MIPS16
10804         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10805         the call insn.
10806         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10807         TARGET_USE_GOT.
10808         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10809         (mips_avoid_hazard): Remove hazard_set handling.
10810         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10811         (UNSPEC_RESTORE_GP): ...this.
10812         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10813         (FAKE_CALL_REGNO): Rename to...
10814         (GOT_VERSION_REGNUM): ...this.
10815         (type): Add "ghost" value.  Add an associated insn reservation.
10816         (hazard_set): Remove.
10817         (exception_receiver): Rename to...
10818         (restore_gp): ...this and update the unspec identifier accordingly.
10819         (exception_receiver, nonlocal_got_receiver): New expanders.
10820         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10821         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10822         (set_got_version, update_got_version): New patterns.
10823
10824 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10825
10826         PR target/34970
10827         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10828
10829 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10830
10831         PR other/31955
10832         * doc/install.texi2html: Generate gcc-vers.texi.
10833
10834 2008-01-25  DJ Delorie  <dj@redhat.com>
10835
10836         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10837
10838 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10839
10840         * config/c4x: Remove directory.
10841         * config.gcc (crx-*, mt-*): Mark obsolete.
10842         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10843         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10844         sh-*-rtemscoff*): Remove cases.
10845         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10846         * real.c (encode_c4x_single, decode_c4x_single,
10847         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10848         c4x_extended_format): Remove.
10849         * real.h (c4x_single_format, c4x_extended_format): Remove.
10850         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10851         on C4x.
10852         (Pragmas): Remove comment about c4x pragmas.
10853         * doc/install.texi (c4x): Remove target-specific instructions.
10854         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10855         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10856         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10857         refer to C4x source files as examples.
10858         (C4X_FLOAT_FORMAT): Remove documentation.
10859
10860 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10861
10862         * config/bfin/bfin.c (override_options): Reorder tests so that
10863         flag_pic gets enabled for -msep-data.
10864
10865 2008-01-25  Richard Guenther  <rguenther@suse.de>
10866
10867         PR middle-end/32244
10868         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10869         to its bitfield precision if required.
10870
10871 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10872
10873         PR middle-end/33880
10874         * tree-nested.c (walk_omp_for): New function.
10875         (convert_nonlocal_reference, convert_local_reference): Call
10876         walk_omp_for on OMP_FOR.
10877         (convert_call_expr): Call walk_body on OMP_FOR's
10878         OMP_FOR_PRE_INIT_BODY.
10879
10880 2008-01-25  Richard Guenther  <rguenther@suse.de>
10881
10882         PR tree-optimization/34966
10883         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10884         default defs and PHI_NODEs we have to insert after the
10885         defining statement.
10886
10887 2008-01-24  Nick Clifton  <nickc@redhat.com>
10888
10889         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10890         Provide a default definition.
10891         (LIBGCC2_UNITS_PER_WORD): Likewise.
10892
10893         * config/stormy16/stormy16.c: Include df.h for the prototype
10894         for df_regs_ever_live_p.
10895         (xstormy16_expand_builtin_va_start): Convert the stack offset
10896         into a component_ref and then use POINTER_PLUS_EXPR to add it
10897         to the incoming_virtual_args_rtx.
10898         (xstormy16_gimplify_va_arg_expr): Rename to
10899         xstormy16_gimplify_va_arg_expr.
10900         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10901         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10902         xstormy16_gimplify_va_arg_expr.
10903         Fix up some formatting issues.
10904
10905         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10906         Move to predicates.md.
10907         (xs_hi_general_operand): Likewise.
10908         (xs_hi_nonmemory_operand): Likewise.
10909         * config/stormy16/predicates.md:
10910         (xstormy16_carry_plus_operand): New predicate.
10911         (xs_hi_general_operand): New predicate.
10912         (xs_hi_nonmemory_operand): New predicate.
10913         * config/stormy16/stormy16-protos.h:
10914         (xstormy16_carry_plus_operand): Delete prototype.
10915         (xs_hi_general_operand): Likewise.
10916         (xs_hi_nonmemory_operand): Likewise.
10917
10918         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10919         modifiers as they are no longer needed and they can trigger
10920         reload spill failures.
10921
10922         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10923         with a match_operand in order to help reload.
10924
10925         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10926         constraint with 'e' for the 8th alternative as this version of
10927         the mov.w instruction only accepts the lower 8 registers.
10928
10929 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10930
10931         PR target/34856
10932         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10933         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10934         vector elements.
10935
10936 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10937
10938         PR middle-end/33333
10939         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10940
10941 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10942
10943         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10944         New functions.
10945         (remove_structure): Update allocations list before removing structure.
10946         
10947 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10948
10949         * ipa-struct-reorg.c (is_safe_cond_expr, 
10950         create_new_stmts_for_cond_expr): Use integer_zerop function,
10951         that recognize not only zero-pointer, but zero-integer too.
10952
10953 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10954
10955         PR other/22232
10956         * fixproto: Escape "." in sed expression that strips leading "./".
10957
10958 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10959
10960         PR driver/34904
10961         * gcc.c (SWITCH_OK): Removed.
10962         (SWITCH_LIVE): Changed to bit.
10963         (SWITCH_FALSE): Likewise.
10964         (SWITCH_IGNORE): Likewise.
10965         (switchstr): Change live_cond to unsigned int.
10966         (process_command): Replace SWITCH_OK with 0.
10967         (do_self_spec): Likewise.
10968         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10969         (give_switch): Likewise.
10970         (used_arg): Likewise.
10971         (do_spec_1): Set the SWITCH_IGNORE bit.
10972         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10973         bits.  Set the SWITCH_LIVE bit.
10974
10975 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10976
10977         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10978
10979 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10980
10981         PR tree-optimization/34472
10982         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10983         parameter to a "bool *" and set *DATA to false if there is
10984         an unsafe access.  Do not delete the structure here.
10985         (check_cond_exprs): Delete it here instead.
10986         (check_cond_exprs, exclude_cold_structs): Do not increase
10987         I when removing a structure.
10988
10989 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10990
10991         PR target/34856
10992         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10993         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10994
10995 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10996
10997         PR middle-end/34934
10998         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10999         a fixed vector for stack.
11000
11001 2008-01-24  Ben Elliston  <bje@au.ibm.com>
11002
11003         PR c++/25701
11004         * doc/gcc.texi (Software development): Add a direntry for g++.
11005         
11006 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
11007
11008         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11009         stale and straggling -fforce-addr comments above.
11010
11011         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11012         define.
11013         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11014         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11015
11016 2008-01-23  Michael Matz  <matz@suse.de>
11017
11018         PR debug/34895
11019         * dwarf2out.c (force_type_die): Use modified_type_die instead of
11020         gen_type_die.
11021
11022 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
11023
11024         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11025         malloc result type.
11026
11027 2008-01-23 Anatoly Sokolov <aesok@post.ru>
11028
11029         * config/avr/avr.c (avr_current_arch): New variable.
11030         (avr_arch_types): Add 'avr31' and 'avr51' entries.
11031         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11032         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11033         (avr_override_options): Init 'avr_current_arch'. 
11034         (base_arch_s): Move from here...
11035         * config/avr/avr.h (base_arch_s): ... here. Add new members 
11036         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
11037         'mega' to 'have_jmp_call'.
11038         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
11039         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
11040         macros.
11041         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
11042         architectures.
11043         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
11044         MULTILIB_MATCHES): (Ditto.).
11045
11046 2008-01-23  Richard Guenther  <rguenther@suse.de>
11047
11048         PR middle-end/31529
11049         * cgraphunit.c (cgraph_reset_node): Always mark the node
11050         not reachable if it is not queued already.
11051
11052 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11053
11054         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11055         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11056         (cputype_selected): New static variable.
11057         (bfin_handle_option): Set it if -mcpu is used.
11058         (override_option): Select default set of workarounds if no cpu type
11059         selected on the command line.
11060         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11061
11062         From  Michael Frysinger  <michael.frysinger@analog.com>
11063         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11064         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11065
11066         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11067         for bf547, bf523, bf524, and bf526.
11068         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11069         bf526.
11070         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11071         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11072         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11073         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11074         * doc/invoke.texi (Blackfin Options): Document that
11075         -mcpu now accept bf547, bf523, bf524, and bf526.
11076
11077 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11078
11079         PR rtl-optimization/34628
11080         * combine.c (try_combine): Stop and undo after the first combination
11081         if an autoincrement side-effect on the first insn has effectively
11082         been lost.
11083
11084 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11085
11086         PR target/34529
11087         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11088         Offset addresses are not valid for Altivec or paired float modes.
11089
11090 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11091
11092         PR c++/34607
11093         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11094         if DECL_INITIAL (decl) is error_mark_node.
11095
11096         PR c++/34914
11097         * c-common.c (handle_vector_size_attribute): Only allow
11098         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11099         the same way as pointer, array etc. types.
11100         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11101
11102         PR c++/34917
11103         * tree.c (build_type_attribute_qual_variant): Call
11104         build_qualified_type if attributes are equal, but quals are not.
11105
11106 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11107
11108         PR 32102
11109         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11110         * flags.h (warn_strict_aliasing): Remove.
11111         (warn_strict_overflow): Remove.
11112         * opts.c (warn_strict_aliasing): Remove.
11113         (warn_strict_overflow): Remove.
11114         * c-opts.c (c_common_handle_option): -Wall only sets
11115         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11116         (c_common_post_options): Give default values to -Wstrict-aliasing
11117         and -Wstrict-overflow if they are uninitialized.
11118         * common.opt (Wstrict-aliasing): Specify Var and Init.
11119         (Wstrict-overflow): Likewise.
11120
11121 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11122
11123         PR rtl-optimization/26854
11124         PR rtl-optimization/34400
11125         PR rtl-optimization/34884
11126         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11127         DF_RD->gen.
11128         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11129         (df_rd_bb_info.expanded_lr_out): Deleted
11130         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11131         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11132         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11133         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11134         Removed code to allocate, initialize or free expanded_lr_out.
11135         (df_rd_bb_local_compute_process_def): Restructured to make more
11136         understandable.
11137         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11138         sets if the sets are being trimmed.
11139
11140 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11141
11142         PR bootstrap/32287
11143         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11144         (as_vers): Likewise.
11145         * configure: Regenerated.
11146
11147 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11148
11149         PR middle-end/33092
11150         * tree-pass.h (pass_build_alias): New pass.
11151         * tree-ssa-alias.c (gate_build_alias): New.
11152         (pass_build_alias): New.
11153         * passes.c (init_optimization_passes): Add pass_build_alias after
11154         pass_create_structure_vars.
11155
11156 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11157
11158         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11159         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11160         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11161         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11162         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11163         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11164         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11165         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11166         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11167         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11168         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11169         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11170         * config/s390/s390.md (FP_ALL): New mode iterator.
11171         (_d): New mode attribute.
11172         ("*signbit<mode>2>"): Changed mode of first operand.
11173         ("isinf<mode>2"): Changed mode of first operand.
11174         ("*TDC_insn"): Adaptation for DFP modes.
11175
11176 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11177
11178         * tree.c (check_qualified_type): Improve function description.
11179
11180 2008-01-21  Jason Merrill  <jason@redhat.com>
11181
11182         PR c++/34196
11183         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11184         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11185         if it is set.
11186
11187 2008-01-21  DJ Delorie  <dj@redhat.com>
11188
11189         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11190         return zero.
11191
11192 2008-01-21  Richard Guenther  <rguenther@suse.de>
11193
11194         PR middle-end/34856
11195         * tree-cfg.c (verify_expr): Allow all invariant expressions
11196         instead of just constant class ones as reference argument.
11197         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11198         like any other constant.
11199         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11200
11201 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11202
11203         * regmove.c (fixup_match_1): Update call crossed frequencies.
11204
11205 2008-01-21  Richard Guenther  <rguenther@suse.de>
11206
11207         PR c/34885
11208         * tree-inline.c (setup_one_parameter): Deal with mismatched
11209         types using a VIEW_CONVERT_EXPR.
11210
11211 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11212             Olga Golovanevsky  <olga@il.ibm.com>
11213         
11214         PR tree-optimization/34701
11215         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11216         when the structure size is not a power of 2.
11217
11218 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11219
11220         * doc/install.texi: Add doc for --enable-checking=df.
11221         
11222 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11223
11224         PR rtl-optimization/34808
11225         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11226
11227 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11228
11229         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11230         input.
11231
11232 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11233
11234         PR rtl-optimization/26854
11235         PR rtl-optimization/34400
11236         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11237         DF_RD->gen.
11238         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11239         (df_rd_bb_info.expanded_lr_out): New.
11240         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11241         * loop_iv.c (iv_analysis_loop_init): Ditto.
11242         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11243         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11244         Added code to allocate, initialize or free expanded_lr_out.
11245         (df_rd_bb_local_compute_process_def): Restructured to make
11246         more understandable.
11247         (df_rd_confluence_n): Add code to do nothing with fake edges and
11248         code to no apply invalidate_by_call sets if the sets are being trimmed.
11249         (df_lr_local_finalize): Renamed to df_lr_finalize.
11250         (df_live_local_finalize): Renamed to df_live_finalize.
11251
11252 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11253
11254         PR target/34831
11255         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11256         deciding whether to use reciprocal instructions.
11257
11258 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11259
11260         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11261         dwarf2out_note_section_used if cold_text_section is NULL.
11262
11263 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11264
11265         PR gcov-profile/34610
11266         * tree-cfg.c (make_edges): Mark both outgoing edges from
11267         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11268         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11269         from OMP_FOR and OMP_CONTINUE outgoing edges.
11270
11271         * tree-profile.c (tree_profiling): Return early if
11272         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11273         at the end.
11274         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11275         from cfun to child_cfun.
11276         * function.h (struct function): Add after_tree_profile bit.
11277
11278 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11279
11280         * config/avr/avr.S (_exit): Disable interrupt.
11281
11282 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11283             Steven Bosscher  <stevenb.gcc@gmail.com>
11284
11285         PR rtl-optimization/26854
11286         PR rtl-optimization/34400
11287         * df-problems.c (df_live_scratch): New scratch bitmap.
11288         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11289         (df_live_reset): Clear the proper bitmaps.
11290         (df_live_bb_local_compute): Only process the artificial defs once
11291         since the order is not important.
11292         (df_live_init): Init the df_live sets only with the variables
11293         found live by df_lr.
11294         (df_live_transfer_function): Use the df_lr sets to prune the
11295         df_live sets as they are being computed.  
11296         (df_live_free): Free df_live_scratch.
11297
11298 2008-01-18  Ian Lance Taylor  <iant@google.com>
11299
11300         * common.opt: Add fmerge-debug-strings.
11301         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11302         flag_merge_debug_strings rather than flag_merge_constants.
11303         * doc/invoke.texi (Option Summary): Mention
11304         -fmerge-debug-strings.
11305         (Debugging Options): Document -fmerge-debug-strings.
11306
11307 2008-01-18  Ian Lance Taylor  <iant@google.com>
11308
11309         PR c++/33407
11310         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11311         (struct tree_function_decl): Add new field operator_new_flag.
11312         * tree-inline.c (expand_call_inline): When inlining a call to
11313         operator new, force the return value to go into a variable, and
11314         set DECL_NO_TBAA_P on that variable.
11315         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11316
11317 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11318
11319         PR debug/34484
11320         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11321         DWARF2_DEBUGGING_INFO.
11322         (dwarf2out_note_section_used): Ditto.  Add prototype.
11323         (have_multiple_function_sections, text_section_used,
11324         cold_text_section_used, *cold_text_sections): Move declarations
11325         before their uses.
11326
11327 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11328
11329         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11330         field and add signal_ra.
11331         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11332         assignments to frame state pc.  Move end of stack check after
11333         MD_FALLBACK_FRAME_STATE_FOR.
11334         (uw_update_context_1): Use frame state signal_regs if set, instead
11335         of checking signal_frame flag.
11336         (uw_update_context): Use frame state signal_ra if set.
11337         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11338         * config/xtensa/linux-unwind.h: New file.
11339
11340 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11341
11342         * modulo-sched.c (get_sched_window): Fix comment typo.
11343
11344 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11345
11346         PR tree-optimization/34648
11347         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11348
11349 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11350
11351         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11352         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11353
11354 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11355
11356         PR rtl-optimization/34400
11357         * df-core.c (df_worklist_dataflow_overeager,
11358         df_worklist_dataflow_doublequeue): New functions.
11359         (df_worklist_dataflow): Two different worklist solvers.
11360         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11361         New param.
11362
11363 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11364
11365         PR testsuite/34821
11366         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11367         and ftree-parallelize-loops.
11368
11369 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11370
11371         PR rtl-optimization/34826
11372         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11373
11374 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11375
11376         * global.c (find_reg): Mark the eh regs as used if necessary.
11377         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11378         * ra.h (struct allocno): no_eh_reg field added.  Changed
11379         no_stack_reg type to bitfield.
11380
11381 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11382
11383         * tree.c (substitute_in_expr): Add missing 'break'.
11384
11385 2008-01-17  Richard Guenther  <rguenther@suse.de>
11386
11387         PR tree-optimization/34825
11388         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11389         x / x as division to handle.
11390
11391 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11392
11393         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11394         "-pthread" is specified.
11395         * pa-hpux11.h (LIB_SPEC): Likewise.
11396
11397 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11398             Peter Bergner  <bergner@vnet.ibm.com>
11399
11400         PR rtl-optimization/33796
11401         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11402
11403 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11404
11405         PR libgfortran/34699
11406         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11407         static links.
11408         * pa-hpux10.h (LINK_SPEC): Likewise.
11409         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11410
11411 2008-01-16  Richard Guenther  <rguenther@suse.de>
11412
11413         PR middle-end/32628
11414         * fold-const.c (fold_convert_const_int_from_int): Do not
11415         set overflow if that occured only because of a sign extension
11416         change when converting from/to a sizetype with the same
11417         precision and signedness.
11418
11419 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11420
11421         PR debug/34249
11422         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11423         location address to the correct place.  Update copyright year.
11424
11425 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11426
11427         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11428         no dependences in the dependence_relations vector.
11429
11430 2008-01-16  Jan Hubicka  <jh@suse.cz>
11431
11432         PR rtl-optimization/31396
11433         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11434         * cfg.c (dump_reg_info): Print it.
11435         * regs.h (struct reg_info_t): add freq_calls_crossed.
11436         (REG_FREQ_CALLS_CROSSED): New macro.
11437         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11438         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11439         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11440         regmove_optimize): Update call crossed frequencies.
11441         * local-alloc.c (struct qty): Add freq_calls_crossed.
11442         (alloc_qty): Copute freq_calls_crossed.
11443         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11444         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11445         * ra.h (struct allocno): Add freq_calls_crossed.
11446
11447 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11448
11449         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11450         libgomp when compiling with ftree-parallelize-loops.
11451         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11452
11453 2008-01-16  Richard Guenther  <rguenther@suse.de>
11454
11455         PR tree-optimization/34769
11456         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11457         * tree.c (int_cst_value): Instead make this function more
11458         permissive in what it accepts as valid input.  Document this
11459         function always sign-extends the value.
11460
11461 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11462             Richard Guenther  <rguenther@suse.de>
11463
11464         PR c/34668
11465         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11466         (gimple_fold_indirect_ref_rhs): ... this.
11467         (gimple_fold_indirect_ref): New function with foldings
11468         that preserve lvalueness.
11469         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11470         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11471         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11472         to fold an INDIRECT_REF, fall back to the old use of
11473         fold_indirect_ref_1.
11474
11475 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11476
11477         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11478         free_conflict_function.
11479         (compute_self_dependence): Same.
11480
11481 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11482
11483         PR debug/34249
11484         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11485         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11486         function global.
11487         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11488         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11489         for DWARF2_UNWIND_INFO targets.
11490
11491 2008-01-16  Richard Guenther  <rguenther@suse.de>
11492
11493         PR c/34768
11494         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11495         type qualifiers for function types.
11496
11497 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11498
11499         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11500         loop_iterator li from previous commit.
11501
11502 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11503
11504         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11505
11506 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11507
11508         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11509         (parallelize_loops): Don't parallelize irreducible components.
11510
11511 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11512
11513         PR c++/24924
11514         * c-opts (c_common_post_options): Do not enable CPP
11515         flag_pedantic_errors by default.
11516         
11517 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11518
11519         PR rtl-optimization/31944
11520         * cse.c (remove_pseudo_from_table): New function.
11521         (merge_equiv_classes): Use above function to remove pseudo-registers.
11522         (invalidate): Likewise.
11523
11524 2008-01-13  Richard Guenther  <rguenther@suse.de>
11525
11526         PR middle-end/34601
11527         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11528         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11529
11530 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11531
11532         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11533         validate_change to unshare the source of the PC set.
11534
11535 2008-01-12  Jan Hubicka  <jh@suse.cz>
11536
11537         PR middle-end/32135
11538         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11539         references above array bounds.  This might trigger bounds checks for
11540         pointers to arrays.
11541
11542 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11543
11544         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11545         new_replaceable_dependencies.
11546
11547 2008-01-12  Doug Kwan  <dougkwan@google.com>
11548
11549         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11550         instead of OPT_Wreturn_type in warning due to ignored return type
11551         qualifiers.
11552         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11553         options included in -Wextra.
11554         * c.opt: New option -Wignored_qualifiers.
11555         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11556         -Wignore_qualifiers.
11557         (-Wignored-qualifiers): Document.
11558         (-Wreturn-type): Remove description of functionality now handled
11559         by -Wignored-qualifiers.
11560
11561 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11562
11563         PR ada/33788
11564         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11565         NOP_EXPR if it is between integral types with the same precision.
11566
11567 2008-01-12  Jan Hubicka  <jh@suse.cz>
11568
11569         PR other/28023
11570         * invoke.texi (max-inline-recursive-depth): Fix default value.
11571
11572 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11573
11574         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11575         correct type.
11576
11577 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11578         
11579         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11580         
11581 2008-01-11  James E. Wilson  <wilson@specifix.com>
11582
11583         PR target/26015
11584         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11585
11586 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11587
11588         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11589         save/restore frame pointer register and don't use 'call-prologues' 
11590         optimization in function with "OS_task" attribute.
11591
11592 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11593
11594         PR middle-end/31309
11595         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11596         when copying to memory.
11597
11598 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11599
11600         PR rtl-optimization/30905
11601         * cfgcleanup.c: Include dce.h
11602         (crossjumps_occured): New global variable.
11603         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11604         If something changed, set crossjumps_occured to true.
11605         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11606         Don't add/remove fake edges to exit here...
11607         (cleanup_cfg): ...but do it here, when crossjumping.
11608         Run a fast DCE when successful crossjumps occured in the latest
11609         iteration of try_optimize_cfg.
11610
11611 2008-01-11  Richard Guenther  <rguenther@suse.de>
11612
11613         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11614         (struct vn_unary_op_s): Likewise.
11615         (vn_reference_insert): Free old reference on hash collision.
11616
11617 2008-01-10  Raksit Ashok  <raksit@google.com>
11618
11619         PR rtl-optimization/27971
11620         * combine.c (find_split_point): Split PLUS expressions which are
11621         inside a MEM rtx, and whose first operand is complex.
11622
11623 2008-01-10  DJ Delorie  <dj@redhat.com>
11624
11625         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11626         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11627         (m32c_hard_regno_ok): Call the underlying function.
11628
11629 2008-01-10  Richard Guenther  <rguenther@suse.de>
11630
11631         PR middle-end/34683
11632         * tree-cfg.c (tree_merge_blocks): Do not go through the
11633         full-blown folding and stmt updating path if we just deal
11634         with virtual operands.
11635         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11636         test for abnormal SSA_NAMEs.
11637
11638 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11639
11640         PR middle-end/34641
11641         * reload.c (push_reload): Add assertions.  All constants from
11642         reg_equiv_constant should have been used for replacing the respective
11643         pseudo earlier.
11644         (find_reloads_address): Invoke find_reloads_address_part for
11645         constant taken from the reg_equiv_constant array.
11646
11647 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11648
11649         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11650         field (valnum) the first in the struct.  Replace bools with
11651         unit bit fields.
11652
11653 2008-01-10  Richard Guenther  <rguenther@suse.de>
11654
11655         PR tree-optimization/34651
11656         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11657         types and ordering for masking and converting.
11658
11659 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11660
11661         PR tree-optimization/34017
11662         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11663         also for PHI_NODE expressions.
11664
11665 2008-01-09  Jan Hubicka  <jh@suse.cz>
11666
11667         PR tree-optimization/34708
11668         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11669         based on number of case labels.
11670         (init_inline_once): Remove switch_cost.
11671         * tree-inline.h (eni_weights_d): Remove switch_cost.
11672
11673 2008-01-09  Richard Guenther  <rguenther@suse.de>
11674         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11675
11676         PR middle-end/30132
11677         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11678         temporary if an rvalue is ok or an lvalue is not required.
11679
11680 2008-01-09  Richard Guenther  <rguenther@suse.de>
11681
11682         PR middle-end/34458
11683         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11684         adjust return type.
11685
11686 2008-01-09  Richard Guenther  <rguenther@suse.de>
11687
11688         PR middle-end/34679
11689         * tree.c (host_integerp): Check for sizetype only if the
11690         type is an integer type.
11691
11692 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11693
11694         PR debug/26364
11695         * opts.c (decode_options): Disable inlining of functions called
11696         once if not in unit-at-a-time mode.
11697
11698 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11699
11700         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11701
11702 2008-01-08  Richard Guenther  <rguenther@suse.de>
11703
11704         PR middle-end/31863
11705         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11706         out early if the result will be unused.
11707
11708 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11709
11710         PR target/34709
11711         Revert:
11712
11713         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11714         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11715         for TARGET_RECIP.       
11716         
11717 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11718         
11719         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11720         for vectorization tuned.
11721         
11722 2008-01-08  Richard Guenther  <rguenther@suse.de>
11723
11724         PR tree-optimization/34683
11725         * tree-ssa-operands.c (operand_build_cmp): Export.
11726         * tree-ssa-operands.h (operand_build_cmp): Declare.
11727         * tree-vn.c (vuses_compare): Remove.
11728         (sort_vuses): Use operand_build_cmp.
11729         (sort_vuses_heap): Likewise.
11730         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11731         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11732         (vdefs_to_vec): Do not sort already sorted VDEFs.
11733
11734 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11735
11736         PR middle-end/34694
11737         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11738
11739 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11740
11741         PR target/34702
11742         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11743         limitations of reciprocal sequences on x86 targets.
11744
11745 2008-01-08  Richard Guenther  <rguenther@suse.de>
11746
11747         PR tree-optimization/34683
11748         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11749
11750 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11751
11752         PR target/34622
11753         * config/darwin.c (darwin_mergeable_string_section): Don't use
11754         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11755
11756 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11757
11758         PR target/34682
11759         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11760         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11761         predicates of op0 and op1 to register_operand.
11762         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11763         expander using X87MODEF mode iterator.  Change predicates of
11764         op0 and op1 to register_operand.
11765         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11766         corresponding patterns and macroize using MODEF macro.  Change
11767         predicates of op0 and op1 to register_operand and remove
11768         "m" constraint. Disparage "r" alternative with "!".
11769         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11770         macroize using X87MODEF macro.  Change predicates of op0 and op1
11771         to register_operand and remove "m" constraint.  Disparage "r"
11772         alternative with "!".
11773         (absneg splitter with memory operands): Remove.
11774         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11775         patterns and macroize using X87MODEF mode iterator.
11776         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11777         Change predicate of op1 to register_operand.
11778         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11779         for memory operands.
11780
11781 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11782
11783         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11784
11785 2008-01-07  Richard Guenther  <rguenther@suse.de>
11786
11787         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11788         fields.
11789
11790 2008-01-07  Richard Guenther  <rguenther@suse.de>
11791
11792         PR tree-optimization/34683
11793         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11794         VOPs of the needed size to save memory.  Use VEC_quick_push
11795         to save compile-time.
11796         (vdefs_to_vec): Likewise.
11797
11798 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11799
11800         * config/spu/spu.md (divdf3): Genetate inline code for double
11801         division.  The implementation doesn't handle INF or NAN, therefore it
11802         only applies when -ffinite-math-only is given.
11803
11804 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11805
11806         PR libstdc++/34680
11807         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11808         * doc/cpp.texi ([Common Predefined Macros]): Document.
11809
11810 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11811
11812         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11813         order to use commutative addition instead of subtraction.
11814
11815 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11816             Mircea Namolaru  <namolaru@il.ibm.com>
11817             Vladimir Yanovsky  <yanov@il.ibm.com>
11818             Revital Eres  <eres@il.ibm.com>
11819
11820         PR tree-optimization/34263
11821         * tree-outof-ssa.c (process_single_block_loop_latch,
11822         contains_tree_r): New functions.
11823         (analyze_edges_for_bb): Call process_single_block_loop_latch
11824         function to empty single-basic-block latch block if possible.
11825
11826 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11827
11828         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11829         for TARGET_RECIP.
11830         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11831
11832 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11833
11834         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11835
11836 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11837
11838         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11839
11840 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11841
11842         PR tree-optimization/34618
11843         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11844         flag from T.
11845
11846 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11847
11848         PR target/34673
11849         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11850         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11851         Update copyright year.
11852
11853         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11854         Update copyright year.
11855         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11856         using NR fixup.
11857
11858 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11859
11860         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11861         edge does not point to current bb before changing need_assert.
11862
11863 2008-01-04  Richard Guenther  <rguenther@suse.de>
11864
11865         PR middle-end/34029
11866         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11867         for verifying purposes if they are is_gimple_min_invariant.
11868
11869 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11870
11871         PR tree-optimization/34448
11872         PR tree-optimization/34465
11873         * gimplify.c (gimplify_init_constructor): Add new parameter
11874         notify_temp_creation.  Use it.
11875         (gimplify_modify_expr_rhs): Take volatiles into account when
11876         optimizing constructors.
11877         Do not optimize constructors if gimplify_init_constructor will dump to
11878         memory.
11879         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11880         * gcc.c-torture/compile/pr34448.c: New.
11881
11882 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11883
11884         PR gcov-profile/34609
11885         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11886         return_slot if result is TREE_ADDRESSABLE.
11887
11888 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11889
11890         * config/mips/mips.md (sqrt_condition): Tweak comment.
11891         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11892
11893 2008-01-03  Tom Tromey  <tromey@redhat.com>
11894
11895         PR c/34457
11896         * c-common.c (c_type_hash): Handle VLAs.
11897
11898 2008-01-03  Jan Hubicka  <jh@suse.cz>
11899
11900         PR tree-optimization/31081
11901         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11902         0 when inlining and not inlining to first basic block.
11903         (remap_decl): When var is initialized to 0, don't set default_def.
11904         (expand_call_inline): Set entry_bb.
11905         * tree-inline.h (copy_body_data): Add entry_bb.
11906
11907 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11908
11909         PR c++/34619
11910         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11911         before returning.
11912
11913         PR tree-optimization/29484
11914         * tree-inline.c (inline_forbidden_p_2): New function.
11915         (inline_forbidden_p): Disallow inlining if some static var
11916         has an address of a local LABEL_DECL in its initializer.
11917         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11918         vs. inlining.
11919
11920 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11921
11922         PR tree-optimization/34635
11923         * tree-data-ref.c (add_other_self_distances): Make sure that the
11924         evolution step is constant.
11925
11926 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11927
11928         PR middle-end/34608
11929         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11930
11931 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11932
11933         * tree-sra.c (scalarize_init): Insert the generate_element_init
11934         statements after the generate_element_zero statements.
11935
11936 2008-01-02  Richard Guenther  <rguenther@suse.de>
11937
11938         PR middle-end/34093
11939         PR middle-end/31976
11940         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11941         for very large number of operands instead of ICEing.
11942
11943 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11944
11945         PR target/34013
11946         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11947         while stack probing.
11948
11949 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11950
11951         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11952         in C++0x mode.
11953
11954 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11955
11956         PR libmudflap/26442
11957         * tree-mudflap.c (mx_register_decls): Guard warning by
11958         !DECL_ARTIFICIAL check.
11959
11960 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11961
11962         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11963         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11964         sse5_perm<mode>): Fix constraints.