OSDN Git Service

PR rtl-optimization/36419
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2
3         PR rtl-optimization/36419
4         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
5         the emitting jump insn.
6
7         PR target/36362
8         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
9         is not bool, boolify the whole *expr_p and convert to the desired type.
10
11 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
12
13         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
14         200805.
15         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
16         Add omp_private_outer_ref hook, add another argument to
17         omp_clause_default_ctor hook.
18         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
19         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
20         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
21         hook_tree_tree_tree_tree_null.
22         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
23         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
24         * hooks.c (hook_tree_tree_tree_tree_null): New function.
25         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
26         * tree.def (OMP_TASK): New tree code.
27         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
28         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
29         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
30         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
31         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
32         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
33         OMP_CLAUSE_COLLAPSE_EXPR): Define.
34         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
35         (OMP_DIRECTIVE_P): Add OMP_TASK.
36         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
37         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
38         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
39         and OMP_CLAUSE_UNTIED entries.
40         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
41         num_ops to 2.
42         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
43         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
44         * tree-pretty-print.c (dump_omp_clause): Handle
45         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
46         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
47         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
48         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
49         warning about unsigned iterators.  Change decl/init/cond/incr
50         arguments to TREE_VECs, check arguments for all collapsed loops.
51         (c_finish_omp_taskwait): New function.
52         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
53         ws_clauses.
54         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
55         default_function_array_conversion on init.  Add par_clauses argument.
56         If decl is present in parallel's lastprivate clause, change it to
57         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
58         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
59         collapse count in clauses.
60         (c_parser_omp_for, c_parser_omp_parallel): Adjust
61         c_parser_omp_for_loop callers.
62         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
63         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
64         (c_parser_omp_clause_name): Handle collapse and untied clauses.
65         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
66         functions.
67         (c_parser_omp_clause_schedule): Handle schedule(auto).
68         Include correct location in the error message.
69         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
70         and PRAGMA_OMP_CLAUSE_UNTIED.
71         (OMP_TASK_CLAUSE_MASK): Define.
72         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
73         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
74         * tree-nested.c (convert_nonlocal_omp_clauses,
75         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
76         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
77         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
78         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
79         OMP_CLAUSE_DECL.
80         (conver_nonlocal_reference, convert_local_reference,
81         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
82         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
83         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
84         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
85         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
86         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
87         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
88         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
89         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
90         OMP_CLAUSE_UNTIED.
91         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
92         * c-common.h (c_finish_omp_taskwait): New prototype.
93         * gimple-low.c (lower_stmt): Handle OMP_TASK.
94         * tree-parloops.c (create_parallel_loop): Create 1 entry
95         vectors for OMP_FOR_{INIT,COND,INCR}.
96         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
97         (make_edges): Handle OMP_TASK.
98         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
99         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
100         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
101         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
102         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
103         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
104         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
105         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
106         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
107         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
108         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
109         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
110         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
111         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
112         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
113         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
114         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
115         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
116         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
117         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
118         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
119         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
120         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
121         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
122         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
123         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
124         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
125         original iterator is present in lastprivate clause or if
126         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
127         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
128         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
129         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
130         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
131         if it is set, lookup var in outer contexts too.  Handle
132         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
133         to be implicitly determined firstprivate for task regions.
134         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
135         if it is set, lookup var in outer contexts too.  Set
136         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
137         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
138         OMP_CLAUSE_UNTIED.  Take region_type as last argument
139         instead of in_parallel and in_combined_parallel.
140         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
141         Adjust callers.
142         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
143         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause
144         langhook.
145         (new_omp_context): Set default_kind to
146         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
147         (omp_region_type): New enum.
148         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
149         fields, add region_type.
150         (new_omp_context): Take region_type as argument instead of is_parallel
151         and is_combined_parallel.
152         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
153         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
154         ctx->is_combined_parallel checks.
155         (gimplify_omp_task): New function.
156         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
157         OMP_CLAUSE_UNTIED.
158         * omp-low.c (extract_omp_for_data): Use schedule(static)
159         for schedule(auto).  Handle pointer and unsigned iterators.
160         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
161         Add loops argument.  Extract data for collapsed OMP_FOR loops.
162         (expand_parallel_call): Assert sched_kind isn't auto,
163         map runtime schedule to index 3.
164         (struct omp_for_data_loop): New type.
165         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
166         Add loop, loops, collapse and iter_type fields.
167         (workshare_safe_to_combine_p): Disallow combined for if
168         iter_type is unsigned long long.  Don't combine collapse > 1 loops
169         unless all bounds and steps are constant.  Adjust extract_omp_for_data
170         caller.
171         (expand_omp_for_generic): Handle pointer, unsigned and long long
172         iterators.  Handle collapsed OMP_FOR loops.  Adjust
173         for struct omp_for_data changes.  If libgomp function doesn't return
174         boolean_type_node, add comparison of the return value with 0.
175         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
176         pointer, unsigned and long long iterators.  Adjust for struct
177         omp_for_data changes.
178         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
179         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
180         unsigned long long.  Allocate loops array, pass it to
181         extract_omp_for_data.  For collapse > 1 loops use always
182         expand_omp_for_generic.
183         (omp_context): Add sfield_map and srecord_type fields.
184         (is_task_ctx, lookup_sfield): New functions.
185         (use_pointer_for_field): Use is_task_ctx helper.  Change first
186         argument's type from const_tree to tree.  Clarify comment.
187         In OMP_TASK disallow copy-in/out sharing.
188         (build_sender_ref): Call lookup_sfield instead of lookup_field.
189         (install_var_field): Add mask argument.  Populate both record_type
190         and srecord_type if needed.
191         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
192         in srecord_type.
193         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
194         and DECL_FIELD_OFFSET.
195         (scan_sharing_clauses): Adjust install_var_field callers.  For
196         firstprivate clauses on explicit tasks allocate the var by value in
197         record_type unconditionally, rather than by reference.
198         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
199         Use is_taskreg_ctx instead of is_parallel_ctx.
200         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
201         (create_omp_child_function_name): Add task_copy argument, use
202         *_omp_cpyfn* names if it is true.
203         (create_omp_child_function): Add task_copy argument, if true create
204         *_omp_cpyfn* helper function.
205         (scan_omp_parallel): Adjust create_omp_child_function callers.
206         Rename parallel_nesting_level to taskreg_nesting_level.
207         (scan_omp_task): New function.
208         (lower_rec_input_clauses): Don't run constructors for firstprivate
209         explicit task vars which are initialized by *_omp_cpyfn*.  
210         Pass outer var ref to omp_clause_default_ctor hook if
211         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
212         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
213         OMP_CLAUSE_REDUCTION_INIT.
214         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
215         avoid duplicate setting of fields.  Handle
216         OMP_CLAUSE_PRIVATE_OUTER_REF.
217         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
218         copy-out if TREE_READONLY, only copy-in.
219         (expand_task_copyfn): New function.
220         (expand_task_call): New function.
221         (struct omp_taskcopy_context): New type.
222         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
223         New functions.
224         (lower_omp_parallel): Rename to...
225         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
226         Call create_task_copyfn if srecord_type is needed.  Adjust
227         sender_decl type.
228         (task_shared_vars): New variable.
229         (check_omp_nesting_restrictions): Warn if work-sharing,
230         barrier, master or ordered region is closely nested inside OMP_TASK.
231         Add warnings for barrier if closely nested inside of work-sharing,
232         ordered, or master region.
233         (scan_omp_1): Call check_omp_nesting_restrictions even for
234         GOMP_barrier calls.  Rename parallel_nesting_level to
235         taskreg_nesting_level.  Handle OMP_TASK.
236         (lower_lastprivate_clauses): Even if some lastprivate is found on a
237         work-sharing construct, continue looking for them on parent parallel
238         construct.
239         (lower_omp_for_lastprivate): Add lastprivate clauses
240         to the beginning of dlist rather than end.  Adjust for struct
241         omp_for_data changes.
242         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
243         not after it.  Handle collapsed OMP_FOR loops, adjust for
244         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
245         caller.
246         (get_ws_args_for): Adjust extract_omp_for_data caller.
247         (scan_omp_for): Handle collapsed OMP_FOR
248         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
249         (lower_omp_single_simple): If libgomp function doesn't return
250         boolean_type_node, add comparison of the return value with 0.
251         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
252         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
253         (parallel_nesting_level): Rename to...
254         (taskreg_nesting_level): ... this.
255         (is_taskreg_ctx): New function.
256         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
257         of is_parallel_ctx.
258         (execute_lower_omp): Rename parallel_nesting_level to
259         taskreg_nesting_level.
260         (expand_omp_parallel): Rename to...
261         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
262         Call omp_task_call for OMP_TASK regions.
263         (expand_omp): Adjust caller, handle OMP_TASK.
264         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
265
266         * bitmap.c (bitmap_default_obstack_depth): New variable.
267         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
268         if argument is NULL and bitmap_default_obstack is already initialized.
269         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
270         at the end.
271         * matrix-reorg.c (matrix_reorg): Likewise.
272
273 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
274
275         * config/i386/i386.md (*indirect_jump): Macroize using P
276         mode iterator.  Remove !TARGET_64BIT from insn constraints.
277         (*tablejump_1): Ditto.
278         (*indirect_jump_rex64): Remove insn pattern.
279         (*tablejump_1_rex64): Ditto.
280         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
281         and eh_return_si insn patterns.
282
283 2008-06-06  Richard Guenther  <rguenther@suse.de>
284
285         * tree-ssa-structalias.c (merge_smts_into): Remove.
286         (find_what_p_points_to): Do not bother to compute the
287         points-to set for pt_anything pointers.
288         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
289         for pt_anything pointers is ok.
290
291 2008-06-06  Jan Hubicka  <jh@suse.cz>
292
293         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
294
295 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
296
297         * cgraph.c: Fix typos in comments.
298         (cgraph_availability_names): Fix string typo.
299         * fold-const.c: Fix typos in comments.
300         (fold_binary): Fix typo in warning.
301         * genautomata.c: Fix typos in comments.
302         (check_presence_pattern_sets): Fix typo in local variable.
303         (output_description): Fix typo in output.
304         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
305         * hwint.h: Likewise.
306         * matrix-reorg.c (check_allocation_function): Likewise.
307         * omega.c (smooth_weird_equations): Likewise.
308         * auto-inc-dec.c: Fix typos in comments.
309         * bb-reorder.c: Likewise.
310         * builtins.c: Likewise.
311         * c-common.c: Likewise.
312         * c-cppbuiltin.c: Likewise.
313         * c-parser.c: Likewise.
314         * c-pretty-print.c: Likewise.
315         * cfgcleanup.c: Likewise.
316         * cfgexpand.c: Likewise.
317         * cfghooks.c: Likewise.
318         * cfglayout.c: Likewise.
319         * cfgloopmanip.c: Likewise.
320         * cgraphunit.c: Likewise.
321         * coverage.c: Likewise.
322         * dbxout.c: Likewise.
323         * df-byte-scan.c: Likewise.
324         * df-core.c: Likewise.
325         * df-problems.c: Likewise.
326         * df-scan.c: Likewise.
327         * dfp.c: Likewise.
328         * dominance.c: Likewise.
329         * domwalk.c: Likewise.
330         * dse.c: Likewise.
331         * dwarf2out.c: Likewise.
332         * emit-rtl.c: Likewise.
333         * et-forest.c: Likewise.
334         * function.c: Likewise.
335         * function.h: Likewise.
336         * gcc.c: Likewise.
337         * gcov-io.c: Likewise.
338         * gcov.c: Likewise.
339         * gcse.c: Likewise.
340         * genattrtab.c: Likewise.
341         * ggc-page.c: Likewise.
342         * gimplify.c: Likewise.
343         * gthr-lynx.h: Likewise.
344         * haifa-sched.c: Likewise.
345         * ipa-cp.c: Likewise.
346         * ipa-inline.c: Likewise.
347         * ipa-prop.h: Likewise.
348         * ipa-pure-const.c: Likewise.
349         * ipa-struct-reorg.c: Likewise.
350         * ipa-struct-reorg.h: Likewise.
351         * ipa-type-escape.c: Likewise.
352         * ipa.c: Likewise.
353         * loop-doloop.c: Likewise.
354         * mips-tfile.c: Likewise.
355         * mkmap-flat.awk: Likewise.
356         * mkmap-symver.awk: Likewise.
357         * modulo-sched.c: Likewise.
358         * omp-low.c: Likewise.
359         * optabs.c: Likewise.
360         * optabs.h: Likewise.
361         * opts.c: Likewise.
362         * passes.c: Likewise.
363         * postreload-gcse.c: Likewise.
364         * postreload.c: Likewise.
365         * predict.c: Likewise.
366         * pretty-print.h: Likewise.
367         * profile.c: Likewise.
368         * protoize.c: Likewise.
369         * ra-conflict.c: Likewise.
370         * real.c: Likewise.
371         * recog.c: Likewise.
372         * regclass.c: Likewise.
373         * regs.h: Likewise.
374         * reload.c: Likewise.
375         * rtl-error.c: Likewise.
376         * rtlanal.c: Likewise.
377         * scan.h: Likewise.
378         * sched-rgn.c: Likewise.
379         * see.c: Likewise.
380         * stmt.c: Likewise.
381         * target.h: Likewise.
382         * tree-dfa.c: Likewise.
383         * tree-eh.c: Likewise.
384         * tree-flow-inline.h: Likewise.
385         * tree-inline.c: Likewise.
386         * tree-into-ssa.c: Likewise.
387         * tree-loop-distribution.c: Likewise.
388         * tree-nested.c: Likewise.
389         * tree-parloops.c: Likewise.
390         * tree-pass.h: Likewise.
391         * tree-pretty-print.c: Likewise.
392         * tree-profile.c: Likewise.
393         * tree-scalar-evolution.c: Likewise.
394         * tree-sra.c: Likewise.
395         * tree-ssa-alias-warnings.c: Likewise.
396         * tree-ssa-ccp.c: Likewise.
397         * tree-ssa-coalesce.c: Likewise.
398         * tree-ssa-dom.c: Likewise.
399         * tree-ssa-dse.c: Likewise.
400         * tree-ssa-forwprop.c: Likewise.
401         * tree-ssa-live.c: Likewise.
402         * tree-ssa-live.h: Likewise.
403         * tree-ssa-loop-im.c: Likewise.
404         * tree-ssa-loop-ivopts.c: Likewise.
405         * tree-ssa-loop-niter.c: Likewise.
406         * tree-ssa-loop-prefetch.c: Likewise.
407         * tree-ssa-phiopt.c: Likewise.
408         * tree-ssa-phiprop.c: Likewise.
409         * tree-ssa-sccvn.c: Likewise.
410         * tree-ssa-ter.c: Likewise.
411         * tree-ssa-threadupdate.c: Likewise.
412         * tree-ssa.c: Likewise.
413         * tree-vect-analyze.c: Likewise.
414         * tree-vect-transform.c: Likewise.
415         * tree-vectorizer.c: Likewise.
416         * tree-vn.c: Likewise.
417         * tree-vrp.c: Likewise.
418         * tree.c: Likewise.
419         * tree.def: Likewise.
420         * tree.h: Likewise.
421         * unwind-dw2-fde.c: Likewise.
422         * unwind.inc: Likewise.
423         * value-prof.c: Likewise.
424         * vmsdbgout.c: Likewise.
425
426 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
427
428         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
429         always place FP constants in the TOC for TARGET_POWERPC64.
430         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
431
432 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
433
434         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
435         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
436         enable for TARGET_E500_DOUBLE.
437         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
438         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
439         floating-point modes like integer modes for E500 double.
440         (rs6000_legitimate_offset_address_p): Likewise.
441         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
442         addressing for DDmode for E500 double.
443         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
444         modes as using 64-bits of registers for E500 double.
445         (spe_build_register_parallel): Do not handle DDmode or TDmode.
446         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
447         specially for E500 double.
448         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
449         TDmode for E500 double.
450         (rs6000_gimplify_va_arg): Only handle SDmode in registers
451         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
452         (rs6000_split_multireg_move): Do not handle TDmode specially for
453         E500 double.
454         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
455         using 64-bit registers for E500 double.
456         (emit_frame_save): Do not handle DDmode specially for E500 double.
457         (gen_frame_mem_offset): Likewise.
458         (rs6000_function_value): Do not call spe_build_register_parallel
459         for DDmode or TDmode.
460         (rs6000_libcall_value): Likewise.
461         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
462         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
463         for E500 double.
464
465 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
466
467         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
468         in comments.
469
470 2008-06-04  Junjie Gu <jgu@tensilica.com>
471
472         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
473         comparison for frame pointers.
474
475 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
476
477         PR target/27386
478         * config/avr/avr.h: (PUSH_ROUNDING): Remove.
479
480 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
481
482         PR target/30243
483         * builtins.c (expand_builtin_signbit): Don't take lowpart when
484         register is already smaller or equal to required mode. 
485
486 2008-06-04  Xinliang David Li  <davidxl@google.com>
487
488         * tree-call-cdce.c: New file. 
489         (cond_dead_built_in_calls): New static variable.
490         (input_domain): New struct.
491         (check_pow): New function.
492         (check_builtin_call): Ditto.
493         (check_target_format): Ditto.
494         (is_call_dce_candidate): Ditto.
495         (gen_one_condition): Ditto.
496         (gen_conditions_for_domain): Ditto.
497         (get_domain): Ditto.
498         (gen_conditions_for_pow_cst_base): Ditto.
499         (gen_conditions_for_pow_int_base): Ditto.
500         (gen_conditions_for_pow): Ditto.
501         (get_no_error_domain): Ditto.
502         (gen_shrink_wrap_conditions): Ditto.
503         (shrink_wrap_one_built_in_call): Ditto.
504         (shink_wrap_conditional_dead_built_in_calls): Ditto.
505         (tree_call_cdce): Ditto.
506         (gate_call_cdce): Ditto.
507         (pass_call_cdce): New gimple pass.
508         * passes.c: (init_optimization_passes): New pass.
509         * tree-pass.h: New pass declaration.
510         * opts.c (decode_options): New flag setting.
511         * common.opt: Add -ftree-builtin-call-dce flag.
512         * Makefile.in: Add new source file.
513         * tempvar.def: New tv_id.
514         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
515
516 2008-06-04  Richard Guenther  <rguenther@suse.de>
517
518         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC
519         on MTAGs.
520         (is_call_clobbered): Always check var_ann->call_clobbered.
521         (mark_call_clobbered): Always set var_ann->call_clobbered.
522         (clear_call_clobbered): Always clear var_ann->call_clobbered.
523         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
524         (reset_alias_info): Clear call clobbering info on MTAGs and
525         globals as well.
526         (set_pt_anything): Set pt_global_mem.
527         (create_tag_raw): Adjust comment.
528         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
529
530 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
531             Maxim Kuvyrkov  <maxim@codesourcery.com>
532
533         * config/m68k/m68k.opt (mxgot): New option.
534         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
535         (m68k_output_addr_const_extra): New.
536         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
537         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
538         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
539         * doc/invoke.texi (M680x0 Options): Document -mxgot.
540
541 2008-06-04  Richard Guenther  <rguenther@suse.de>
542
543         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
544         negative or non-representable offsets.
545
546 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
547
548         *  config/i386/i386.c (ix86_gen_leave): New.
549         (ix86_gen_pop1): Likewise.
550         (ix86_gen_add3): Likewise.
551         (ix86_gen_sub3): Likewise.
552         (ix86_gen_sub3_carry): Likewise.
553         (ix86_gen_one_cmpl2): Likewise.
554         (ix86_gen_monitor): Likewise.
555         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
556         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
557         ix86_gen_one_cmpl2 and ix86_gen_monitor.
558         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
559         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
560         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
561         (ix86_expand_epilogue): Updated.
562         (print_operand): Handle integer register operand for 'z'.
563         (ix86_expand_strlensi_unroll_1): Likewise.
564         (ix86_expand_strlen): Likewise.
565         (ix86_expand_builtin): Likewise.
566         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
567         mov{q}/mov{l} and add{q}/add{l}.
568
569 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
570
571         * config/i386/i386.md (P): New mode iterator.
572         (SFmode push_operand splitter): Macroize DImode and SImode pushes
573         using P mode iterator.
574         (DFmode push_operand splitter): Ditto.
575         (XFmode push_operand splitter): Ditto.
576         (DFmode float_extend SFmode push_operand splitter): Ditto.
577         (XFmode float_extend SFmode push_operand splitter): Do not generate
578         SImode pushes for 64bit target.  Macroize Dimode and SImode
579         pushes using P mode iterator.
580         (XFmode float_extend DFmode push_operand splitter): Ditto.
581
582 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
583
584         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
585         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
586         prototype.
587         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
588         return type to int.
589         (ix86_call_abi_override): Remove check for call_used_regs.
590
591 2008-06-03  Richard Guenther  <rguenther@suse.de>
592
593         * tree-ssa-structalias.c (find_func_aliases): Add constraints
594         for the lhs of calls if the return type contains pointers.
595
596 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
597
598         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
599         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
600         * function.c (allocate_struct_function): Use of
601         OVERRIDE_ABI_FORMAT.
602         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
603         of cfun and DEFAULT_ABI to deceide abi mode.
604         (DEFAULT_ABI): New.
605         (REG_PARM_STACK_SPACE): Removed.
606         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
607         (STACK_BOUNDARY): Use default target to deceide stack boundary.
608         * config/i386/i386-protos.h (ix86_cfun_abi): New.
609         (ix86_function_abi): Likewise.
610         (ix86_function_type_abi): Likewise.
611         (ix86_call_abi_override): Likewise.
612         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
613         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
614         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
615         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
616         specific defines.
617         (X86_64_REGPARM_MAX): New.
618         (X86_64_SSE_REGPARM_MAX): New.
619         (X64_REGPARM_MAX): New.
620         (X64_SSE_REGPARM_MAX): New.
621         (X86_32_REGPARM_MAX): New.
622         (X86_32_SSE_REGPARM_MAX): New.
623         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
624         (ix86_function_regparm): Handle user calling abi.
625         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
626         by DEFAULT_ABI versus SYSV_ABI check.
627         (ix86_reg_parm_stack_space): New.
628         (ix86_function_type_abi): New.
629         (ix86_call_abi_override): New.
630         (ix86_function_abi): New.
631         (ix86_cfun_abi): New.
632         (init_cumulative_args): Call abi specific initialization.
633         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
634         (function_arg_64): Extend SSE_REGPARM_MAX check.
635         (function_arg (): Remove TARGET_64BIT_MS_ABI.
636         (ix86_pass_by_reference): Likewise.
637         (ix86_function_value_regno_p): Likewise.
638         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
639         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
640         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
641         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
642         (setup_incoming_varargs_64): Adjust regparm for call abi.
643         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
644         (ix86_va_start): Likewise.
645         (ix86_gimplify_va_arg): Likewise.
646         (ix86_expand_prologue): Likewise.
647         (output_pic_addr_const): Likewise.
648         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
649         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
650         (x86_output_mi_thunk): Likewise.
651         (x86_function_profiler): Likewise.
652         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
653         (SYSV_ABI, MS_ABI): New constants.
654         (DEFAULT_ABI): New.
655         (init_regs): Add prototype of function in regclass.c file.
656         (OVERRIDE_ABI_FORMAT): New.
657         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
658         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
659         (OUTGOING_REG_PARM_STACK_SPACE): New.
660         (ix86_reg_parm_stack_space): New prototype.
661         (CUMULATIVE_ARGS): Add call_abi member.
662         (machine_function): Add call_abi member.
663         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
664         by DEFAULT_ABI compare to MS_ABI.
665
666 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
667
668         PR target/34879
669         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
670         (avr_builtin_setjmp_frame_value): New function.
671         * config/avr/avr.md (nonlocal_goto_receiver): Define.
672         (nonlocal_goto): Define.
673
674 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
675
676         * config/mips/mips.c (mips_emit_loadgp): Return early if
677         there is nothing do to, otherwise emit a blockage if
678         !TARGET_EXPLICIT_RELOCS || crtl->profile.
679         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
680
681 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
682
683         * configure.ac: Drop unneeded backslash ending up in config.in.
684         * acinclude.m4: Likewise.
685         * config.in: Regenerate.
686
687 2008-05-26  Jan Hubicka  <jh@suse.cz>
688
689         * predict.c (maybe_hot_frequency_p): Break out of...
690         (maybe_hot_bb_p): ... here.
691         (maybe_hot_edge_p): New.
692         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
693         * basic-block.h (maybe_hot_edge_p): Declare.
694
695 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
696
697         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
698         (*cmpfp_<mode>_cc): Ditto.
699         (*fp_jcc_8<mode>_387): Ditto.
700         (*fop_<MODEF:mode>_2_i387): Ditto.
701         (*fop_<MODEF:mode>_3_i387): Ditto.
702         (*fop_xf_2_i387): Ditto.
703         (*fop_xf_3_i387): Ditto.
704
705 2008-06-02  Tomas Bily  <tbily@suse.cz>
706
707         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
708
709 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
710
711         * config/mips/mips.c (mips_valid_offset_p): New function.
712         (mips_valid_lo_sum_p): Likewise.
713         (mips_classify_address): Use them.
714         (mips_force_address): New function.
715         (mips_legitimize_address): Use it.
716         * config/mips/mips.md (MOVE128): New mode iterator.
717         (movtf): Require TARGET_64BIT.  Remove empty strings.
718         (*movtf_internal): Rename to...
719         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
720         of "R" and use {,fp}{load,store} attributes instead of "multi".
721         Use a separate define_split.
722         (*movtf_mips16): New pattern.
723
724 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
725
726         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
727         * config/mips/mips.c (mips_expand_before_return): New function.
728         (mips_expand_epilogue): Call it.
729         * config/mips/mips.md (return): Turn into a define_expand.
730         (*return): New insn.
731
732 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
733
734         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
735         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
736         functions.  Do not emit uses and clobbers of CONCATs; individually
737         use and clobber their operands.
738         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
739         gen_clobber, emit_use and gen_use.
740         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
741         (expand_builtin_return): Likewise.
742         * cfgbuild.c (count_basic_blocks): Likewise.
743         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
744         * explow.c (emit_stack_restore): Likewise.
745         * expmed.c (extract_bit_field_1): Likewise.
746         * expr.c (convert_move, emit_move_complex_parts): Likewise.
747         (emit_move_multi_word, store_constructor): Likewise.
748         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
749         (thread_prologue_and_epilogue_insns): Likewise.
750         * lower-subreg.c (resolve_simple_move): Likewise.
751         * optabs.c (widen_operand, expand_binop): Likewise.
752         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
753         * reload.c (find_reloads): Likewise.
754         * reload1.c (eliminate_regs_in_insn): Likewise.
755         * stmt.c (expand_nl_goto_receiver): Likewise.
756         * config/alpha/alpha.md (builtin_longjmp): Likewise.
757         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
758         * config/arm/arm.c (arm_load_pic_register): Likewise.
759         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
760         * config/arm/arm.md (untyped_return): Likewise.
761         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
762         * config/avr/avr.c (expand_prologue): Likewise.
763         * config/bfin/bfin.c (do_unlink): Likewise.
764         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
765         * config/cris/cris.c (cris_expand_prologue): Likewise.
766         * config/darwin.c (machopic_indirect_data_reference): Likewise.
767         (machopic_legitimize_pic_address): Likewise.
768         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
769         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
770         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
771         (ix86_expand_convert_uns_didf_sse): Likewise.
772         (ix86_expand_vector_init_general): Likewise.
773         * config/ia64/ia64.md (eh_epilogue): Likewise.
774         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
775         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
776         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
777         (config/iq2000/iq2000.c): Likewise.
778         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
779         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
780         (builtin_longjmp): Likewise.
781         * config/mn10300/mn10300.md (call, call_value): Likewise.
782         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
783         * config/pdp11/pdp11.md (abshi2): Likewise.
784         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
785         * config/s390/s390.c (s390_emit_prologue): Likewise.
786         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
787         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
788         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
789         * config/sh/sh.c (prepare_move_operands): Likewise.
790         (output_stack_adjust, sh_expand_epilogue): Likewise.
791         (sh_set_return_address, sh_expand_t_scc): Likewise.
792         * config/sparc/sparc.c (load_pic_register): Likewise.
793         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
794         * config/spu/spu.c (spu_expand_epilogue): Likewise.
795         * config/v850/v850.c (expand_epilogue): Likewise.
796
797 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
798
799         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
800         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
801         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
802         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
803         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
804         stack pointer register.
805         (output_movhi): Remove code for interrupt specific writing to the 
806         stack pointer register.
807
808 2008-05-31  Richard Guenther  <rguenther@suse.de>
809
810         PR tree-optimization/34244
811         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
812         (tree_expr_nonzero_warnv_p): Likewise.
813         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
814         ssa_name_nonnegative_p.
815         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
816         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
817         not tree_expr_nonzero_warnv_p.
818
819         PR tree-optimization/36262
820         Revert
821         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
822
823         PR tree-optimization/34244
824         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
825         (record_numbers_of_iterations): New function.
826         (execute_vrp): Cache the numbers of iterations of loops.
827         * tree-scalar-evolution.c (scev_reset_except_niters):
828         New function.
829         (scev_reset): Use scev_reset_except_niters.
830         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
831
832 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
833
834         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
835         __WORKAROUND_RETS when appropriate.
836
837 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
838
839         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
840         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
841         mode iterator.
842         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
843         *fop_df_comm_sse insn patterns using MODEF mode iterator.
844         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
845         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
846         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
847         *fop_df_1_mixed insn patterns using MODEF mode iterator.
848         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
849         *fop_df_1_sse insn patterns using MODEF mode iterator.
850         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
851         *fop_df_1_i387 insn patterns using MODEF mode iterator.
852         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
853         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
854         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
855         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
856         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
857         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
858         (*fop_xf_4_i387): Use <MODE> for mode attribute.
859         (*fop_xf_5_i387): Ditto.
860         (*fop_xf_6_i387): Ditto.
861
862 2008-05-30  Richard Guenther  <rguenther@suse.de>
863
864         * builtins.c (build_string_literal): Avoid generating
865         a non-gimple_val result.
866
867 2008-05-30  DJ Delorie  <dj@redhat.com>
868
869         * exec-tool.in: Use an environment variable (private) instead of a
870         file (shared) as a semaphore, so as to not break parallel builds.
871
872 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
873
874         * optabs.c (maybe_encapsulate_block): Remove.
875         (emit_libcall_block): Adjust accordingly.
876         * optabs.h (maybe_encapsulate_block): Remove prototype.
877
878         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
879         Don't use maybe_encapsulate_block.
880
881 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
882
883         * config/rs6000/rs6000.c (rs6000_legitimize_address,
884         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
885         rtx is a SYMBOL_REF before calling get_pool_constant.
886
887 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
888
889         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
890
891 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
892
893         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
894         rather than OS names to choose INO_T_EQ definition.
895         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
896         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
897
898 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
899
900         PR target/36348
901         * config/darwin-f.c: New.
902         * config/t-darwin: Added rule to build darwin-f.o.
903         * config.gcc: Defined new variable, fortran_target_objs.
904         (*-*-darwin*): Set fortran_target_objs.
905         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
906         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
907         * configure: Regenerated.
908
909 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
910
911         PR target/35771
912         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
913         canonical type if needed.
914
915 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
916
917         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
918
919 2008-05-29  Richard Guenther  <rguenther@suse.de>
920
921         PR tree-optimization/36343
922         PR tree-optimization/36346
923         PR tree-optimization/36347
924         * tree-flow.h (clobber_what_p_points_to): Declare.
925         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
926         pointed-to variable is dereferenced is irrelevant to whether
927         the pointer can access the pointed-to variable.
928         (clobber_what_p_points_to): New function.
929         * tree-ssa-alias.c (set_initial_properties): Use it.
930         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
931         call clobber check for NMTs.
932
933 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
934         
935         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
936         for printing gcov_type.
937
938 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
939
940         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
941         and the eh region information.
942         * value-prof.c (gimple_move_stmt_histograms): New function.
943         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
944
945 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
946
947         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
948
949 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
950
951         * value-prof.c (tree_ic_transform): Print counts.
952         * tree-profile.c (tree_gen_ic_func_profiler):
953         Clear __gcov_indreict_call_callee variable to avoid misattribution
954         of the profile.
955
956 2008-05-28  Rafael Espindola  <espindola@google.com>
957
958         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
959         invalid sharing.
960
961 2008-05-28  Richard Guenther  <rguenther@suse.de>
962
963         PR tree-optimization/36339
964         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
965         and clobbering code out of the loop.
966
967 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
968
969         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
970         letters defined.
971
972         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
973         s390_contiguous_bitmask_p, s390_symref_operand_p,
974         s390_check_symref_alignment, s390_reload_larl_operand,
975         s390_reload_symref_address): New functions.
976         (s390_branch_condition_mnemonic): Support compare and branch
977         instructions.
978         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
979         and 'W' constraints.
980         (s390_secondary_reload): Add secondary reloads for unaligned
981         symbol refs or symbol refs to floating point or QI/TI mode
982         integer values.
983         (legitimate_address_p): Accept symbol references as addresses.
984         (s390_expand_insv): Use rotate and insert selected bits
985         instruction for insv when building for z10.
986         (print_operand_address): Handle symbol ref addresses.
987         (print_operand): Output modifier 'c' added for signed byte values.
988         (s390_encode_section_info): Mark symbol refs with
989         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
990
991         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
992         (length attribute): RRF, RRR have 4 byte length.
993         (FPALL, INTALL): New mode iterators added.
994         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
995         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
996         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
997         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
998         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
999         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1000         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1001         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1002         instructions.
1003         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1004         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1005         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1006         reload<INTALL:mode><P:mode>_toreg_z10,
1007         reload<FPALL:mode><P:mode>_tomem_z10,
1008         reload<FPALL:mode><P:mode>_toreg_z10,
1009         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1010         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1011         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1012         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1013         definition.
1014         (movmem, clrmem, cmpmem): New splitters added.
1015
1016         * config/s390/predicates.md (larl_operand): Use
1017         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1018         SYMBOL_REF_ALIGN1_P.
1019         (s390_signed_integer_comparison,
1020         s390_unsigned_integer_comparison): New predicates.
1021
1022         * config/s390/s390-protos.h (s390_check_symref_alignment,
1023         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1024         s390_reload_symref_address,
1025         s390_compare_and_branch_condition_mask): Prototypes added.
1026
1027         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1028         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1029         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1030
1031 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1032
1033         * config/s390/s390.c (z10_cost): New cost function for z10.
1034         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1035         (s390_issue_rate): Adjust issue rate for z10.
1036         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1037         (processor_flags): Add PF_Z10.
1038         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1039         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1040         * gcc/config.gcc: Add z10.
1041
1042 2008-05-28  Richard Guenther  <rguenther@suse.de>
1043
1044         PR tree-optimization/36291
1045         * tree-flow. h (struct gimple_df): Remove var_anns member.
1046         * tree-flow-inline.h (gimple_var_anns): Remove.
1047         (var_ann): Simplify.
1048         * tree-dfa.c (create_var_ann): Simplify.
1049         (remove_referenced_var): Clear alias info from var_anns of globals.
1050         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1051         (delete_tree_ssa): Clear alias info from var_anns of globals.
1052         Do not free var_anns.
1053         (var_ann_eq): Remove.
1054         (var_ann_hash): Likewise.
1055
1056 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1057
1058         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1059         and loongson2f entries.
1060         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1061         * config/mips/mips.h (processor_type): Add Loongson-2E
1062         and Loongson-2F entries.
1063         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1064         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1065         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1066         * doc/invoke.texi (MIPS Options): Document loongson2e
1067         and loongson2f processor names.
1068
1069 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1070
1071         PR target/35767
1072         PR target/35771
1073         * config/i386/i386.c (ix86_function_arg_boundary): Use
1074         alignment of canonical type.
1075         (ix86_expand_vector_move): Check unaligned memory access for
1076         all SSE modes.
1077
1078 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1079
1080         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1081         Moved to the front of file.
1082
1083 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1084             H.J. Lu  <hongjiu.lu@intel.com>
1085
1086         * dwarf2out.c (current_fde): New.
1087         (add_cfi): Use it.
1088         (lookup_cfa:): Likewise.
1089         (dwarf2out_end_epilogue): Likewise.
1090         (dwarf2out_note_section_used): Likewise.
1091
1092 2008-05-27  Michael Matz  <matz@suse.de>
1093
1094         PR c++/27975
1095         * c.opt (Wenum-compare): New warning option.
1096         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1097
1098 2008-05-27  Michael Matz  <matz@suse.de>
1099
1100         PR middle-end/36326
1101         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1102         non-BLKmode types.
1103         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1104         into memory as tail calls.
1105
1106 2008-05-27  Richard Guenther  <rguenther@suse.de>
1107
1108         PR tree-optimization/36339
1109         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1110         pointers cause all addressable variables to be call clobbered.
1111
1112 2008-05-27  Richard Guenther  <rguenther@suse.de>
1113
1114         PR tree-optimization/36245
1115         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1116
1117 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1118
1119         * config/s390/s390.md: Replace all occurences of the 'm'
1120         constraint with 'RT'.
1121
1122 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1123
1124         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1125         definitions added.
1126         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1127         "*movdi_64".
1128         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1129         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1130         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1131
1132 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1133
1134         * reload.c: (find_reloads): Skip alternatives according to the
1135         "enabled" attribute. Constify the constraint variable.
1136         * recog.c (get_attr_enabled): Add default implementation.
1137         (extract_insn): Set the alternative_enabled_p array
1138         in the recog_data struct.
1139         (preprocess_constraints, constrain_operands): Skip
1140         alternatives according to the "enabled" attribute
1141         * recog.h (struct recog_data): New field alternative_enabled_p.
1142         (skip_alternative): New inline function.
1143         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1144         (record_reg_classes): Skip alternative according to the
1145         "enabled" attribute.
1146
1147         * doc/md.texi: Add documention for the "enabled" attribute.
1148
1149 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1150
1151         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1152         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1153         constraint with TARGET_MEM_CONSTRAINT.
1154         * recog.c (asm_operand_ok, preprocess_constraints,
1155         constrain_operands): Likewise.
1156         * regclass.c (record_reg_classes): Likewise.
1157         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1158         * reload1.c (maybe_fix_stack_asms): Likewise.
1159         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1160         * recog.h: Adjust comment.
1161         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1162         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1163         * doc/md.texi: Add a note to description of 'm' constraint.
1164         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1165
1166 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1167
1168         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1169         that the bitfield is of integral type before testing its precision.
1170
1171 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1172             Sa Liu  <saliu@de.ibm.com> 
1173
1174         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1175         __modti3, __udivti3, __umodti3 and __udivmodti4.
1176         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1177         that implement TImode mul and div functions.
1178         * config/spu/multi3.c: New. Implement __multi3.
1179         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1180         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1181         functions on SPU.
1182
1183 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1184
1185         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1186         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1187         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1188         tls_sysv_suffix): New mode and mode attribute iterators.
1189         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1190         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1191         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1192         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1193         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1194         iterators.
1195
1196 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1197
1198         PR tree-optimization/36329
1199         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1200         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1201         * cgraphbuild.c (initialize_inline_failed): Use the latter
1202         macro in lieu of the former.
1203         * ipa-inline.c (cgraph_mark_inline): Likewise.
1204         (cgraph_decide_inlining_of_small_function): Likewise.
1205         (cgraph_decide_inlining): Likewise.
1206         (cgraph_decide_inlining_incrementally): Likewise.
1207
1208 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1209             Anatoly Sokolov  <aesok@post.ru>
1210
1211         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1212         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1213         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1214         optimization for 'avr6' architecture.
1215
1216 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1217
1218         PR target/34932
1219         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1220
1221 2008-05-26  Richard Guenther  <rguenther@suse.de>
1222
1223         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1224         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1225
1226 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1227
1228         PR middle-end/36253
1229         * caller-save.c (insert_restore): Verify alignment of spill space.
1230         (insert_save): Likewise.
1231         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1232         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1233         (STACK_SLOT_ALIGNMENT): Likewise.
1234         * function.c (LOCAL_ALIGNMENT): Removed.
1235         (get_stack_local_alignment): New.
1236         (assign_stack_local): Use it.  Set alignment on stack slot.
1237         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1238         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1239         (STACK_SLOT_ALIGNMENT): New.
1240         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1241         stack slot in XFmode.
1242
1243         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1244
1245 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1246
1247         PR/36321
1248         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1249         argument operand in rax isn't removed.
1250
1251 2008-05-26  Richard Guenther  <rguenther@suse.de>
1252
1253         PR middle-end/36300
1254         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1255         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1256
1257 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1258
1259         PR bootstrap/36331
1260         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1261
1262 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1263
1264         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1265         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1266
1267 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1268
1269         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1270         build a trampoline if we don't want one.
1271         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1272         return zero for nested functions if we don't want a trampoline.
1273
1274 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1275
1276         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1277
1278 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1279
1280         PR fortran/18428
1281         * c.opt: Removed undocumented option '-lang-fortran'.
1282         * c-common.h: Removed global variable 'lang_fortran'.
1283         * c-opts.c (c_common_handle_option): Removed code to handle
1284         option '-lang-fortran'. Updated includes.
1285         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1286         definition of '__GFORTRAN__'.
1287         (define__GNUC__): Reimplemented to use BASEVER and
1288         cpp_define_formatted.
1289         (builtin_define_with_value_n): Removed.
1290         * c-incpath.h: Renamed to ...
1291         * incpath.h: ... this.
1292         * c-incpath.c: Renamed to ...
1293         * incpath.c: ... this. Updated includes.
1294         * fix-header.c: Updated includes.
1295         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1296         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1297         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1298
1299 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1300
1301         * tree.h: Update the table of flags used on tree nodes.
1302         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1303         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1304         (FORCED_LABEL): Add access check.
1305         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1306         (ASM_INPUT_P): Likewise.
1307         (ASM_VOLATILE_P): Likewise.
1308         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1309         (OMP_SECTION_LAST): Access private_flag directly.
1310         (OMP_RETURN_NOWAIT): Likewise.
1311         (OMP_PARALLEL_COMBINED): Likewise.
1312         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1313         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1314         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1315         deprecated_flag directly.
1316
1317 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1318
1319         * final.c (frame_pointer_needed): Removed.
1320         * flags.h (frame_pointer_needed): Likewise.
1321
1322         * function.h (rtl_data): Add frame_pointer_needed.
1323         (frame_pointer_needed): New.
1324
1325 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1326
1327         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1328
1329 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1330
1331         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1332         SRC is a REG.
1333
1334 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1335
1336         * c-common.c (strip_array_types): Move function to..
1337         * tree.c: ..here.
1338         (get_inner_array_type): Delete.
1339         * c-common.h (strip_array_types): Move declaration to..
1340         * tree.h: ..here.
1341         (get_inner_array_type): Delete.
1342         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1343         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1344         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1345         * config/pa/pa.c (emit_move_sequence): Likewise.
1346
1347 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1348
1349         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1350         attribute to 34.
1351
1352 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1353
1354         * function.c: Include target hook for nonlocal_goto frame value.
1355
1356 2008-05-24  Richard Guenther  <rguenther@suse.de>
1357
1358         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1359         variable can be only accessed through a pointer or a union.
1360
1361 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1362
1363         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1364         * doc/extend.texi: Likewise.
1365
1366 2008-05-23  DJ Delorie  <dj@redhat.com>
1367
1368         * config/m32c/jump.md (untyped_call): Add.
1369
1370         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1371         for A24 to PSImode.
1372         (m32c_address_cost): Detail costs for indirect offsets.
1373
1374 2008-05-23  Rafael Espindola  <espindola@google.com>
1375
1376         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1377         if a node is a SUBREG.
1378         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1379         is a SUBREG.
1380
1381 2008-05-23  Paul Brook  <paul@codesourcery.com>
1382             Carlos O'Donell  <carlos@codesourcery.com>
1383
1384         * doc/extend.texi: Clarify use of __attribute__((naked)).
1385         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1386         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1387         * function.c (use_register_for_decl): Use
1388         targetm.calls.allocate_stack_slots_for_args.
1389         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1390         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1391         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1392
1393 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1394
1395         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1396
1397 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1398
1399         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1400         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1401         is only rounded once.
1402
1403 2008-05-23  Richard Guenther  <rguenther@suse.de>
1404
1405         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1406
1407 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1408             Jakub Jelinek  <jakub@redhat.com>
1409
1410         PR target/36079
1411         * configure.ac: Handle --enable-cld.
1412         * configure: Regenerated.
1413         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1414         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1415         (ix86_current_function_needs_cld): New define.
1416         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1417         (cld): New isns pattern.
1418         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1419         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1420         * config/i386/i386.opt (mcld): New option.
1421         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1422         TARGET_CLD and ix86_current_function_needs_cld.
1423         (override_options): Use -mcld by default for 32-bit code if
1424         USE_IX86_CLD.
1425
1426         * doc/install.texi (Options specification): Document --enable-cld.
1427         * doc/invoke.texi (Machine Dependent Options)
1428         [i386 and x86-64 Options]: Add -mcld option.
1429         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1430
1431 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1432         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1433         (return_in_memory_64): Likewise.
1434         (return_in_memory_ms_64): Likewise.
1435
1436 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1437
1438         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1439         * builtins.c (fold_builtin_fpclassify): New.
1440         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1441         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1442         * c-common.c (handle_type_generic_attribute): Adjust to accept
1443         fixed arguments before an elipsis.
1444         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1445         * doc/extend.texi: Document __builtin_fpclassify.
1446
1447 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1448
1449         * omp-low.c (gate_expand_omp_ssa): Remove.
1450         (pass_expand_omp_ssa): Remove.
1451         (gate_expand_omp): Do not check for flag_openmp_ssa.
1452         * common.opt (-fopenmp-ssa): Remove.
1453         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1454
1455 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1456
1457         * config/sh/sh.opt (mfixed-range): New option.
1458         * config/sh/sh-protos.h (sh_fix_range): Declare.
1459         * config/sh/sh.c (sh_fix_range): New function.
1460         * config/sh/sh.h (sh_fixed_range_str): Declare.
1461         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1462         is not empty.
1463         * doc/invoke.texi (SH Options): Document -mfixed-range.
1464
1465 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1466
1467         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1468         it before the redeclaration.
1469
1470 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1471
1472         * config/avr/avr.c (get_sequence_length): Add new function.
1473         (expand_prologue, expand_epilogue): Remove duplicate code.
1474
1475 2008-05-22  Rafael Espindola  <espindola@google.com>
1476
1477         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1478         sharing.
1479
1480 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1481
1482         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1483         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1484
1485         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1486         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1487         (vect_update_misalignment_for_peel): Likewise.
1488         (vector_alignment_reachable_p): Likewise.
1489         * tree-vect-transform.c (vectorizable_load): Likewise.
1490         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1491         (get_vectype_for_scalar_type): Pass mode of scalar_type
1492         to UNITS_PER_SIMD_WORD.
1493
1494         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1495         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1496         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1497         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1498         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1499
1500 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1501
1502         PR tree-optimization/36293
1503         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1504         if the first load must be skipped because of a gap.
1505
1506 2008-05-22  Richard Guenther  <rguenther@suse.de>
1507
1508         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1509         more cases of offset disambiguation that is possible if
1510         strict-aliasing rules apply.
1511         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1512         for basic offset and type-based disambiguation.
1513
1514 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1515
1516         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1517         ix86_expand_vector_set on V16QImode for SSE4.1.
1518
1519 2008-05-21  Tom Tromey  <tromey@redhat.com>
1520
1521         * c.opt (Wimport): Mark as undocumented.
1522         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1523         -Wno-import.
1524         (Warning Options): Likewise.
1525         * doc/cppopts.texi: Don't mention -Wimport.
1526
1527 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1528
1529         PR tree-optimization/36287
1530         PR tree-optimization/36286
1531         * lambda-code.c (build_access_matrix): Do not use the loop->num
1532         for computing the number of induction variables: use the loop depth
1533         instead.
1534
1535 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1536
1537         PR/36280
1538         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1539         option -f(no-)leading-underscore.
1540
1541 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1542
1543         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1544         GET_MODE_NUNITS (mode).
1545
1546 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1547
1548         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1549         (-mmulhw): Add 464 to description.
1550         (-mdlmzb): Likewise.
1551         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1552         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1553         464fp entries.
1554         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1555         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1556         * config/rs6000/rs6000.md: Update comments for 464.
1557
1558 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1559
1560         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1561
1562 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1563
1564         * config/i386/sse.md (vec_extractv4sf): Removed.
1565         (vec_extractv2df): Likewise.
1566         (vec_extractv2di): Likewise.
1567         (vec_extractv4si): Likewise.
1568         (vec_extractv8hi): Likewise.
1569         (vec_extractv16qi): Likewise.
1570         (vec_extract<mode>): New.
1571
1572 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1573
1574         * config/i386/sse.md (vec_setv4sf): Removed.
1575         (vec_setv2df): Likewise.
1576         (vec_setv2di): Likewise.
1577         (vec_setv4si): Likewise.
1578         (vec_setv8hi): Likewise.
1579         (vec_setv16qi): Likewise.
1580         (vec_set<mode>): New.
1581
1582 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1583
1584         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1585         goto for vec_concat and vec_interleave.
1586
1587 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1588
1589         * config/i386/sse.md (vec_initv4sf): Removed.
1590         (vec_initv2df): Likewise.
1591         (vec_initv2di): Likewise.
1592         (vec_initv4si): Likewise.
1593         (vec_initv8hi): Likewise.
1594         (vec_initv16qi): Likewise.
1595         (vec_init<mode>): New.
1596
1597 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1598
1599         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1600
1601 2008-05-21  Tom Tromey  <tromey@redhat.com>
1602
1603         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1604         (zone_find_object_offset): Likewise.
1605         (gt_ggc_m_S): Likewise.
1606         (highest_bit): Likewise.
1607         * ggc-page.c (gt_ggc_m_S): New function.
1608         * stringpool.c (string_stack): Remove.
1609         (init_stringpool): Update.
1610         (ggc_alloc_string): Use ggc_alloc.
1611         (maybe_delete_ident): New function.
1612         (ggc_purge_stringpool): Likewise.
1613         (gt_ggc_m_S): Remove.
1614         * ggc-common.c (ggc_protect_identifiers): New global.
1615         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1616         ggc_protect_identifiers.
1617         * ggc.h (ggc_protect_identifiers): Declare.
1618         (gt_ggc_m_S): Update.
1619         (ggc_purge_stringpool): Declare.
1620         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1621         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1622         special case.
1623         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1624
1625 2008-05-21  David S. Miller  <davem@davemloft.net>
1626
1627         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1628         tmake_file.
1629
1630 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1631
1632         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1633         once finished.
1634
1635 2008-05-20  David Daney  <ddaney@avtrex.com>
1636
1637         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1638         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1639         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1640         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1641         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1642         (atomic_hiqi_op): New define_code_iterator.
1643         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1644         mips_expand_compare_and_swap_12.
1645         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1646         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1647         (sync_<optab><mode>, sync_old_<optab><mode>,
1648         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1649         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1650         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1651         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1652         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1653         (test_and_set_12): New insn.
1654         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1655         sync_new_<optab><mode>, sync_old_nand<mode>,
1656         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1657         clobber to operand 0 for SI and DI mode insns.
1658         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1659         mips_gen_fn_4): New typedefs.
1660         (mips_gen_fn_ptrs): Define new union type.
1661         (mips_expand_compare_and_swap_12): Remove declaration.
1662         (mips_expand_atomic_qihi): Declare function.
1663         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1664         (mips_expand_atomic_qihi): ... this.  Use new generator function
1665         parameter.
1666         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1667         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1668         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1669         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1670         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1671         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1672         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1673         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1674         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1675         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1676         New macros.
1677
1678 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1679
1680         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1681         the missing break.
1682
1683 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1684
1685         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1686         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1687         (avr_attribute_table): Add 'OS_main' function attribute.
1688         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1689         functions with 'OS_main' attribute.
1690
1691 2008-05-20  Richard Guenther  <rguenther@suse.de>
1692
1693         PR tree-optimization/35204
1694         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1695         helper, split out from ...
1696         (DFS): ... here.  Make the DFS walk non-recursive.
1697
1698 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1699             Jan Sjodin  <jan.sjodin@amd.com>
1700
1701         PR tree-optimization/36181
1702         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1703         (parallelize_loops): Don't parallelize when the loop has vector
1704         phi nodes.
1705
1706 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1707             Sebastian Pop  <sebastian.pop@amd.com>
1708
1709         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1710         matrix, and never look at the tree representation of the memory
1711         accesses.
1712         (linear_transform_loops): Computes parameters and access matrices.
1713         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1714         when fails.
1715         (access_matrix_get_index_for_parameter): New.
1716         * tree-data-ref.h (struct access_matrix): New.
1717         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1718         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1719         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1720         am_vector_index_for_loop): New.
1721         (struct data_reference): Add field access_matrix.
1722         (DR_ACCESS_MATRIX): New.
1723         (compute_data_dependences_for_loop): Update declaration.
1724         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1725         * lambda.h (lambda_vector_vec_p): Declared.
1726         * lambda-code.c: Depend on pointer-set.h.
1727         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1728         av_for_af_base, av_for_af, build_access_matrix,
1729         lambda_compute_access_matrices): New.
1730         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1731
1732 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1733
1734         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1735         $SOURCEDIR/include.
1736
1737 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1738             Sebastian Pop  <sebastian.pop@amd.com>
1739
1740         PR tree-optimization/36206
1741         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1742         FOLD_CONVERSIONS.
1743         (instantiate_scev_1): Rename flags to fold_conversions.
1744         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1745         outeside instantiation_loop.
1746         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1747         (evolution_function_is_affine_or_constant_p): Removed.
1748         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1749         instantiate_scev.
1750         (analyze_siv_subscript): Pass in the loop nest number.
1751         Call evolution_function_is_affine_in_loop instead of 
1752         evolution_function_is_affine_p.
1753         (analyze_overlapping_iterations): Pass in the loop nest number.
1754
1755 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1756             Sebastian Pop  <sebastian.pop@amd.com>
1757
1758         PR tree-optimization/36206
1759         * tree-chrec.h (chrec_fold_op): New.
1760         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1761         and other trees.
1762
1763 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1764
1765         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1766         (DIRS_EQ): New.
1767         (remove_duplicates): Do not set inode on non-inode systems.
1768         Use DIRS_EQ.
1769
1770 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1771
1772         * config.gcc (tm_file): Update comments about relative pathnames.
1773
1774 2008-05-20  Richard Guenther  <rguenther@suse.de>
1775
1776         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1777         * tree-ssa-sccvn.c (process_scc): Likewise.
1778         * tree-ssa-sink.c (execute_sink_code): Likewise.
1779         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1780         * tree-vrp.c (process_assert_insertions): Likewise.
1781         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1782         (perform_tree_ssa_dce): Likewise.
1783         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1784         (dump_dominator_optimization_stats): Likewise.
1785         * tree-vectorizer.c (vectorize_loops): Likewise.
1786
1787 2008-05-20  Richard Guenther  <rguenther@suse.de>
1788
1789         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1790
1791 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1792
1793         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1794         (ix86_i386elf_return_in_memory): Likewise.
1795         (ix86_i386interix_return_in_memory): Likewise.
1796         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1797         (SUBTARGET_RETURN_IN_MEMORY): New.
1798         * config/i386/i386elf.h: Likewise.
1799         * config/i386/ptx4-i.h: Likewise.
1800         * config/i386/sol2-10.h: Likewise.
1801         * config/i386/sysv4.h: Likewise.
1802         * config/i386/vx-common.h: Likewise.
1803         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1804         * config/i386/i386.c (ix86_return_in_memory): Made static and
1805         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1806         (ix86_i386elf_return_in_memory): Removed.
1807         (ix86_i386interix_return_in_memory): Removed.
1808         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1809         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1810
1811 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1812
1813         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1814
1815 2008-05-19  Xinliang David Li  <davidxl@google.com>
1816
1817         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1818         * opts.c: Ditto.
1819         * common.opt: Ditto.
1820         * doc/invoke.texi: Ditto.
1821
1822 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1823
1824         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1825         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1826
1827 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1828
1829         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1830         sizes of operand array from 8/4 to 4/2.
1831         (ix86_expand_vector_init_general): Change size of operand array
1832         from 32 to 16.  Remove op0, op1 and half_mode.
1833
1834 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1835
1836         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1837         (ix86_expand_vector_init_interleave): Likewise.
1838         (ix86_expand_vector_init_general): Use them.  Assert
1839         word_mode == SImode when n_words == 4.
1840
1841 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1842
1843         * config/i386/i386.c (ix86_secondary_reload): New static function.
1844         (TARGET_SECONDARY_RELOAD): New define.
1845         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1846         * config/i386/i386.md (reload_outqi): Remove.
1847
1848 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1849
1850         PR middle-end/35509
1851         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1852         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1853         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1854         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1855         (fold_builtin_1): Likewise.
1856         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1857         c-common.c (check_builtin_function_arguments): Handle
1858         BUILT_IN_ISINF_SIGN.
1859         * doc/extend.texi: Document __builtin_isinf_sign.
1860         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1861
1862 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1863
1864         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1865         EH cleanup at the end of the pass, search for those that have been
1866         turned into forwarder blocks and do the cleanup on their successor.
1867
1868 2008-05-18  Richard Guenther  <rguenther@suse.de>
1869
1870         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1871         pointers to sizetype and vice versa.
1872
1873 2008-05-18 Xinliang David Li   <davidxl@google.com>
1874
1875         * gcc/tree-ssa-dce.c: Coding style fix.
1876         (check_pow): Documentation comment. 
1877         (check_log): Documenation comment. Coding style fix.
1878         (is_unnecessary_except_errno_call): Ditto.
1879         (gen_conditions_for_pow): Ditto.
1880         (gen_conditions_for_log): Ditto.
1881         (gen_shrink_wrap_conditions): Ditto.
1882         (shrink_wrap_one_built_in_calls): Ditto.
1883         * gcc/doc/invoke.texi: Better documentation string.
1884         * ChangeLog: Fix wrong change log entries from 
1885         May 17 checkin on function call DCE.
1886
1887 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1888
1889         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1890
1891 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1892
1893         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1894         * df-problems.c (simulation routines): Fixed block comment to
1895         properly say how to add forwards scanning functions.
1896         
1897 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1898
1899         * tree-inline.c (setup_one_parameter): Remove dead code.
1900
1901 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1902
1903         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1904         a BIT_AND_EXPR only for an INTEGER_TYPE.
1905
1906 2008-05-17 Xinliang David Li   <davidxl@google.com>
1907
1908         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1909         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1910         functions to check for eliminating math functions that are pure 
1911         except for setting errno.
1912         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1913         general condition expressions for shrink-wrapping pow/log calls.
1914         (gen_shrink_wrap_conditions): Ditto.
1915         (shrink_wrap_one_built_in_call): Ditto.
1916         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1917         (mark_operand_necessary): If debugging, output if OP is necessary.
1918         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1919         unnecessary.
1920         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1921         opt level >= 2.
1922         * gcc/common.opt: New user flag -ftree-builtin-dce.
1923         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1924
1925 2008-05-16  David S. Miller  <davem@davemloft.net>
1926
1927         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1928         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1929
1930 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1931
1932         PR target/36246
1933         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1934
1935 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1936
1937         * ifcvt.c (dead_or_predicable): Rename
1938         df_simulate_one_insn_backwards to df_simulate_one_insn.
1939         * recog.c (peephole2_optimize): Ditto.
1940         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1941         Ditto.
1942         * df.h: Rename df_simulate_one_insn_backwards to
1943         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1944         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1945         scanning of defs and uses.
1946         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1947         (df_simulate_one_insn_forwards): Removed.
1948
1949 2008-05-16  Doug Kwan  <dougkwan@google.com>
1950
1951         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1952         QNaN & SNaN.
1953         (real_from_string): Handle NaNs and Inf as approriate.
1954
1955 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1956
1957         * doc/gty.texi (Source Files Containing Type Information): Note
1958         that headers should appear first in the gtfiles list.
1959
1960 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1961
1962         * tree.def (COND_EXEC): Properly documented this code.
1963
1964 2008-05-16  Diego Novillo  <dnovillo@google.com>
1965
1966         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1967         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1968         the new field.
1969
1970 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1971
1972         * tree-ssa-dse (max_stmt_uid): Removed.
1973         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1974         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1975         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1976         * function.h (cfun.last_stmt_uid): New field.
1977         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1978         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1979         New functions.
1980         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1981         (create_stmt_ann): Initialize the ann->uid field.
1982         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1983         with new calls.
1984         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1985
1986 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1987
1988         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1989         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1990         (init_empty_tree_cfg): Call it.
1991
1992 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1993
1994         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1995         Update all users.
1996
1997 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1998
1999         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2000         * tree-dump.c (dump_options): New verbose option.
2001         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2002         Add verbose dump.
2003         * tree-pass.h (TDF_VERBOSE): New dump flag.
2004         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2005         (tree-flow.h): Added include.
2006         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2007
2008 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2009
2010         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2011
2012         From Jie Zhang  <jie.zhang@analog.com>
2013         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2014         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2015         mcpu=bf561-none and mcpu=bf561-0.2.
2016         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2017         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2018         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2019         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2020         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2021         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2022         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2023         option.
2024         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2025         (cputype_selected): Remove.
2026         (bfin_handle_option): Don't use cputype_selected.
2027         (override_options): When no mcpu option, enable all workarounds.
2028         Don't use bfin_workarounds.
2029         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2030         processor type.
2031         (DEFAULT_CPU_TYPE): Don't define.
2032
2033 2008-05-16  Richard Guenther  <rguenther@suse.de>
2034
2035         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2036         on deletion of the last stmt.
2037
2038 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2039
2040         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2041         V8HImode for SSE2 and V16QImode for SSE4.1.
2042
2043 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2044
2045         * cgraph.h (compute_inline_parameters): Made public.
2046         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2047         variable_generate_summary, function_write_summary,
2048         variable_write_summary, variable_read_summary.  Added generate_summary,
2049         write_summary, read_summary.
2050         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2051         pass_ipa_inline.function_generate_summary, to
2052         compute_inline_parameters. 
2053         * ipa-inline.c (compute_inline_parameters): Made public and added
2054         node parameter.
2055         (compute_inline_parameters_for_current): New function.
2056         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2057         (inline_generate_summary): Removed parameter and made to loop over
2058         all cgraph nodes.
2059         (pass_ipa_inline): Updated for new IPA_PASS structure.
2060         * passes.c (execute_ipa_summary_passes): Now is called once per
2061         pass rather than once per node*pass.
2062         
2063 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2064
2065         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2066         avr_have_mul_p, avr_asm_only_p): Remove variables.
2067         (avr_override_options): Remove initialization of removed variables.
2068         (avr_file_start):  Convert removed variables to fields of 
2069         'struct base_arch_s *avr_current_arch'. 
2070         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2071         (AVR_HAVE_MUL): (Ditto.).
2072         (AVR_HAVE_MOVW): (Ditto.).
2073         (AVR_HAVE_LPMX): (Ditto.). 
2074         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2075         avr_asm_only_p): Remove declaration.
2076
2077 2008-05-15  Diego Novillo  <dnovillo@google.com>
2078
2079         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2080         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2081
2082 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2083
2084         PR middle-end/36194
2085         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2086         Don't call record_truncated_value from here.
2087         (record_truncated_value): Turn it into a for_each_rtx callback.
2088         (record_truncated_values): New function.
2089         (combine_instructions): Call note_uses with record_truncated_values.
2090         Change name of check_conversion to check_promoted_subreg. 
2091
2092 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2093
2094         * doc/sourcebuild.texi: Document support for torture tests.
2095
2096 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2097
2098         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2099         to alternative 4 of operand 2.
2100
2101 2008-05-15  Richard Guenther  <rguenther@suse.de>
2102
2103         * tree-pass.h (current_pass): Declare.
2104         (get_pass_for_id): Likewise.
2105         * passes.c (passes_by_id, passes_by_id_size): New globals.
2106         (set_pass_for_id): New function.
2107         (get_pass_for_id): Likewise.
2108         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2109         (execute_function_todo): Flush per function statistics.
2110         * toplev.c (compile_file): Init statistics.
2111         (general_init): Do early statistics initialization.
2112         (finalize): Finish statistics.
2113         * statistics.h (statistics_early_init): Declare.
2114         (statistics_init): Likewise.
2115         (statistics_fini): Likewise.
2116         (statistics_fini_pass): Likewise.
2117         (statistics_counter_event): Likewise.
2118         (statistics_histogram_event): Likewise.
2119         * statistics.c: New file.
2120         * Makefile.in (OBJS-common): Add statistics.o.
2121         (statistics.o): Add dependencies.
2122         * doc/invoke.texi (-fdump-statistics): Document.
2123
2124         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2125         (insert): Likewise.
2126         (execute_pre): Use statistics_counter_event.
2127         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2128         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2129
2130 2008-05-15  Diego Novillo  <dnovillo@google.com>
2131
2132         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2133
2134         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2135         * tree-ssa-alias.c (new_type_alias): Remove references to
2136         sub-variables from comment.
2137         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2138
2139 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2140
2141         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2142         attribute to 1 only for insertps alternative.
2143
2144 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2145
2146         * config/bfin/bfin.md (loadbytes): New pattern.
2147         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2148         (bfin_init_builtins): Initialize it.
2149         (bdesc_1arg): Add it.
2150
2151 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2152
2153         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2154         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2155         * testsuite/lib/target-supports.exp: Add
2156         check_effective_target_fortran_integer_16.
2157
2158 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2159
2160         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2161         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2162         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2163         (TARGET_RETURN_IN_MEMORY): Define.
2164
2165 2008-05-15  Richard Guenther  <rguenther@suse.de>
2166
2167         PR middle-end/36244
2168         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2169         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2170         represent unmodifiable vars.
2171
2172 2008-05-15  Richard Guenther  <rguenther@suse.de>
2173
2174         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2175         INDIRECT_REF and TARGET_MEM_REF.
2176         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2177         TARGET_MEM_REF.
2178
2179 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2180             H.J. Lu  <hongjiu.lu@intel.com>
2181
2182         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2183         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2184         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2185         insn alternatives.  Add missing alternatives.
2186         (*vec_concatv2di_rex64_sse4_1): Likewise.
2187         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2188         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2189         Require TARGET_SSE.
2190
2191 2008-05-15  Richard Guenther  <rguenther@suse.de>
2192
2193         PR tree-optimization/36009
2194         PR tree-optimization/36204
2195         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2196         (determine_invariantness_stmt): Record the loop a store is
2197         always executed in.
2198         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2199         dependency.
2200
2201 2008-05-15  Richard Guenther  <rguenther@suse.de>
2202
2203         PR tree-optimization/34330
2204         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2205         through the pointer will alias the SMT.
2206
2207 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2208
2209         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2210
2211 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2212
2213         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2214
2215 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2216             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2217
2218         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2219         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2220         (vashl_optab): New optab for vector/vector shifts.
2221         (vashr_optab): Ditto.
2222         (vlshr_optab): Ditto.
2223         (vrotl_optab): Ditto.
2224         (vrotr_optab): Ditto.
2225         (optab_subtype): New enum for optab_for_tree_code call.
2226         (optab_for_tree_code): Add enum optab_subtype argument.
2227
2228         * optabs.c (optab_for_tree_code): Take an additional argument to
2229         distinguish between a vector shift by a scalar and vector shift by
2230         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2231         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2232         vector shift by a vector.
2233         (expand_widen_pattern_expr): Pass additional argument to
2234         optab_for_tree_code.
2235
2236         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2237         vrotl_optab, vrotr_optab.
2238
2239         * expr.c (expand_expr_real_1): Update calls to
2240         optab_for_tree_code to distinguish between vector shifted by a
2241         scalar and vector shifted by a vector.
2242         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2243         (supportable_narrowing_operation): Ditto.
2244         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2245         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2246         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2247         (vect_create_epilog_for_reduction): Ditto.
2248         (vectorizable_reduction): Ditto.
2249         (vectorizable_operation): Ditto.
2250         (vect_strided_store_supported): Ditto.
2251         (vect_strided_load_supported): Ditto.
2252         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2253         * expmed.c (expand_shift): Ditto.
2254
2255         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2256         scalar type.
2257         (ashr@var{m}3): Ditto.
2258         (vashl@var{m}3): Document new vector/vector shift standard name.
2259         (vashr@var{m}3): Ditto.
2260         (vlshr@var{m}3): Ditto.
2261         (vrotl@var{m}3): Ditto.
2262         (vrotr@var{m}3): Ditto.
2263
2264         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2265         (PPERM_INVERT): Ditto.
2266         (PPERM_REVERSE): Ditto.
2267         (PPERM_REV_INV): Ditto.
2268         (PPERM_ZERO): Ditto.
2269         (PPERM_ONES): Ditto.
2270         (PPERM_SIGN): Ditto.
2271         (PPERM_INV_SIGN): Ditto.
2272         (PPERM_SRC1): Ditto.
2273         (PPERM_SRC2): Ditto.
2274
2275         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2276         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2277         allows a memory operand to be the value being added, and split it
2278         to improve vectorization.
2279         (sse5_pmacsdqh_mem): Ditto.
2280         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2281         (sse5_mulv2div2di3_high): Ditto.
2282         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2283         (vec_pack_trunc_v4si): Ditto.
2284         (vec_pack_trunc_v2di): Ditto.
2285         (sse5_pcmov_<mode>): Remove code that tried to use use
2286         andps/andnps instead of pcmov.
2287         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2288         pmacsdqh instructions.
2289         (vec_widen_smult_lo_v4si): Ditto.
2290
2291         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2292         (PPERM_INVERT): Ditto.
2293         (PPERM_REVERSE): Ditto.
2294         (PPERM_REV_INV): Ditto.
2295         (PPERM_ZERO): Ditto.
2296         (PPERM_ONES): Ditto.
2297         (PPERM_SIGN): Ditto.
2298         (PPERM_INV_SIGN): Ditto.
2299         (PPERM_SRC1): Ditto.
2300         (PPERM_SRC2): Ditto.
2301         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2302         true/false tests.
2303         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2304         comparisons.
2305         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2306         says ignore whether the last reference is a memory operand.
2307
2308 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2309             Paolo Bonzini <bonzini at gnu dot org>
2310
2311         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2312         shift patterns.
2313
2314         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2315         (vlshr<mode>3): Rename from vlshr<mode>3.
2316         (vashr<mode>3): Rename from vashr<mode>3.
2317         (mulv4sf3): Change the names of vector shift patterns.
2318         (mulv4si3): Ditto.
2319         (negv4sf2): Ditt.
2320
2321         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2322         shift insns.
2323
2324         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2325         (SI_SHLHI): Ditto.
2326         (SI_SHL): Ditto.
2327         (SI_SHLI): Ditto.
2328         (SI_ROTH): Ditto.
2329         (SI_ROTHI): Ditto.
2330         (SI_ROT): Ditto.
2331         (SI_ROTI): Ditto.
2332         (SPU_RL_0): Ditto.
2333         (SPU_RL_1): Ditto.
2334         (SPU_RL_2): Ditto.
2335         (SPU_RL_3): Ditto.
2336         (SPU_RL_4): Ditto.
2337         (SPU_RL_5): Ditto.
2338         (SPU_RL_6): Ditto.
2339         (SPU_RL_7): Ditto.
2340         (SPU_SL_0): Ditto.
2341         (SPU_SL_1): Ditto.
2342         (SPU_SL_2): Ditto.
2343         (SPU_SL_3): Ditto.
2344         (SPU_SL_4): Ditto.
2345         (SPU_SL_5): Ditto.
2346         (SPU_SL_6): Ditto.
2347         (SPU_SL_7): Ditto.
2348
2349         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2350         (floatunssidf2_internal): Change vector/vector shift names.
2351         (floatunsdidf2_internal): Ditto.
2352         (mulv8hi3): Ditto.
2353         (ashrdi3): Ditto.
2354         (ashrti3): Ditto.
2355         (cgt_df): Ditto.
2356         (cgt_v2df): Ditto.
2357         (dftsv): Ditto.
2358         (vashl<mode>3): Rename from ashl<mode>3.
2359         (vashr<mode>3): Rename from ashr<mode>3.
2360         (vlshr<mode>3): Rename from lshr<mode>3.
2361         (vrotl<mode>3): Rename from rotl<mode>3.
2362
2363 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2364
2365         PR target/36224
2366         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2367         multiply gives the wrong value when doing widening multiplies.
2368         (vec_widen_smult_lo_v4si): Ditto.
2369
2370 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2371
2372         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2373         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2374         emit_library_call_value. 
2375         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2376         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2377         * calls.c (initialize_argument_information, precompute_arguments, 
2378         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2379         (precompute_arguments): Removed flags parameter.
2380         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2381         
2382 2008-05-14  Richard Guenther  <rguenther@suse.de>
2383
2384         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2385         Make sure to register the store if the use is a PHI_NODE.
2386
2387 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2388
2389         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2390         memory if the component is to be referenced in BLKmode according
2391         to get_inner_reference.
2392
2393 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2394
2395         * calls.c (emit_library_call_value_1): Restore code clearing
2396         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2397
2398 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2399             Nicolas Roche  <roche@adacore.com>
2400
2401         * configure.ac: Add support for a "gcc_subdir" variable in
2402         config-lang.in, to denote a subdirectory where the language/GCC
2403         integration files are to be found.
2404         * configure: Regenerate.
2405
2406 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2407
2408         PR tree-optimization/36098
2409         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2410         value for the first load in the group in case of a gap.
2411         (vect_build_slp_tree): Check that there are no gaps in loads.
2412
2413 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2414
2415         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2416         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2417         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2418         emit_insn and remove unneeded code to construct extra args.
2419         (emit_no_conflict_block): Removed.
2420         * optabls.h: (emit_no_conflict_block): Removed.
2421         * cse.c (cse_extended_basic_block): Remove search for
2422         REG_NO_CONFLICT note.
2423         * global.c: Removed incorrect comment added in revision 117.
2424         * expr.c (convert_move): Change call to emit_no_conflict_block to
2425         emit_insn.
2426         * recog.c: Change comments so that they do not mention
2427         REG_NO_CONFLICT.
2428         * local_alloc.c (combine_regs): Removed last parameter.
2429         (no_conflict_p): Removed.
2430         (block_alloc): Removed note, no_conflict_combined_regno and set
2431         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2432         (combine_regs): Removed already_dead and code to look for
2433         REG_NO_CONFLICT notes.
2434         * lower_subreg (remove_retval_note): Removed code to look for
2435         REG_NO_CONFLICT block.
2436         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2437         (resolve_clobber): Remove code to process libcalls that have
2438         REG_NO_CONFLICT notes.
2439         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2440         case.
2441         * combine.c (can_combine_p, distribute_notes):  Removed
2442         REG_NO_CONFLICT case.
2443         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2444         to emit_insns.
2445         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2446         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2447         Ditto.
2448         * reg-notes.def (NO_CONFLICT): Removed.
2449
2450 2008-05-14  David S. Miller  <davem@davemloft.net>
2451
2452         * config/sparc/sparc.c (sparc_profile_hook): If
2453         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2454         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2455         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2456
2457 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2458
2459         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2460
2461 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2462
2463         PR target/36222
2464         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2465         and op1 expansion before vector concat to have less live pseudos.
2466
2467 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2468
2469         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2470         ix86_expand_vector_set if supported.
2471
2472 2008-05-13  Diego Novillo  <dnovillo@google.com>
2473             Kenneth Zadeck  <zadeck@naturalbridge.com>
2474
2475         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2476
2477         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2478         phinodes_print_statistics, init_ssanames, fini_ssanames,
2479         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2480         release_ssa_name, release_defs, replace_ssa_name_symbol,
2481         ssanames_print_statistics): Move ...
2482         * tree-flow.h: ... here.
2483         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2484         Use FN instead of cfun.
2485         (make_ssa_name_fn): Rename from make_ssa_name.
2486         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2487         * tree-flow-inline.h (make_ssa_name): Move from
2488         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2489         * omp-low.c (expand_omp_parallel):
2490         * tree-flow-inline.h (redirect_edge_var_map_result):
2491         * tree-ssa.c (init_tree_ssa): Add argument FN.
2492         Use it instead of cfun.  Update all users.
2493
2494 2008-05-13  Tom Tromey  <tromey@redhat.com>
2495
2496         PR preprocessor/22168:
2497         * doc/cpp.texi (Top): Update menu.
2498         (Alternatives to Wrapper #ifndef): New node.
2499         (Other Directives): Document deprecation.
2500         (Obsolete Features): Remove menu.
2501         (Assertions): Merge node into Obsolete Features.
2502         (Obsolete once-only headers): Move earlier; rename to Alternatives
2503         to Wrapper #ifndef.
2504         * doc/cppopts.texi: Update.
2505         * c.opt (Wdeprecated): Enable for C and ObjC.
2506         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2507         (C++ Dialect Options): Move -Wno-deprecated from here to...
2508         (Warning Options): ... here.
2509
2510 2008-05-13  Richard Guenther  <rguenther@suse.de>
2511
2512         PR middle-end/36227
2513         * fold-const.c (fold_sign_changed_comparison): Do not allow
2514         changes in pointer-ness.
2515
2516 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2517
2518         PR target/24713
2519         * config/sh/sh.c (sh_expand_prologue): Don't clear
2520         RTX_FRAME_RELATED_P for push insns.
2521
2522 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2523
2524         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2525
2526 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2527
2528         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2529         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2530         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2531
2532 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2533
2534         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2535         (*vec_concatv4sf_sse): This.
2536         (*sse2_concatv2si): Renamed to ...
2537         (*vec_concatv2si_sse2): This.
2538         (*sse1_concatv2si): Renamed to ...
2539         (*vec_concatv2si_sse): This.
2540         (*vec_concatv2di_rex): Renamed to ...
2541         (*vec_concatv2di_rex64): This.
2542         (*vec_concatv2si_sse4_1): New.
2543         (*vec_concatv2di_rex64_sse4_1): Likewise.
2544
2545 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2546
2547         PR rtl-optimization/36111
2548         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2549         that was created for swappable operands.
2550
2551 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2552
2553         PR ada/36001
2554         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2555         * configure.ac: Add call to ACX_PROG_GNAT.
2556
2557 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2558
2559         * optc-gen.awk: Fix comment typo.
2560
2561 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2562
2563         * pretty-print.c (pp_integer_with_precision): Use
2564         HOST_LONG_LONG_FORMAT.
2565
2566 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2567
2568         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2569                 
2570 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2571
2572         * config/i386/i386.c (bdesc_ptest): Removed.
2573         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2574         (bdesc_args): Add __builtin_ia32_ptestz128,
2575         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2576         (ix86_init_mmx_sse_builtins): Updated.
2577         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2578         (ix86_expand_builtin): Updated.
2579
2580 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2581
2582         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2583         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2584
2585 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2586
2587         * value-prof.c (interesting_stringop_to_profile): Do not
2588         return early for BUILT_IN_MEMPCPY.
2589
2590 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2591
2592         * calls.c (expand_call): Don't use callgraph to increase
2593         preferred_stack_boundary.
2594
2595         * cgraph.h (cgraph_rtl_info): Use unsigned on
2596         preferred_incoming_stack_boundary.
2597
2598         * final.c (rest_of_clean_state): Use unsigned on
2599         preferred_stack_boundary.
2600
2601 2008-05-09  Tom Tromey  <tromey@redhat.com>
2602
2603         PR preprocessor/22231:
2604         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2605         proceeding.
2606
2607 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2608
2609         PR tree-optimization/36129
2610         * tree-ssa-ccp.c: Include value-prof.h.
2611         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2612         built-in function was folded to a constant.
2613         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2614
2615 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2616             Sebastian Pop  <sebastian.pop@amd.com>
2617
2618         * tree-scalar-evolution.c: Document instantiate_scev.
2619         (instantiate_parameters_1): Renamed instantiate_scev_1.
2620         Don't use the same loop for instantiation_loop and evolution_loop.
2621         (instantiate_scev): New.
2622         (instantiate_parameters): Moved...
2623         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2624         same loop twice.  Maintains the semantics for this function.
2625         * tree-scalar-evolution.h (instantiate_scev): Declare.
2626         (instantiate_parameters): ...here.  Now static inline.
2627         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2628         instead of resolve_mixers.
2629
2630 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2631
2632         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2633
2634 2008-05-09  Tomas Bily  <tbily@suse.cz>
2635
2636         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2637         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2638         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2639         * c-common.c (c_common_truthvalue_conversion): Likewise.
2640         * tree-object-size.c (compute_object_offset): Likewise.
2641         * tree-inline.c (estimate_num_insns_1): Likewise.
2642         * varasm.c (const_hash_1, compare_constant, copy_constant)
2643         (compute_reloc_for_constant, output_addressed_constants)
2644         (initializer_constant_valid_p): Likewise.
2645         * c-omp.c (check_omp_for_incr_expr): Likewise.
2646         * gimplify.c (gimplify_expr): Likewise.
2647         * c-typeck.c (c_finish_return): Likewise.
2648         * tree-vectorizer.c (supportable_widening_operation)
2649         (supportable_narrowing_operation): Likewise.
2650         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2651         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2652         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2653         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2654         (descr_info_loc): Likewise.
2655         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2656         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2657         (fold_unary): Likewise.
2658         * builtins.c (get_pointer_alignment): Likewise.
2659         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2660         (instantiate_parameters_1): Likewise.
2661         * tree.c (expr_align, stabilize_reference): Likewise.
2662         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2663         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2664         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2665         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2666         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2667         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2668         Likewise.
2669         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2670         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2671         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2672         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2673         (forward_propagate_comparison)
2674         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2675         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2676         * emit-rtl.c (component_ref_for_mem_expr)
2677         (set_mem_attributes_minus_bitpos): Likewise.
2678         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2679         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2680         Likewise.
2681         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2682         (build_function_call, pointer_diff, build_compound_expr)
2683         (c_finish_return): Likewise.
2684         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2685         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2686         Likewise.
2687         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2688         * expr.c (is_aligning_offset): Likewise.
2689         * tree-ssa-alias.c (is_escape_site): Likewise.
2690         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2691         (check_all_va_list_escapes): Likewise.
2692         * tree-ssa-loop-ivopts.c (determine_base_object)
2693         (determine_common_wider_type): Likewise.
2694         * dojump.c (do_jump): Likewise.
2695         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2696         * tree-gimple.c (is_gimple_cast): Likewise.
2697         * fold-const.c (decode_field_reference, )
2698         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2699         (fold_binary): Likewise.
2700         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2701         (already_warned_in_frontend_p): Likewise.
2702         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2703         * tree.c (really_constant_p, get_unwidened): Likewise.
2704         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2705         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2706         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2707         Likewise.
2708         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2709         CONVERT_EXPR_P.
2710         (CONVERT_EXPR_P): Define.
2711         (CASE_CONVERT): Define.
2712         
2713 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2714
2715         PR middle-end/36117
2716         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2717         (delete_unmarked_insns): When deleting a call, call
2718         delete_unreachable_blocks.
2719         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2720         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2721
2722 2008-05-08  Richard Guenther  <rguenther@suse.de>
2723
2724         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2725         (-ftree-salias): Likewise.
2726         (salias-max-implicit-fields): Remove param documentation.
2727         (salias-max-array-elements): Likewise.
2728         * tree-pass.h (pass_create_structure_vars): Remove.
2729         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2730         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2731         * tree-ssa-alias.c (create_structure_vars): Remove.
2732         (gate_structure_vars): Likewise.
2733         (pass_create_structure_vars): Likewise.
2734         (gate_build_alias): Likewise.
2735         (pass_build_alias): Adjust to run always and dump the function.
2736         * common.opt (ftree-salias): Hide.
2737         * passes.c (init_optimization_passes): Remove
2738         pass_create_structure_vars, adjust comment.
2739         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2740         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2741         * opts.c (decode_options): Do not set flag_tree_salias.
2742         (common_handle_option): Add OPT_ftree_salias to the backward
2743         compatibility section.
2744
2745 2008-05-08  Richard Guenther  <rguenther@suse.de>
2746
2747         * tree-flow-inline.h (var_can_have_subvars): Move ...
2748         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2749         * tree-flow.h (var_can_have_subvars): Remove.
2750         (push_fields_onto_fieldstack): Remove.
2751         (sort_fieldstack): Likewise.
2752         (struct fieldoff): Move ...
2753         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2754         alias_set and base_for_components fields.
2755         (sort_fieldstack): Make static.
2756         (push_fields_onto_fieldstack): Likewise.  Remove code that
2757         handles anything but RECORD_TYPEs.  Remove alias_set and
2758         base_for_components handling.
2759         (create_variable_info_for): Adjust.
2760
2761 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2762
2763         * common.opt (Wframe-larger-than=): Shorten the help message
2764         to one line.
2765         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2766
2767 2008-05-08  Rafael Espindola  <espindola@google.com>
2768
2769         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2770         trap.
2771         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2772         trap and that both operands are gimple values.
2773         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2774         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2775         is a fp operation.
2776
2777 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2778
2779         * read-rtl.c (join_c_conditions): Return the first string if the
2780         two strings are equal.
2781
2782 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2783
2784         * gensupport.h (pred_data): Add a "num_codes" field.
2785         (add_predicate_code): Declare.
2786         * gensupport.c (add_predicate_code): New function.
2787         (std_pred_table): Add an "allows_const_p" field.
2788         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2789         Remove the (incomplete) list of such codes from the codes field.
2790         (init_predicate_table): Use add_predicate_code.  Add all
2791         RTX_CONST_OBJs if allows_const_p is true.
2792         * genrecog.c (process_define_predicate): Use add_predicate_code.
2793
2794 2008-05-08  David Daney  <ddaney@avtrex.com>
2795             Richard Sandiford  <rsandifo@nildram.co.uk>
2796         
2797         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2798         special case of constant zero operands.
2799         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2800         old and new values.  Special case constant zero values.
2801         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2802         fails.
2803         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2804         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2805
2806 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2807
2808         PR target/36090
2809         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2810         similar RTX_CONST_OBJ before CONST_INT.
2811
2812 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2813
2814         * stmt.c (expand_stack_restore): Change sa mode if needed.
2815
2816 2008-05-08  Richard Guenther  <rguenther@suse.de>
2817
2818         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2819         return type to bool.
2820         (ix86_sol10_return_in_memory): Likewise.
2821         (ix86_i386elf_return_in_memory): Likewise.
2822         (ix86_i386interix_return_in_memory): Likewise.
2823         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2824         (ix86_sol10_return_in_memory): Likewise.
2825         (ix86_i386elf_return_in_memory): Likewise.
2826         (ix86_i386interix_return_in_memory): Likewise.
2827
2828 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2829
2830         PR bootstrap/36180
2831         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2832         fndecl argument.
2833         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2834         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2835         declared in front.
2836
2837 2008-05-08  Richard Guenther  <rguenther@suse.de>
2838
2839         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2840         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2841         (DR_SUBVARS): Remove.
2842         * tree-dfa.c (dump_subvars_for): Remove.
2843         (debug_subvars_for): Likewise.
2844         (dump_variable): Do not dump subvars.
2845         (remove_referenced_var): Do not remove subvars.
2846         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2847         (lookup_subvars_for_var): Remove.
2848         (get_subvars_for_var): Likewise.
2849         (get_subvars_at): Likewise.
2850         (get_first_overlapping_subvar): Likewise.
2851         (overlap_subvar): Likewise.
2852         * tree-flow.h (subvar_t): Remove.
2853         (struct var_ann_d): Remove subvars field.
2854         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2855         argument.  Remove special handling of SFTs.
2856         (compute_tag_properties): Likewise.
2857         (set_initial_properties): Likewise.
2858         (compute_call_clobbered): Likewise.
2859         (count_mem_refs): Likewise.
2860         (compute_memory_partitions): Likewise.
2861         (compute_flow_insensitive_aliasing): Likewise.
2862         (setup_pointers_and_addressables): Likewise.
2863         (new_type_alias): Likewise.
2864         (struct used_part): Remove.
2865         (used_portions): Likewise.
2866         (struct used_part_map): Likewise.
2867         (used_part_map_eq): Likewise.
2868         (used_part_map_hash): Likewise.
2869         (free_used_part_map): Likewise.
2870         (up_lookup): Likewise.
2871         (up_insert): Likewise.
2872         (get_or_create_used_part_for): Likewise.
2873         (create_sft): Likewise.
2874         (create_overlap_variables_for): Likewise.
2875         (find_used_portions): Likewise.
2876         (create_structure_vars): Likewise.
2877         * tree.def (STRUCT_FIELD_TAG): Remove.
2878         * tree.h (MTAG_P): Adjust.
2879         (struct tree_memory_tag): Remove base_for_components and
2880         unpartitionable flags.
2881         (struct tree_struct_field_tag): Remove.
2882         (SFT_PARENT_VAR): Likewise.
2883         (SFT_OFFSET): Likewise.
2884         (SFT_SIZE): Likewise.
2885         (SFT_NONADDRESSABLE_P): Likewise.
2886         (SFT_ALIAS_SET): Likewise.
2887         (SFT_UNPARTITIONABLE_P): Likewise.
2888         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2889         (union tree_node): Remove sft field.
2890         * alias.c (get_alias_set): Remove special handling of SFTs.
2891         * print-tree.c (print_node): Remove handling of SFTs.
2892         * tree-dump.c (dequeue_and_dump): Likewise.
2893         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2894         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2895         * tree-predcom.c (set_alias_info): Do not set subvars.
2896         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2897         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2898         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2899         (add_vars_for_offset): Remove.
2900         (add_virtual_operand): Remove special handling of SFTs.
2901         (add_call_clobber_ops): Likewise.
2902         (add_call_read_ops): Likewise.
2903         (get_asm_expr_operands): Likewise.
2904         (get_modify_stmt_operands): Likewise.
2905         (get_expr_operands): Likewise.
2906         (add_to_addressable_set): Likewise.
2907         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2908         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2909         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2910         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2911         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2912         (tree_node_structure): Likewise.
2913         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2914         handling of SFTs.
2915         (find_what_p_points_to): Likewise.
2916
2917 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2918
2919         * config/spu/spu.md: Fixed subti3 pattern.
2920
2921 2008-05-08  Richard Guenther  <rguenther@suse.de>
2922
2923         PR middle-end/36154
2924         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2925         sure to create a representative for trailing arrays for PTA.
2926
2927 2008-05-08  Richard Guenther  <rguenther@suse.de>
2928
2929         PR middle-end/36172
2930         * fold-const.c (operand_equal_p): Two objects which types
2931         differ in pointerness are not equal.
2932
2933 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2934
2935         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2936         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2937         (emit_library_call_value_1): Add new variable fndecl initialized by
2938         NULL_TREE. It should be the decl type of orgfun, but this information
2939         seems not to be available here, so it uses the default calling abi.
2940         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2941         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2942         by TARGET_RETURN_IN_MEMORY.
2943         * config/i386/i386-interix.h: Likewise.
2944         * config/i386/i386.h: Likewise.
2945         * config/i386/i386elf.h: Likewise.
2946         * config/i386/ptx4-i.h: Likewise.
2947         * config/i386/sol2-10.h: Likewise.
2948         * config/i386/sysv4.h: Likewise.
2949         * config/i386/vx-common.h: Likewise.
2950         * config/cris/cris.h: Removed #if 0 clause.
2951         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2952         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2953         argument.
2954         (ix86_sol10_return_in_memory): Likewise.
2955         (ix86_i386elf_return_in_memory): New.
2956         (ix86_i386interix_return_in_memory): New.
2957         * config/mt/mt-protos.h (mt_return_in_memory): New.
2958         * config/mt/mt.c: Likewise.
2959         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2960         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2961         * config/bfin/bfin.h: Likewise.
2962         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2963         argument.
2964         * config/bfin/bfin.c: Likewise.
2965         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2966         * config/alpha/unicosmk.h: Likewise.
2967         * config/i386/cygming.h: Likewise.
2968         * config/iq2000/iq2000.h: Likewise.
2969         * config/mips/mips.h: Likewise.
2970         * config/mn10300/mn10300.h: Likewise.
2971         * config/rs6000/rs6000.h: Likewise.
2972         * config/score/score.h: Likewise.
2973         * config/spu/spu.h: Likewise.
2974         * config/v850/v850.h: Likewise.
2975         * defaults.h: Likewise.
2976         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2977         * expr.c (emit_block_move): Adjust use of
2978         OUTGOING_REG_PARM_STACK_SPACE.
2979         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2980         OUTGOING_REG_PARM_STACK_SPACE.
2981         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2982
2983 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2984
2985         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2986         on OMP_RETURN for OMP_FOR.
2987
2988         PR debug/35896
2989         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2990         (fortran_common): New function.
2991         (gen_variable_die): Call fortran_common instead of common_check,
2992         adjust for it returning tree instead of rtx.  Formatting.
2993
2994 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2995
2996         PR rtl/7335
2997         PR rtl/33826
2998         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2999         * c-decl.c (merge_decls): Ditto.
3000         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3001         to RTL_CONST_OR_PURE_CALL_P.
3002         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3003         Initialized DECL_LOOPING_CONST_PURE.
3004         (process_call_operands): Set tree_side_effects properly.
3005         * tree.h (TREE_READONLY_DECL_P): Removed.
3006         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3007         (DECL_LOOPING_OR_CONST_P): New macro.
3008         (struct tree_function_decl): Added looping_const_or_pure_p.
3009         (ECF_*) Renumbered.
3010         (ECF_LOOPING_OR_CONST_P): New macro.
3011         * rtlanal.c (pure_const_p): Removed.
3012         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3013         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3014         to RTL_CONST_CALL_P.
3015         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3016         (check_decl, check_tree, check_call, scan_function): Initialize
3017         looping.
3018         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3019         (static_execute): Set looping true for recursive functions.
3020         Undo setting state to IPA_NEITHER for recursive functions.
3021         * cse.c (cse_insn): 
3022         * ifcvt.c (noce_can_store_speculate_p): Changed
3023         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3024         RTL_CONST_OR_PURE_CALL_P.
3025         * dse.c (scan_insn): Ditto.
3026         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3027         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3028         RTL_CONST_OR_PURE_CALL_P.
3029         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3030         pure_call_p to RTL_CONST_CALL_P.
3031         * gimplify.c (gimplify_call_expr): Clear side effects for
3032         non-looping pure and constant calls.
3033         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3034         (flags_from_decl_or_type): Set ecf flags from decl flags.
3035         (initialize_argument_information): Turn off
3036         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3037         Change const to pure if callee_copies is true rather than just
3038         turning off const.
3039         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3040         way of marking pure calls.
3041         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3042         Remove hack that was supposed to fix pr7335 and remove old
3043         way of marking pure calls.
3044         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3045         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3046         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3047         RTL_CONST_OR_PURE_CALL_P.
3048         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3049         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3050         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3051         * sched-deps.c (schedule_analyze): Ditto.
3052         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3053         return_val field of calls to represent pure and const function info.
3054         (CONST_OR_PURE_CALL_P): Deleted macro.
3055         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3056         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3057         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3058         TREE_READONLY.
3059         * tree-optimize.c (execute_fixup_cfg): Added test for
3060         ECF_LOOPING_CONST_OR_PURE.
3061         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3062         DECL_PURE_P.
3063         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3064         effects for looping pure or const calls.
3065         (verify_gimple_expr): Added verification code. 
3066         * config/alpha/alpha.c (alpha_legitimize_address,
3067         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3068         RTL_CONST_CALL_P.
3069         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3070         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3071         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3072         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3073         RTL_CONST_OR_PURE_CALL_P.
3074         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3075         and const calls to be deleted.
3076
3077 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3078
3079         PR target/35714
3080         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3081         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3082         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3083         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3084         to handle nonimmediate operands.
3085         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3086         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3087         to handle nonimmediate operands.
3088         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3089         (mmx_pmulhrwv4hi3): New expander.  Use
3090         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3091         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3092         (sse2_umulv1siv1di3): New expander.  Use
3093         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3094         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3095         (mmx_eq<mode>3): New expander.  Use
3096         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3097         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3098         (mmx_uavgv8qi3): New expander.  Use
3099         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3100         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3101         (mmx_uavgv4hi3): New expander.  Use
3102         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3103
3104         * config/i386/sse.md
3105         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3106         to handle nonimmediate operands.
3107         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3108         to handle nonimmediate operands.
3109         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3110         to handle nonimmediate operands.
3111         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3112         to handle nonimmediate operands.
3113         (sse2_unpckhpd_exp): New expander.  Use
3114         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3115         (sse2_unpcklpd_exp): New expander.  Use
3116         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3117         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3118         to handle nonimmediate operands.
3119         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3120         to handle nonimmediate operands.
3121         (*sse2_<plusminus_insn><mode>3): Rename from
3122         sse2_<plusminus_insn><mode>3 insn pattern.
3123         (sse2_<plusminus_insn><mode>3): New expander.  Use
3124         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3125         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3126         (sse2_umulv2siv2di3): New expander.  Use
3127         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3128         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3129         (sse4_1_mulv2siv2di3): New expander.  Use
3130         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3131         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3132         (sse2_pmaddwd): New expander.  Use
3133         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3134         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3135         (sse2_eq<mode>3): New expander.  Use
3136         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3137         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3138         (sse4_1_eqv2di3): New expander.  Use
3139         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3140         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3141         (sse2_uavgv16qi3): New expander.  Use
3142         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3143         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3144         (sse2_uavgv16qi3): New expander.  Use
3145         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3146         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3147         (sse2_uavgv8hi3): New expander.  Use
3148         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3149         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3150         (ssse3_pmulhrswv8hi3): New expander.  Use
3151         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3152         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3153         (ssse3_pmulhrswv4hi3): New expander.  Use
3154         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3155
3156         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3157         (<sse>_vmmul<mode>3): Ditto.
3158         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3159         (divv2df3): Ditto.
3160         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3161         (ssse3_pmaddubsw): Ditto.
3162
3163         * config/i386/i386.c (struct_builtin_description)
3164         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3165         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3166         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3167         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3168         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3169         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3170         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3171         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3172         (ix86_fixup_binary_operands): Assert that src1
3173         and src2 must have the same mode when swapped.
3174         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3175         and ix86_binary_operator_ok.  Do not force operands in registers
3176         when optimizing.
3177
3178 2008-05-07  Jan Hubicka  <jh@suse.cz>
3179
3180         * cgraph.c (dump_cgraph_node): Update.
3181         * cgraph.h (cgraph_local_info): Break out inline summary.
3182         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3183         hook.
3184         * ipa-inline (inline_summary): New accestor function.
3185         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3186         cgraph_decide_inlining, compute_inline_parameters): Update.
3187         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3188
3189 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3190
3191         Cleanup ColdFire scheduling support and add V4 pipeline model.
3192
3193         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3194         (define_attr cpu): Add cfv4 value.
3195         (define_attr type, define_attr type1): Merge into a single 'type'
3196         attribute.  Update all uses.
3197         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3198         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3199         Update all uses.
3200         (define_attr opx_mem, define_attr opy_mem): Remove.
3201         (define_attr op_mem): Clean up, update comment.
3202         (define_attr size): Use specific values instead of general int.
3203         (define_attr guess, define_attr split): Remove.  Update all uses.
3204         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3205         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3206         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3207         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3208         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3209         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3210         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3211         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3212         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3213         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3214         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3215         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3216         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3217         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3218         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3219         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3220         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3221         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3222         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3223         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3224         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3225         Update or set attributes.
3226         (stack_tie): New fake instruction.
3227
3228         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3229         (m68k_sched_attr_size): Update declaration.
3230         (m68k_sched_attr_type2): Remove.
3231         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3232         Declare new bypass predicates.
3233
3234         * config/m68k/m68k.c (m68k_sched_issue_rate,
3235         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3236         implementations.
3237         (TARGET_SCHED_ISSUE_RATE,
3238         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3239         (override_options): Handle scheduling for ColdFire V4 core.
3240         (m68k_expand_prologue): Emit stack_tie.
3241         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3242         'OP_TYPE_FPN'.  Update all uses.
3243         (sched_guess_p): Remove.
3244         (sched_address_type): Handle symbolic addresses.
3245         (sched_get_operand): New static function.
3246         (sched_operand_type): Merge into sched_attr_op_type.
3247         (sched_attr_op_type): Handle FP registers, handle quick constants,
3248         update.
3249         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3250         (m68k_sched_attr_size): Update.  Move logic to ...
3251         (sched_get_attr_size_int): New static function.
3252         (sched_get_opxy_mem_type): New static function.
3253         (m68k_sched_attr_op_mem): Update.
3254         (m68k_sched_attr_type2): Remove.
3255         (sched_cfv4_bypass_data): New static variable.
3256         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3257         (m68k_sched_issue_rate): Implement scheduler hook.
3258         (struct _sched_ib: enabled_p): New field.
3259         (m68k_sched_variable_issue): Update.  Handle V4.
3260         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3261         sched_dump_class_func_t, sched_dump_split_class,
3262         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3263         sched_dump_dfa_class, m68k_sched_dump): Remove.
3264         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3265         hook.
3266         (m68k_sched_init_global): Remove statisctics dumping, introduce
3267         sanity check that all instructions have pipeline reservations.  Handle
3268         ColdFire V4 core.
3269         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3270         Handle ColdFire V4 core.
3271         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3272         New static functions.
3273         (m68k_sched_address_bypass_p): New bypass predicate.
3274         (sched_get_indexed_address_scale): New static function.
3275         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3276
3277         * cf.md: Update comments.
3278         (define_attr type2): Remove.  Use 'type' attribute instead.
3279         Update all uses.
3280         (cf_ib): Rename to cfv123_ib.  Update all uses.
3281         (cf_oep): Rename to cfv123_oep.  Update all uses.
3282         (cf_chr): Rename to cfv123_chr.  Update all uses.
3283         (cf_mem): Rename to cfv123_mem.  Update all uses.
3284         (cf_mac): Move to more appropriate place.
3285         (cfv123_guess): New automaton and cpu_unit.
3286         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3287         Update uses of 'size' attribute.  Handle before reload scheduling.
3288         (cfv123_guess): New dummy reservation for unhandled instructions.
3289         (cfv4_*): Pipeline description of ColdFire V4 core.
3290         (ignore): New reservation to handle 'ignore' type.
3291
3292 2008-05-07  Ian Lance Taylor  <iant@google.com>
3293
3294         PR middle-end/36013
3295         * gimplify.c (find_single_pointer_decl_1): Don't look through
3296         indirections.
3297         (find_single_pointer_decl): Adjust comments.
3298
3299 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3300
3301         PR middle-end/36137
3302         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3303         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3304
3305         PR middle-end/36106
3306         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3307         integral type rather than floating point, then VIEW_CONVERT_EXPR
3308         to the floating point type.
3309
3310 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3311
3312         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3313         TFmode op0 to register.
3314
3315 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3316
3317         * c-decl.c (grokdeclarator): Comment typo.
3318
3319 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3320
3321         * tree-flow.h: Remove prototype for computed_goto_p.
3322         * tree-cfg.c (computed_goto_p): Make static.
3323
3324 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3325
3326         PR target/35657
3327         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3328         (contains_aligned_value_p): This.  Handle _Decimal128.
3329         (ix86_function_arg_boundary): Only align _Decimal128 to its
3330         natural boundary and handle it properly.
3331
3332 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3333
3334         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3335         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3336         (ipcp_method_set_orig_node): Removed.
3337         (ipcp_cval_get_cvalue_type): Removed.
3338         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3339         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3340         (ipcp_cval_set_cvalue_type): Removed.
3341         (ipcp_cval_get_cvalue): Removed.
3342         (ipcp_cval_set_cvalue): Removed.
3343         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3344         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3345         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3346         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3347         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3348         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3349         (ipcp_get_ith_lattice): Changed parameters.
3350         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3351         (ipcp_lattice_from_jfunc): Changed parameters.
3352         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3353         (ipcp_method_cval_print): Added temporary variable info.
3354         (ipcp_redirect): Removed already unused local variable caller.
3355         (ipcp_redirect): New temporary variable orig_callee_info
3356         (ipcp_redirect): Removed newly unused local variable callee.
3357         (ipcp_redirect): Removed (a bit confusing) local variable type.
3358         (ipcp_insert_stage): Added local variable info.
3359         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3360         renamed too
3361         (ipcp_formal_create): Removed.
3362         (ipcp_method_cval_set): Removed.
3363         (ipcp_propagate_stage): Renamed lattice variables.
3364         (ipcp_method_cval_set_cvalue_type): Removed.
3365         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3366         (ipcp_print_all_lattices): Changed printed strings to refer to 
3367         lattices rather than cvals.
3368         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3369         (ipcp_propagate_const): Changed formal parameters.
3370         (build_const_val): Changed formal parameters.
3371         (ipcp_insert_stage): Removed useless variable cvalue
3372         (build_const_val): Changed formal parameters.
3373         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3374         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3375         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3376         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3377         (ipcp_print_func_profile_counts): Changed string from "method" to 
3378         "function"
3379         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3380         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3381         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3382         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3383         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3384         (ipcp_lat_is_const): Changed parameters and made inline.
3385         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3386         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3387         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3388         the predicate condition directly
3389         (ipcp_propagate_stage): Added local variable args. Removed local
3390         variable callee.  (Both are mere code simplifications.)
3391         (ipcp_method_dont_insert_const): Renamed to
3392         ipcp_node_not_modifiable_p.
3393         (ipcp_node_not_modifiable_p): Made inline.
3394         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3395         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3396         (ipcp_print_all_lattices): Removed variable cvalue
3397         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3398         Updated comments.
3399
3400 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3401
3402         * tree-sra.c (try_instantiate_multiple_fields): Early return
3403         if field has POINTER_TYPE.
3404
3405 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3406
3407         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3408         by using 'q' specifier for instruction.
3409         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3410
3411 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3412
3413         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3414         Change mode of zero_extract from QImode to HImode.
3415         (sign bit tests peepholes): (Ditto.).
3416
3417 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3418
3419         * config/i386/mmx.md: Remove double backslashes from asm templates.
3420         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3421         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3422         to handle nonimmediate operands.
3423         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3424         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3425         to handle nonimmediate operands.
3426         (*mmx_<code>v2sf3_finite): New insn pattern.
3427         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3428         (mmx_<code>v2sf3): New expander.  Use
3429         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3430         (mmx_<plusminus_insn><mode>3): New expander.  Use
3431         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3432         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3433         (mmx_add<mode>3): Removed.
3434         (mmx_ssadd<mode>3): Ditto.
3435         (mmx_usadd<mode>3): Ditto.
3436         (mmx_sub<mode>3): Ditto.
3437         (mmx_sssub<mode>3): Ditto.
3438         (mmx_ussub<mode>3): Ditto.
3439         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3440         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3441         to handle nonimmediate operands.
3442         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3443         insn pattern.
3444         (mmx_smulv4hi3_highpart): New expander.  Use
3445         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3446         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3447         insn pattern.
3448         (mmx_umulv4hi3_highpart): New expander.  Use
3449         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3450         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3451         (mmx_<code>v4hi3): New expander.  Use
3452         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3453         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3454         (mmx_<code>v8qi3): New expander.  Use
3455         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3456         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3457         (mmx_<code><mode>3): New expander.  Use
3458         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3459
3460 2008-05-05  Jan Hubicka  <jh@suse.cz>
3461
3462         PR tree-optimization/36118
3463         * passes.c (pass_init_dump_file): Fix dump header.
3464
3465 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3466
3467         PR middle-end/36141
3468         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3469         VCE for function decls.
3470
3471 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3472
3473         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3474
3475 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3476
3477         * config/i386/i386.md (sat_plusminus): New.
3478         (plusminus_insn): Likewise.
3479         (plusminus_mnemonic): Likewise.
3480         (addsub): Removed.
3481         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3482         (*<addsub><mode>3_cc_overflow): Renamed to ...
3483         (*<plusminus_insn><mode>3_cc_overflow): This.
3484         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3485         (*<plusminus_insn>si3_zext_cc_overflow): This.
3486
3487         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3488         (<plusminus_insn><mode>3): This.
3489         (*<addsub><mode>3): Renamed to ...
3490         (*<plusminus_insn><mode>3): This.
3491         (<sse>_vm<addsub><mode>3): Renamed to ...
3492         (<sse>_vm<plusminus_insn><mode>3): This.
3493         (sse3_h<addsub>v4sf3): Renamed to ...
3494         (sse3_h<plusminus_insn>v4sf3): This.
3495         (sse3_h<addsub>v2df3): Renamed to ...
3496         (sse3_h<plusminus_insn>v2df3): This.
3497         (<plusminus_insn><mode>3): New.
3498         (*<plusminus_insn><mode>3): Likewise.
3499         (sse2_<plusminus_insn><mode>3): Likewise.
3500         (add<mode>): Removed.
3501         (*add<mode>3): Likewise.
3502         (sse2_ssadd<mode>3): Likewise.
3503         (sse2_usadd<mode>3): Likewise.
3504         (sub<mode>3): Likewise.
3505         (*sub<mode>3): Likewise.
3506         (sse2_sssub<mode>3): Likewise.
3507         (sse2_ussub<mode>3): Likewise.
3508
3509 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3510
3511         * gthr-single.h: Add in required interface elements as per gthr.h.
3512         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3513         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3514         Generalize UNUSED macro. 
3515         (__gthread_once): Add.
3516         (__gthread_key_create): Add.
3517         (__gthread_key_delete): Add.
3518         (__gthread_getspecific): Add.
3519         (__gthread_setspecific): Add.
3520         
3521 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3522
3523         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3524         the same size types for the indirect reference on the rhs, then
3525         create a VCE.
3526
3527 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3528
3529         * config/i386/i386.md
3530         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3531         one insn template instead of template series.
3532         (*xordi_1_rex64): Ditto.
3533         (*xordi_2_rex64): Ditto.
3534
3535 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3536
3537         PR tree-optimization/36119
3538         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3539         in case of SLP.
3540
3541 2008-06-04  Jan Hubicka  <jh@suse.cz>
3542
3543         tree-optimization/36100
3544         * tree-pass.h (pass_O0_always_inline): Declare.
3545         * ipa-inline.c (inline_transform): Remove dead code.
3546         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3547         pass_O0_always_inline): New.
3548         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3549
3550 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3551
3552         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3553         mnemonic in this_param move for TARGET_64BIT.
3554
3555 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3556
3557         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3558         (*strmovsi_rex_1): Ditto.
3559         (*strsetsi_1): Ditto.
3560         (*strsetsi_rex_1): Ditto.
3561
3562         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3563         adddicc expanders using SWI mode iterator.
3564
3565 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3566
3567         PR target/36121
3568         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3569         argument handling.
3570
3571 2008-05-04  David S. Miller  <davem@davemloft.net>
3572
3573         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3574         (sparc*-*-linux*): Use linux.h in tm_file.
3575         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3576         compiler defaulting to 32-bit.
3577         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3578         no longer needed.
3579         * config/sparc/linux.h: Remove definitions now obtained
3580         properly from linux.h
3581         * config/sparc/linux64.h: Likewise.
3582         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3583         don't want this setting for 32-bit builds in a biarch compiler.
3584         * doc/install.texi: Add sparc-linux to list of targets
3585         supporting --enable-targets=all.
3586
3587 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3588
3589         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3590
3591 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3592
3593         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3594         after V4SI_FTYPE_V8HI.
3595         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3596         case V4SI_FTYPE_V2DF.
3597
3598 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3599
3600         * doc/invoke.texi (max-flow-memory-locations): Removed.
3601         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3602         
3603 2008-05-03  Richard Guenther  <rguenther@suse.de>
3604
3605         PR middle-end/34973
3606         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3607
3608 2008-05-02  David S. Miller  <davem@davemloft.net>
3609
3610         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3611
3612 2008-05-02  Simon Baldwin <simonb@google.com>
3613
3614         PR bootstrap/36108
3615         * c-common.h (warn_array_subscript_range): Removed.
3616         * c-common.c (warn_array_subscript_range): Ditto.
3617         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3618         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3619
3620 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3621
3622         * config/i386/i386.c (ix86_special_builtin_type): New.
3623         (bdesc_special_args): Likewise.
3624         (ix86_expand_special_args_builtin): Likewise.
3625         (ix86_init_mmx_sse_builtins): Updated.
3626         (ix86_expand_builtin): Updated.
3627         (ix86_expand_store_builtin): Removed.
3628         (ix86_expand_unop_builtin): Likewise.
3629
3630         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3631         * config/i386/mmintrin.h (__v2sf): Here.
3632
3633         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3634         const __v2sf.
3635         (_mm_loadl_pi): Likewise.
3636         (_mm_storeh_pi): Replace __v2si with __v2sf.
3637         (_mm_storel_pi): Likewise.
3638
3639         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3640         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3641         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3642         __builtin_ia32_loadlpd.
3643
3644 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3645
3646         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3647         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3648         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3649         (ix86_init_mmx_sse_builtins): Updated.
3650         (ix86_expand_args_builtin): Likewise.
3651         (ix86_expand_builtin): Likewise.
3652         (ix86_expand_unop1_builtin): Renamed to ...
3653         (ix86_expand_unop_vec_merge_builtin): This.
3654
3655 2008-05-01  Jan Hubicka  <jh@suse.cz>
3656
3657         PR bootstrap/36100
3658         * ipa-inline.c (inline_generate_summary): Make static.
3659         (inline_transform): Do not call inlining at -O0; make static.
3660         * passes.c (execute_todo): Add sanity check.
3661         (execute_one_ipa_transform_pass): Execute proper flags.
3662
3663 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3664
3665         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3666         (DECL_NONADDRESSABLE_P): Likewise.
3667         * alias.c (record_component_aliases): Fix comment.
3668
3669 2008-05-01  Simon Baldwin <simonb@google.com>
3670
3671         * c-common.h (warn_array_subscript_range): New function.
3672         * c-common.c (warn_array_subscript_range): Ditto.
3673         * tree-vrp.c (check_array_ref): Corrected code to agree with
3674         comment, ignoring only arrays of size 0 or size 1.
3675         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3676
3677 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3678
3679         * config/i386/i386.c (ix86_builtin_type): Replace
3680         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3681         (bdesc_args): Updated.
3682         (ix86_init_mmx_sse_builtins): Likewise.
3683         (ix86_expand_args_builtin): Likewise.
3684
3685         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3686         with __v1di.
3687
3688         * doc/extend.texi: Correct __builtin_ia32_palignr.
3689
3690 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3691
3692         PR target/36095
3693         * config/i386/i386.c (bdesc_crc32): Removed.
3694         (ix86_expand_crc32): Likewise.
3695         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3696         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3697         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3698         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3699         UINT_FTYPE_UINT_UCHAR.
3700         (bdesc_args): Updated. Add crc32 builtins.
3701         (ix86_init_mmx_sse_builtins): Updated.
3702         (ix86_expand_args_builtin): Updated to support subreg.
3703
3704         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3705
3706 2008-05-01  Jan Hubicka  <jh@suse.cz>
3707
3708         * tree-pass.h (opt_pass): Add IPA_PASS.
3709         (varpool_node, cgraph_node): Forward declare.
3710         (ipa_opt_pass): Define.
3711         (pass_ipa_inline): Turn into ipa_opt_pass.
3712         (pass_apply_inline): Remove.
3713         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3714         (apply_inline): Turn into ....
3715         (inline_transform): ... this one.
3716         (inline_generate_summary): New function.
3717         (pass_apply_inline): Remove.
3718         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3719         vector.
3720         (struct function): Add ipa_transforms_to_apply.
3721         * passes.c (register_one_dump_file): Work on IPA_PASS.
3722         (init_optimization_passes): Remove pass_inline_parameters and
3723         pass_apply_inline.
3724         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3725         (execute_one_pass) ... here; apply transforms when possible.
3726         (add_ipa_transform_pass, execute_ipa_summary_asses,
3727         execute_one_ipa_transform_pass): New.
3728         (execute_ipa_pass_list): Update for IPA_PASS type.
3729
3730 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3731
3732         * config/i386/i386.c (ix86_builtin_type): Add
3733         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3734         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3735         (bdesc_args): Add SSE4a builtins.
3736         (ix86_init_mmx_sse_builtins): Updated.
3737         (ix86_expand_args_builtin): Likewise.
3738         (ix86_expand_builtin): Likewise.
3739
3740 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3741
3742         * config/i386/i386.c (ix86_builtin_type): Add
3743         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3744         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3745         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3746         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3747         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3748         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3749         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3750         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3751         and DI_FTYPE_DI_DI_INT.
3752         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3753         (ix86_init_mmx_sse_builtins): Updated.
3754         (ix86_expand_args_builtin): Likewise.
3755         (ix86_expand_builtin): Likewise.
3756         (ix86_expand_binop_imm_builtin): Removed.
3757
3758         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3759
3760 2008-04-30  Richard Guenther  <rguenther@suse.de>
3761
3762         PR tree-optimization/32921
3763         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3764
3765 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3766
3767         * config/arm/arm.c (arm_unwind_emit): Use
3768         crtl->all_throwers_are_sibcalls instead of
3769         cfun->all_throwers_are_sibcalls.
3770         (arm_output_fn_unwind): Likewise.
3771         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3772         instead of cfun->uses_pic_offset_table.
3773         (frv_expand_prologue): Likewise.
3774         (frv_frame_pointer_required): Likewise.
3775         (frv_expand_fdpic_call): Likewise.
3776         (frv_emit_movsi): Likewise.
3777         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3778         cfun->returns_pcc_struct instead of
3779         current_function_returns_pcc_struct.
3780         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3781         instead of cfun->calls_eh_return.
3782         (m32c_pushm_popm): Likewise.
3783         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3784         "extern" declaration.
3785
3786 2008-04-30  Richard Guenther  <rguenther@suse.de>
3787
3788         PR tree-optimization/21636
3789         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3790         constant address.
3791         (evaluate_stmt): Print the likely value.
3792         (ccp_visit_stmt): Avoid excessive vertical spacing.
3793
3794 2008-04-30  Rafael Espindola  <espindola@google.com>
3795
3796         * builtins.c (fold_call_expr): Return realret.
3797         * tree-ssa-threadedge.c
3798         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3799         __builtin_object_size.
3800
3801 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3802
3803         * gcc.c (wrapper_string): New variable.
3804         (insert_wrapper): New function.
3805         (execute): New option -wrapper.
3806         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3807
3808 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3809
3810         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3811         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3812         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3813         from...
3814         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3815         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3816         config/rs6000/e500crtres64gprctr.asm,
3817         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3818         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3819         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3820         config/rs6000/e500crtsav64gprctr.asm,
3821         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3822         config/rs6000/e500crtsavg64gprctr.asm: New files.
3823         * config/rs6000/t-ppccomm: Add build rules for new files.
3824         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3825         * config/rs6000/t-netbsd: Add build rules for new files.
3826         (LIB2FUNCS_STATIC_EXTRA): New variable.
3827         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3828         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3829         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3830
3831 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3832
3833         * config/i386/i386.c (ix86_builtin_type): Add
3834         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3835         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3836         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3837         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3838         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3839         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3840         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3841         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3842         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3843         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3844         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3845         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3846         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3847         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3848         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3849         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3850         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3851         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3852         V1DI_FTYPE_V2SI_V2SI.
3853         (bdesc_2arg): Moved to ...
3854         (bdesc_args): Here.
3855         (ix86_init_mmx_sse_builtins): Updated.
3856         (ix86_expand_args_builtin): Updated.  Take a pointer
3857         to const struct builtin_description.  Handle comparison
3858         builtin functions.
3859         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3860         (ix86_expand_builtin): Updated.
3861
3862         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3863         (ssse3_pmaddubsw128): This.
3864         (ssse3_pmaddubswv4hi3): Renamed to ...
3865         (ssse3_pmaddubsw): This.
3866
3867         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3868         (__builtin_ia32_packssdw128): Likewise.
3869         (__builtin_ia32_packuswb128): Likewise.
3870         (__builtin_ia32_pmaddubsw): Likewise.
3871         (__builtin_ia32_pmaddubsw128): Likewise.
3872
3873 2008-04-30  Richard Guenther  <rguenther@suse.de>
3874
3875         PR tree-optimization/14847
3876         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3877         (recognize_bits_test): Use it.
3878         (recognize_single_bit_test): Likewise.
3879
3880 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3881
3882         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3883         instead of setting number of formal parameters to zero.
3884         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3885         either.
3886         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3887         which are called with variable number of arguments.
3888         (ipcp_insert_stage): Explicitely skipping all nodes which are
3889         called with variable number of arguments.
3890         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3891         number of parameters.
3892
3893         * ipa-prop.h (struct ipa_node_params): Added flag
3894         called_with_var_arguments
3895         (ipa_set_param_count): Added.  Changed sole setter to use it.
3896         (ipa_get_param_count): Added.  All readers of param_count
3897         converted to use it instead.
3898         (ipa_set_called_with_variable_arg): Added.
3899         (ipa_is_called_with_var_arguments): Added.
3900         (ipa_get_ith_param): Added.  All readers of param_decls converted
3901         to use it instead.
3902         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3903         changed to use it. 
3904         (ipa_get_cs_argument_count): Added, all readers of argument_count
3905         changed to cal it.
3906         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3907         to use it.
3908         
3909         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3910         (struct ipcp_lattice): Renamed cval_type to type
3911         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3912
3913         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3914         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3915         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3916         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3917         (build_const_val): Changed the type of parameter cvalue to tree
3918         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3919         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3920         
3921         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3922         constant 
3923
3924         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3925         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3926         (ipa_add_method): Renamed to ipa_push_func_to_list
3927         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3928         (ipa_callsite_param_count): Removed.
3929         (ipa_callsite_param_count_set): Removed.
3930         (ipa_callsite_param): Removed.
3931         (ipa_callsite_callee): Removed.
3932         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3933         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3934         (ipa_method_formal_count): Removed.
3935         (ipa_method_formal_count_set): Removed.
3936         (ipa_method_get_tree): Removed.
3937         (ipa_method_tree_map_create): Removed.
3938         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3939         (ipa_create_param_decls_array): Creates the array itself
3940         (ipa_create_param_decls_array): Temporary variable info instead of 
3941         a few dereferences.
3942         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3943         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3944         (get_type): Removed.
3945         (ipa_jf_get_info_type): Removed.
3946         (ipa_node_create): Renamed to ipa_create_node_params
3947         (ipa_free): Renamed to ipa_free_all_node_params
3948         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3949         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3950         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3951         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3952         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3953         ipa_free_all_edge_args
3954         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3955         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3956         (ipa_create_methodlist_node): Removed.
3957         (ipa_methodlist_method): Removed.
3958         (ipa_methodlist_method_set): Removed.
3959         (ipa_methodlist_next_method): Removed.
3960         (ipa_methodlist_next_method_set): Removed.
3961         (ipa_method_is_modified): Removed.
3962         (ipa_method_modify_create): Removed.
3963         (ipa_method_modify_init): Temporary variable info instead of a few 
3964         dereferences.
3965         (ipa_detect_param_modifications): Temporary variable info instead of 
3966         a few dereferences.
3967         (ipa_compute_jump_functions): Temporary variable info instead of 
3968         a few dereferences.
3969         (ipa_method_modify_set): Removed.
3970         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3971         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3972         than craph_node as the first parameter.
3973         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3974         (ipa_method_modify_init): Removed.
3975         (ipa_compute_jump_functions): Added a temp variable instead of 
3976         repeatadly dereferencing the cgraph_edge.aux pointer
3977         (ipa_callsite_param_set_type): Removed.
3978         (ipa_compute_jump_functions): i renamed to index and moved to 
3979         an inner block
3980         (ipa_callsite_param_set_info_type_formal): Removed.
3981         (ipa_callsite_param_set_info_type): Removed.
3982         (ipa_callsite_param_map_create): Removed.
3983         (ipa_callsite_tree): Removed.
3984         (ipa_callsite_caller): Removed.
3985         (ipa_pop_func_from_list): return_method removed to return_func
3986
3987         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3988         prefixed all values with IPA_. Changed all users.
3989         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3990         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3991         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3992         (union parameter_info): Renamed to jump_func_value.
3993         (union jump_func_value): Renamed value to constant
3994         (struct ipa_jump_func): Renamed info_type to value
3995         (struct ipa_node): Renamed to ipa_node_params
3996         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3997         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3998         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3999         (struct ipa_edge): Renamed to ipa_edge_args
4000         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4001         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4002         (struct ipa_methodlist): Renamed to ipa_func_list
4003         (struct ipa_func_list): method_p renamed to node, next_method
4004         renamed to next
4005         (ipa_methodlist_p): Removed, switched all users to struct pointer
4006         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4007
4008 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4009
4010         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4011         (rs6000_emit_epilogue): Use backchain to restore only when we
4012         have a large frame.  Make use of frame pointer to restore if we
4013         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4014
4015 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4016
4017         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4018         Add mode to zero_extract.
4019         (sign bit tests peepholes): (Ditto.).
4020
4021 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4022
4023         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4024         Instructions in comments with SSE3.
4025         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4026         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4027         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4028         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4029         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4030         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4031         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4032         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4033         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4034         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4035         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4036         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4037         (bdesc_sse_args): Renamed to ...
4038         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4039         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4040         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4041         IX86_BUILTIN_FABSQ.
4042         (bdesc_1arg): Moved to ...
4043         (bdesc_args): Here.
4044         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4045         Instructions in comments with SSE3.
4046         (ix86_expand_sse_operands_builtin): Renamed to ...
4047         (ix86_expand_args_builtin): This.  Updated.
4048         (ix86_expand_unop1_builtin): Update comments.
4049         (ix86_expand_builtin): Updated.
4050
4051 2008-04-29  Richard Guenther  <rguenther@suse.de>
4052
4053         PR tree-optimization/36078
4054         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4055         Update virtual SSA form after cleaning up the CFG.
4056
4057 2008-04-29  Richard Guenther  <rguenther@suse.de>
4058
4059         PR middle-end/15255
4060         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4061
4062 2008-04-29  Richard Guenther  <rguenther@suse.de>
4063
4064         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4065         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4066         (compute_flow_insensitive_aliasing): Do not treat
4067         PTR_IS_REF_ALL pointers special.
4068         (get_smt_for): Likewise.
4069         (may_alias_p): Re-structure.
4070         (is_escape_site): A ref-all pointer conversion is not an escape site.
4071         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4072         PTR_IS_REF_ALL pointers special.
4073         * tree-ssa-structalias.h (struct alias_info): Remove
4074         ref_all_symbol_mem_tag field.
4075         (PTR_IS_REF_ALL): Remove.
4076
4077 2008-04-29  Richard Guenther  <rguenther@suse.de>
4078
4079         PR middle-end/36077
4080         * fold-const.c (extract_muldiv_1): In combining division constants
4081         make sure to never overflow.
4082
4083 2008-04-29  Nick Clifton  <nickc@redhat.com>
4084
4085         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4086
4087 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4088
4089         PR bootstrap/35169
4090         * optc-gen.awk: Work around HP-UX/IA awk bug.
4091
4092 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4093
4094         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4095         2008-04-25 commit.
4096
4097 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4098
4099         PR target/36073
4100         * config/i386/i386.md
4101         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4102         Change operand 1 predicate to nonimmediate_operand.
4103
4104 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4105
4106         PR debug/36060
4107         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4108         die_sub field.
4109         * gengtype.c (walk_type, write_func_for_structure): Handle
4110         chain_circular.
4111         * doc/gty.texi: Document chain_circular.
4112
4113 2008-04-28  Richard Guenther  <rguenther@suse.de>
4114
4115         PR tree-optimization/36066
4116         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4117         SCEV and loop.
4118
4119 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4120
4121         PR target/36064
4122         * config/i386/i386.md
4123         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4124         Use match_scratch instead of match_operand for operands 3 and 4.
4125
4126 2008-04-27  Richard Guenther  <rguenther@suse.de>
4127
4128         PR tree-optimization/18754
4129         PR tree-optimization/34223
4130         * tree-pass.h (pass_complete_unrolli): Declare.
4131         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4132         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4133         Rewrite loop into loop closed SSA form if it is not already.
4134         (tree_unroll_loops_completely): Re-structure to iterate over
4135         innermost loops with intermediate CFG cleanups.
4136         Unroll outermost loops only if requested or the code does not grow
4137         doing so.
4138         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4139         loops are available.
4140         (tree_vectorize): Instead do so here.
4141         (tree_complete_unroll): Also unroll outermost loops.
4142         (tree_complete_unroll_inner): New function.
4143         (gate_tree_complete_unroll_inner): Likewise.
4144         (pass_complete_unrolli): New pass.
4145         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4146         uses outside of the loop.
4147         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4148         form if it is available.  
4149         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4150         * passes.c (init_optimization_passes): Schedule complete inner
4151         loop unrolling pass before the first CCP pass after final inlining.
4152
4153 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4154
4155         * targhooks.h (default_emutls_var_fields,
4156         default_emutls_var_init): Declare.
4157         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4158         * target.h (struct gcc_target): Add struct emutls member.
4159         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4160         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4161         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4162         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4163         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4164         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4165         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4166         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4167         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4168         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4169         emit debug information.
4170         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4171         * varasm.c: Include targhooks.h.
4172         (emutls_object_section, emutls_tmpl_section): New.
4173         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4174         (EMUTLS_SEPARATOR): New.
4175         (prefix_name): New.
4176         (get_emutls_object_name): New.
4177         (default_emutls_var_fields): New, broken out of ...
4178         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4179         (get_emutls_init_templ_addr): Adjust to use target hooks.
4180         (emutls_decl): Adjust to use target hooks.
4181         (emutls_finish): Likewise.
4182         (default_emutls_var_init): New, broken out of ...
4183         (assemble_variable): ... here.  Adjust to use target hooks.
4184         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4185         SECCAT_EMUTLS_TMPL.
4186         * c-common.c (handle_section_attribute): Prevent overriding
4187         sections for emulated tls with special sections.
4188         * config/i386/i386.c (x86_64_elf_select_section): Add
4189         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4190         (x86_64_elf_unique_section): Likewise.
4191         * config/vxworks.c: Include tree.h.
4192         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4193         (vxworks_override_options): Set TLS scheme.
4194         * doc/tm.texi (Emulated TLS): New node.
4195
4196 2008-04-26  Simon Baldwin <simonb@google.com>
4197
4198         PR c/35652
4199         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4200         with propagated string constants.
4201
4202 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4203
4204         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4205         constraint for operand 2 when operand 0 is memory operand.
4206         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4207         operand 0 is memory operand.
4208         (fix_trunc<mode>_i387_with_temp): Ditto.
4209         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4210         operand 2 when operand 1 is memory operand.
4211         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4212         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4213         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4214         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4215         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4216         operands 2,3 and 4 when operand 1 is memory operand.
4217         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4218         is memory operand.
4219         (fistdi2_floor_with_temp): Ditto.
4220         (fist<mode>2_floor_with_temp): Ditto.
4221         (fistdi2_ceil_with_temp): Ditto.
4222         (fist<mode>2_ceil_with_temp): Ditto.
4223         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4224
4225 2008-04-26  David Daney  <ddaney@avtrex.com>
4226
4227         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4228         unspec_volitile.
4229         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4230         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4231         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4232         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4233         (compare_and_swap_12): New insn.
4234         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4235         * config/mips/mips.c (mips_force_binary): New function.
4236         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4237         (mips_expand_compare_and_swap_12): New function.
4238         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4239
4240 2008-04-25  Jan Hubicka  <jh@suse.cz>
4241
4242         PR testsuite/35843
4243         * cfgexpand.c (pass_expand): Turn into RTL pass.
4244         * passes.c (execute_one_pass): Do pass typechecking after execution.
4245         * tree-pass.h (pass_expand): Turn into RTL pass.
4246
4247         * function.h (struct rtl_data): Move here fields
4248         accesses_prior_frames, calls_eh_return, saves_all_registers,
4249         has_nonlocal_goto, has_asm_statement, is_thunk,
4250         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4251         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4252         arg_pointer_save_area_init from struct function; turn into bool.
4253         (struct function): Move
4254         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4255         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4256         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4257         tail_call_emit, arg_pointer_save_area_init
4258         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4259         (current_function_returns_struct, current_function_returns_pcc_struct,
4260         current_function_calls_setjmp, current_function_calls_alloca,
4261         current_function_accesses_prior_frames,
4262         current_function_calls_eh_return, current_function_is_thunk,
4263         current_function_stdarg, current_function_profile,
4264         current_function_limit_stack, current_function_uses_pic_offset_table,
4265         current_function_uses_const_pool, current_function_has_nonlocal_label,
4266         current_function_saves_all_registers,
4267         current_function_has_nonlocal_goto,
4268         current_function_has_asm_statement): Remove accesor macros.
4269         * ra-conflict.c (global_conflicts): Update.
4270         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4271         (suitable_for_tail_call_opt_p): Update.
4272         * builtins.c (expand_builtin_return_addr): Update.
4273         (expand_builtin_setjmp_setup): Update.
4274         (expand_builtin_nonlocal_goto): Update.
4275         * final.c (final_start_function): Update.
4276         (profile_function): Update.
4277         (leaf_function_p): Update.
4278         (only_leaf_regs_used): Update.
4279         * df-scan.c (df_get_exit_block_use_set): Update.
4280         * dojump.c (clear_pending_stack_adjust): Update.
4281         * tree-stdarg.c (gate_optimize_stdarg): Update.
4282         * gimple-low.c (lower_function_body): Update.
4283         * global.c (compute_regsets): Update.
4284         (global_alloc): Update.
4285         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4286         * expr.c (expand_assignment): Update.
4287         * dse.c (dse_step0): Update.
4288         (dse_step1): Update.
4289         * c-decl.c (store_parm_decls): Update.
4290         * local-alloc.c (combine_regs): Update.
4291         (find_free_reg): Update.
4292         * function.c (assign_parms_augmented_arg_list): Update.
4293         (assign_parm_find_data_types): Update.
4294         (assign_parms): Update.
4295         (allocate_struct_function): Update.
4296         (expand_function_start): Update.
4297         (expand_function_end): Update.
4298         (get_arg_pointer_save_area): Update.
4299         (thread_prologue_and_epilogue_insns): Update.
4300         (rest_of_match_asm_constraints): Update.
4301         * stor-layout.c (variable_size): Update.
4302         * gcse.c (gcse_main): Update.
4303         (bypass_jumps): Update.
4304         * gimplify.c (gimplify_function_tree): Update.
4305         * calls.c (emit_call_1): Update.
4306         (expand_call): Update.
4307         * bt-load.c (compute_defs_uses_and_gen): Update.
4308         * except.c (sjlj_assign_call_site_values): Update.
4309         (sjlj_emit_function_enter): Update.
4310         (can_throw_external): Update.
4311         (set_nothrow_function_flags): Update.
4312         (expand_builtin_unwind_init): Update.
4313         (expand_eh_return): Update.
4314         (convert_to_eh_region_ranges): Update.
4315         (output_function_exception_table): Update.
4316         * emit-rtl.c (gen_tmp_stack_mem): Update.
4317         * cfgexpand.c (expand_used_vars): Update.
4318         (tree_expand_cfg): Update.
4319         * cfgcleanup.c (rest_of_handle_jump): Update.
4320         * explow.c (allocate_dynamic_stack_space): Update.
4321         * varasm.c (assemble_start_function): Update.
4322         (force_const_mem): Update.
4323         (mark_constant_pool): Update.
4324         * tree-optimize.c (tree_rest_of_compilation): Update.
4325         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4326         * tree-cfg.c (notice_special_calls): Update.
4327         (is_ctrl_altering_stmt): Update.
4328         (tree_can_make_abnormal_goto): Update.
4329         (tree_purge_dead_abnormal_call_edges): Update.
4330         * config/alpha/predicates.md: Update.
4331         * config/alpha/alpha.c (alpha_sa_mask): Update.
4332         (alpha_sa_size): Update.
4333         (alpha_does_function_need_gp): Update.
4334         (alpha_expand_prologue): Update.
4335         (alpha_start_function): Update.
4336         (alpha_output_function_end_prologue): Update.
4337         (alpha_expand_epilogue): Update.
4338         * config/frv/frv.c (frv_stack_info): Update.
4339         (frv_expand_epilogue): Update.
4340         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4341         (s390_register_info): Update.
4342         (s390_frame_info): Update.
4343         (s390_init_frame_layout): Update.
4344         (s390_can_eliminate): Update.
4345         (save_gprs): Update.
4346         * config/spu/spu.c (spu_split_immediate): Update.
4347         (need_to_save_reg): Update.
4348         (spu_expand_prologue): Update.
4349         (spu_expand_epilogue): Update.
4350         * config/sparc/sparc.md: Update.
4351         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4352         (sparc_tls_got): Update.
4353         (legitimize_pic_address): Update.
4354         (sparc_emit_call_insn): Update.
4355         (sparc_expand_prologue): Update.
4356         (output_return): Update.
4357         (print_operand): Update.
4358         (sparc_function_ok_for_sibcall): Update.
4359         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4360         * config/m32r/m32r.md: Update.
4361         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4362         (m32r_compute_frame_size): Update.
4363         (m32r_expand_prologue): Update.
4364         (m32r_expand_epilogue): Update.
4365         (m32r_legitimize_pic_address): Update.
4366         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4367         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4368         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4369         (gen_push): Update.
4370         (ix86_save_reg): Update.
4371         (ix86_compute_frame_layout): Update.
4372         (ix86_expand_prologue): Update.
4373         (ix86_expand_epilogue): Update.
4374         * config/sh/sh.c (output_stack_adjust): Update.
4375         (calc_live_regs): Update.
4376         (sh5_schedule_saves): Update.
4377         (sh_expand_prologue): Update.
4378         (sh_expand_epilogue): Update.
4379         (sh_setup_incoming_varargs): Update.
4380         (sh_allocate_initial_value): Update.
4381         (sh_get_pr_initial_val): Update.
4382         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4383         * config/sh/sh.md (label:): Update.
4384         * config/avr/avr.c (out_movhi_mr_r): Update.
4385         * config/crx/crx.h (enum): Update.
4386         * config/xtensa/xtensa.h (along): Update.
4387         * config/stormy16/stormy16.c Update.
4388         (xstormy16_compute_stack_layout): Update.
4389         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4390         (fr30_expand_prologue): Update.
4391         * config/cris/cris.c (cris_conditional_register_usage): Update.
4392         (cris_reg_saved_in_regsave_area): Update.
4393         (cris_initial_frame_pointer_offset): Update.
4394         (cris_simple_epilogue): Update.
4395         (cris_expand_prologue): Update.
4396         (cris_expand_epilogue): Update.
4397         (cris_expand_pic_call_address): Update.
4398         (cris_asm_output_symbol_ref): Update.
4399         (cris_asm_output_label_ref): Update.
4400         * config/cris/cris.md Update.
4401         * config/iq2000/iq2000.c (compute_frame_size): Update.
4402         (iq2000_expand_epilogue): Update.
4403         * config/mt/mt.h (save_direction): Update.
4404         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4405         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4406         (ia64_secondary_reload_class): Update.
4407         * config/m68k/m68k.c (m68k_save_reg): Update.
4408         (m68k_expand_prologue): Update.
4409         (m68k_expand_epilogue): Update.
4410         (legitimize_pic_address): Update.
4411         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4412         (first_reg_to_save): Update.
4413         (first_altivec_reg_to_save): Update.
4414         (compute_vrsave_mask): Update.
4415         (compute_save_world_info): Update.
4416         (rs6000_stack_info): Update.
4417         (spe_func_has_64bit_regs_p): Update.
4418         (rs6000_ra_ever_killed): Update.
4419         (rs6000_emit_eh_reg_restore): Update.
4420         (rs6000_emit_allocate_stack): Update.
4421         (rs6000_emit_prologue): Update.
4422         (rs6000_emit_epilogue): Update.
4423         (rs6000_output_function_epilogue): Update.
4424         (output_profile_hook): Update.
4425         (rs6000_elf_declare_function_name): Update.
4426         * config/rs6000/rs6000.h (rs6000_args): Update.
4427         * config/rs6000/rs6000.md: Update.
4428         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4429         * config/arc/arc.c (arc_output_function_epilogue): Update.
4430         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4431         * config/darwin.c (machopic_function_base_name): Update.
4432         * config/score/score3.c (score3_compute_frame_size): Update.
4433         (rpush): Update.
4434         (rpop): Update.
4435         (score3_epilogue): Update.
4436         * config/score/score7.c (score7_compute_frame_size): Update.
4437         (score7_prologue): Update.
4438         (score7_epilogue): Update.
4439         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4440         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4441         * config/arm/arm.c (use_return_insn): Update.
4442         (require_pic_register): Update.
4443         (arm_load_pic_register): Update.
4444         (arm_compute_save_reg0_reg12_mask): Update.
4445         (arm_compute_save_reg_mask): Update.
4446         (thumb1_compute_save_reg_mask): Update.
4447         (output_return_instruction): Update.
4448         (arm_output_function_prologue): Update.
4449         (arm_output_epilogue): Update.
4450         (arm_get_frame_offsets): Update.
4451         (arm_expand_prologue): Update.
4452         (thumb_pushpop): Update.
4453         (thumb_exit): Update.
4454         (thumb1_expand_prologue): Update.
4455         (thumb1_expand_epilogue): Update.
4456         (arm_unwind_emit): Update.
4457         (arm_output_fn_unwind): Update.
4458         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4459         * config/arm/arm.md: Update.
4460         * config/pa/pa.md: Update.
4461         * config/pa/pa.c (legitimize_pic_address): Update.
4462         (compute_frame_size): Update.
4463         (hppa_expand_prologue): Update.
4464         (hppa_expand_epilogue): Update.
4465         (borx_reg_operand): Update.
4466         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4467         (HARD_REGNO_RENAME_OK): Update.
4468         * config/mips/mips.c (mips_global_pointer): Update.
4469         (mips_save_reg_p): Update.
4470         (mips_compute_frame_info): Update.
4471         (mips_frame_pointer_required): Update.
4472         (mips_expand_prologue): Update.
4473         (mips_expand_epilogue): Update.
4474         (mips_can_use_return_insn): Update.
4475         (mips_reorg_process_insns): Update.
4476         * config/v850/v850.c (compute_register_save_size): Update.
4477         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4478         * config/mmix/mmix.c (along): Update.
4479         (mmix_expand_epilogue): Update.
4480         * config/bfin/bfin.c (legitimize_pic_address): Update.
4481         (must_save_p): Update.
4482         (stack_frame_needed_p): Update.
4483         (add_to_reg): Update.
4484         (bfin_expand_prologue): Update.
4485         * stmt.c (expand_asm_operands): Update.
4486         * reload1.c (reload): Update.
4487         (init_elim_table): Update.
4488
4489 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4490         
4491         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4492         
4493 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4494
4495         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4496         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4497         (mov<mode>): Removed.
4498         (*movv4sf_internal): Likewise.
4499         (*movv2df_internal): Likewise.
4500
4501 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4502
4503         * config.gcc (crx-*-elf): Remove deprecation.
4504
4505 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4506
4507         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4508         __gcc_deregister_frame with atexit.
4509         (deregister_frame_dtor): Remove.
4510
4511 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4512             Nathan Sidwell  <nathan@codesourcery.com>
4513
4514         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4515         (misel): Likewise.
4516         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4517         (rs6000_isel): Likewise.
4518         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4519         (rs6000_isel): New variable.
4520         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4521
4522 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4523
4524         PR c++/35758
4525         * c-common.c (handle_vector_size_attribute): Call
4526         lang_hooks.types.reconstruct_complex_type instead of
4527         reconstruct_complex_type.
4528         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4529         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4530         * langhooks.h (struct lang_hooks_for_types): Add
4531         reconstruct_complex_type hook.
4532         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4533         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4534
4535 2008-04-24  Richard Guenther  <rguenther@suse.de>
4536
4537         * c-common.h (check_builtin_function_arguments): Declare.
4538         * c-common.c (validate_nargs): New function.
4539         (check_builtin_function_arguments): Likewise.
4540         * c-typeck.c (build_function_call): Call
4541         check_builtin_function_arguments.
4542         * builtins.c (fold_builtin_classify): Remove error reporting code.
4543         (fold_builtin_unordered_cmp): Likewise.
4544         (fold_builtin_1): Likewise.
4545         (fold_builtin_n): Likewise.
4546
4547 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4548
4549         PR tree-optimization/36008
4550         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4551         the original op1, rather than delta by step.
4552
4553 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4554             Sebastian Pop  <sebastian.pop@amd.com>
4555
4556         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4557         eliminate_local_variables_stmt, eliminate_local_variables,
4558         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4559         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4560         of code delimited by two edges in the CFG.
4561         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4562         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4563         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4564         the case of parallelisation of reductions.
4565         (expr_invariant_in_region_p): New.
4566
4567         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4568         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4569
4570 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4571             Richard Guenther  <rguenther@suse.de>
4572
4573         PR tree-optimization/36034
4574         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4575         incapable of dealing with loads with gaps.
4576
4577 2008-04-24  Rafael Espindola  <espindola@google.com>
4578
4579         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4580         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4581         vrp_evaluate_conditional.
4582         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4583         (vrp_evaluate_conditional): Split the cond argument.
4584         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4585         (simplify_stmt_for_jump_threading): Update call to
4586         vrp_evaluate_conditional.
4587
4588 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4589
4590         PR tree-optimization/35982
4591         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4592         interleaved data-refs are of the same type.
4593
4594 2008-04-24  Danny Smith  <dannysmith@users.net>
4595
4596         * c-format.c (check_format_info_main): Use strncmp rather than a
4597         magic prefix to handle multichar length specs.
4598         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4599         Don't prefix "I64" and "I32" with '\0'.
4600
4601 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4602
4603         PR target/36015
4604         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4605         in registers for -m32 only if stdarg_p (fntype).
4606
4607 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4608
4609         PR rtl-optimization/36006
4610         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4611         temp to op0 in order to avoid invalid rtx sharing.
4612
4613 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4614
4615         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4616         check TREE_INVARIANT.
4617         * tree-gimple.c (is_gimple_address): New.
4618         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4619         * tree-gimple.h (is_gimple_address): New.
4620         * tree.h (decl_address_invariant_p): New.
4621         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4622         (build_string): Likewise.
4623         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4624         (tree_invariant_p_1): Likewise.
4625         (save_expr): Use it.
4626         (tree_invariant_p): New.
4627         (skip_simple_arithmetic): Use it.
4628         (stabilize_reference_1): Use it.
4629         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4630         simplify.
4631         (build1_stat): Drop code to compute TREE_INVARIANT.
4632         (build2_stat): Drop code to compute TREE_INVARIANT.
4633         (build3_stat): Drop code to compute TREE_INVARIANT.
4634         (build4_stat): Drop code to compute TREE_INVARIANT.
4635         (build5_stat): Drop code to compute TREE_INVARIANT.
4636         (build7_stat): Drop code to compute TREE_INVARIANT.
4637         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4638         * tree.h (struct tree_base): Remove invariant_flag.
4639         (TREE_INVARIANT): Remove.
4640         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4641         (fold_builtin_expect): Check TREE_CONSTANT.
4642         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4643         * c-tree.h (c_expr_to_decl): Drop third parameter.
4644         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4645         (build_c_cast): Don't set TREE_INVARIANT.
4646         (pop_init_level): Don't set TREE_INVARIANT.
4647         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4648         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4649         TREE_CONSTANT.
4650         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4651         (gimplify_addr_expr): Adjust comment.
4652         * tree-mudflap.c (mf_build_string):
4653         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4654         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4655         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4656         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4657         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4658         * langhooks.h (struct lang_hooks): Drop third parameter from
4659         expr_to_decl.
4660
4661 2008-04-23  Richard Guenther  <rguenther@suse.de>
4662
4663         PR tree-optimization/27799
4664         PR tree-optimization/32921
4665         PR tree-optimization/32624
4666         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4667         SMTs aliases and the tag itself into the solution.
4668         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4669         merge the points-to solution back into the SMT aliases.
4670         (may_alias_p): Use alias_set_subset_of instead of
4671         aliases_conflict_p.  A pointer which points to
4672         memory with alias set zero may access any variable.
4673
4674 2008-04-23  Richard Guenther  <rguenther@suse.de>
4675
4676         * alias.c (alias_set_subset_of): Correctly handle asking
4677         if zero is a subset of an alias set with zero child.
4678         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4679         (compute_flow_insensitive_aliasing): Correctly walk all
4680         pointers.  Do not unnecessarily union sets.
4681
4682 2008-04-23  Richard Guenther  <rguenther@suse.de>
4683
4684         PR middle-end/36021
4685         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4686
4687 2008-04-22  Tomas Bily  <tbily@suse.cz>
4688
4689         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4690         unreachable case.
4691         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4692         NON_LVALUE_EXPR.
4693         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4694         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4695         * tree-inline.c (estimate_num_insns_1): Likewise.
4696         * varasm.c (const_hash_1, compare_constant, copy_constant)
4697         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4698         * emit-rtl.c (component_ref_for_mem_expr)
4699         (set_mem_attributes_minus_bitpos): Likewise.
4700         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4701         (is_aligning_offset): Likewise.
4702         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4703         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4704         * dojump.c (do_jump): Likewise.
4705         * builtins.c (get_pointer_alignment, get_memory_rtx)
4706         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4707         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4708
4709 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4710
4711         PR rtl-optimization/36017
4712         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4713         expanding the library call.
4714
4715 2008-04-22  Ian Lance Taylor  <iant@google.com>
4716
4717         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4718         than size_in_bytes.
4719
4720 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4721
4722         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4723         of LR/CTR moves for Power6.
4724
4725 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4726
4727         PR middle-end/36003
4728         * passes.c (init_optimization_passes): Remove
4729         pass_fast_rtl_byte_dce.
4730         
4731 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4732
4733         PR target/29096
4734         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4735         builtin functions to generate faster code.
4736         (_mm_cvtpu16_ps): Ditto.
4737         (_mm_cvtpi32x2_ps): Ditto.
4738
4739 2008-04-22  Nick Clifton  <nickc@redhat.com>
4740
4741         * common.opt (ftree-loop-distribution): Add Optimization
4742         attribute.
4743
4744         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4745         (frv_expand_builtin_va_start): Likewise.
4746
4747         * config/arm/arm.c (thumb_find_work_register): Fix location of
4748         argument register count.
4749
4750 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4751
4752         Support scheduling for ColdFire V1 and V3 microarchitecture.
4753         Improve scheduling of multiplication instructions.
4754
4755         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4756         (mac): New instruction attribute.
4757         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4758         (m68k_sched_mac): New variable.
4759         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4760         Handle cfv1 and cfv3.
4761         (max_insn_size): New static variable.
4762         (struct _sched_ib): New type.
4763         (sched_ib): New static variable.
4764         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4765         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4766         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4767         Update.
4768         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4769         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4770         new variables.  Update.
4771         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4772         Add modeling of cfv3 instruction buffer.  Update.
4773         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4774         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4775         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4776         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4777         a particular reservation applies to.
4778         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4779         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4780         to mul_l and mul_w.
4781         (cf_ib_*): Simplify description of instruction buffer.
4782         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4783         (cf_mem): Split into cf_mem1 and cf_mem2.
4784         (cf_v2_move_??): Rename to cfv12_alu_??.
4785         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4786         (cf_v2_mul_??): Remove reservations.
4787         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4788         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4789         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4790         appropriate place.
4791         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4792         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4793         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4794         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4795         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4796         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4797         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4798         expansions of the above reservations for instructions of sizes
4799         1, 2 and 3 words.
4800
4801 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4802
4803         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4804
4805 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4806
4807         * coverage.c: Include tree-pass.h.
4808         (coverage_counter_alloc): Print da_file_name to the dump file.
4809
4810 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4811
4812         * sbitmap.c (sbitmap_range_empty_p): New function.
4813         * sbitmap.h (sbitmap_range_empty_p): New function.
4814         * bitmap.h: Now includes obstack.h.
4815
4816 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4817             Kenneth Zadeck  <zadeck@naturalbridge.com>
4818
4819         * dbgcnt.def (ra_byte_scan): Added.
4820         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4821         when the last hit happens for a counter.  
4822         * timevar.def (TV_DF_BYTE_LR): New variable.
4823         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4824         * passes.c (pass_fast_rtl_byte_dce): New pass.
4825         * fwprop.c (update_df): Added mode to call df_ref_create.
4826         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4827         DF_REF_EXTRACT_OFFSET.
4828         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4829         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4830         (df_mm): New enum.
4831         (df_ref_extract): Added mode field.
4832         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4833         DF_REF_EXTRACT_OFFSET.
4834         (DF_REF_EXTRACT_MODE): New macro.
4835         (df_byte_lr_bb_info): New structure.
4836         (df_print_byte_regset, df_compute_accessed_bytes, 
4837         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4838         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4839         df_byte_lr_simulate_uses,
4840         df_byte_lr_simulate_artificial_refs_at_top,
4841         df_byte_lr_simulate_artificial_refs_at_end,
4842         df_compute_accessed_bytes): New function.
4843         (df_ref_create): Add parameter.
4844         (df_byte_lr_get_bb_info): New inline function.
4845         * df-scan.c (df_ref_record, df_uses_record,
4846         df_ref_create_structure): Added mode parameter.
4847         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4848         df_defs_record, df_uses_record, df_get_conditional_uses,
4849         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4850         df_entry_block_defs_collect, df_exit_block_uses_collect):
4851         Added mode parameter to calls to df_ref_record, df_uses_record,
4852         df_ref_create_structure.
4853         (df_ref_equal_p, df_ref_compare): Added test for modes.
4854         (df_ref_create_structure): Added code to set mode.  Renamed
4855         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4856         DF_REF_EXTRACT_OFFSET.
4857         * df-core.c (df_print_byte_regset): New function.
4858         * df-byte-scan.c: New file.
4859         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4860         calls to BITMAP_FREE.  
4861         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4862         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4863         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4864         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4865         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4866         df_byte_lr_local_compute, df_byte_lr_init,
4867         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4868         df_byte_lr_transfer_function, df_byte_lr_free, 
4869         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4870         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4871         df_byte_lr_simulate_uses,
4872         df_byte_lr_simulate_artificial_refs_at_top,
4873         df_byte_lr_simulate_artificial_refs_at_end): New function.
4874         * dce.c (byte_dce_process_block): New function.
4875         (dce_process_block): au is now passed in rather than computed
4876         locally.  Changed loops that look at artificial defs to not look
4877         for conditional or partial ones, because there never are any.  
4878         (fast_dce): Now is able to drive byte_dce_process_block or 
4879         dce_process_block depending on the kind of dce being done.
4880         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4881         (rest_of_handle_fast_byte_dce): New function.
4882         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4883         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4884
4885 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
4886
4887         PR fortran/35019
4888         * gcc.h: Added fortran options that take arguments to
4889         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4890         macros.
4891
4892 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4893
4894         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4895         scalarization if on the LHS and not a full access.
4896
4897 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4898
4899         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4900
4901 2008-04-18  Rafael Espindola  <espindola@google.com>
4902
4903         * tree-vrp.c (find_case_label_index): Fix the binary search.
4904         (find_case_label_range): New.
4905         (vrp_visit_switch_stmt): Use find_case_label_range.
4906         (simplify_switch_using_ranges): Use find_case_label_range.
4907
4908 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4909
4910         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4911         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4912
4913 2008-04-18  Tom Tromey  <tromey@redhat.com>
4914
4915         PR libcpp/15500:
4916         * doc/cpp.texi (Implementation-defined behavior): Mention
4917         -finput-charset.
4918
4919 2008-04-18  Ian Lance Taylor  <iant@google.com>
4920
4921         * fold-const.c (pointer_may_wrap_p): New static function.
4922         (fold_comparison): Add another test for pointer overflow.  Use
4923         pointer_may_wrap_p to disable some false positives.
4924
4925 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4926           
4927         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4928         (fname_as_string): Match updated cpp_interpret_string prototype.
4929         (fix_string_type): Support char16_t* and char32_t*.
4930         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4931         derivative) nodes.  Register as builtin if C++0x.
4932         (c_parse_error): Support CPP_CHAR{16,32}.
4933         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4934         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4935         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4936         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4937         CTI_CHAR32_ARRAY_TYPE>: New elements.
4938         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4939         char32_type_node, signed_char32_type_node, char16_array_type_node,
4940         char32_array_type_node): New defines.
4941         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4942         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4943         (lex_string): Support CPP_STRING{16,32}, match updated
4944         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4945         (lex_charconst): Support CPP_CHAR{16,32}.
4946         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4947         and CPP_STRING{16,32}.
4948
4949 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4950
4951         PR bootstrap/35457
4952         * aclocal.m4: Regenerate.
4953         * configure: Regenerate.
4954
4955 2008-04-18  Jan Hubicka  <jh@suse.cz>
4956
4957         * except.c (dw2_size_of_call_site_table,
4958         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4959
4960         * cgraphbuild.c (build_cgraph_edges): Update.
4961         * tree-pass.h: Update comment.
4962         * final.c (leaf_function_p): Update.
4963         (leaf_renumber_regs): Update.
4964         (rest_of_clean_state): Update.
4965         * omp-low.c (expand_omp_parallel): Update.
4966         * ipa-reference.c (analyze_function): Update.
4967         * reorg.c (find_end_label): Update.
4968         (optimize_skip): Update.
4969         (fill_simple_delay_slots): Update.
4970         (fill_simple_delay_slots): Update.
4971         (make_return_insns): Update.
4972         (dbr_schedule): Update.
4973         * gimple-low.c (record_vars_into): Update.
4974         * cfgbuild.c (make_edges): Update.
4975         * function.c (assign_stack_local): Update.
4976         (assign_parm_adjust_stack_rtl): Update.
4977         (locate_and_pad_parm): Update.
4978         (allocate_struct_function): Do not initialize stack_alignment_needed
4979         and preferred_stack_boundary here.
4980         (stack_protect_prologue): Update.
4981         (stack_protect_epilogue): Update.
4982         (expand_function_start): Initialize stack_alignment_needed,
4983         preferred_stack_boundary and max_jumptable_ents.
4984         (expand_function_end): Update.
4985         (free_after_compilation): Do not NULLify epilogue_delay_list.
4986         * function.h (struct rtl_data): Add stack_protect_guard,
4987         stack_alignment_needed,
4988         preferred_stack_boundary, epilogue_delay_list.
4989         (struct function): Remove value_histograms, stack_alignment_needed,
4990         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4991         last_label_uid,
4992         unexpanded_var_list, stack_protect_guard.
4993         (current_function_epilogue_delay_list): Remove.
4994         * ipa-type-escape.c (analyze_function): Update.
4995         * gimplify.c (pop_gimplify_context): Update comment.
4996         * calls.c (expand_call): Update.
4997         (emit_library_call_value_1): Update.
4998         * except.c (set_nothrow_function_flags): Update.
4999         * cfgexpand.c (get_decl_align_unit): Update.
5000         (create_stack_guard): Update.
5001         (estimated_stack_frame_size): Update.
5002         (expand_used_vars): Update.
5003         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5004         * explow.c (allocate_dynamic_stack_space): Update.
5005         * tree-ssa-live.c (remove_unused_locals): Update.
5006         * varasm.c (mark_constant_pool): Update.
5007         * tree-inline.c (remap_decls): Update.
5008         (initialize_cfun): Update.
5009         (declare_return_variable): Update.
5010         (inline_forbidden_p): Update.
5011         (expand_call_inline): Update.
5012         (declare_inline_vars): Update.
5013         (tree_function_versioning): Update.
5014         * tree-flow.h (value_histograms): New.
5015         (VALUE_HISTOGRAMS): New macro.
5016         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5017         last_label_uid.
5018         * tree-cfg.c (set_bb_for_stmt): Update.
5019         (replace_by_duplicate_decl): Update.
5020         (move_block_to_fn): Update.
5021         (new_label_mapper): Update.
5022         (dump_function_to_file): Update.
5023         * ipa-struct-reorg.c (build_data_structure): Update.
5024         * cfgrtl.c (print_rtl_with_bb): Update.
5025         * reload1.c (reload): Update.
5026         (reload): Update.
5027         * config/i386/i386.c (setup_incoming_varargs_64,
5028         ix86_compute_frame_layout): Update.
5029         * config/arc/arc.c (arc_output_function_epilogue): Update.
5030
5031 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5032
5033         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5034         for FreeBSD as well.
5035         * gthr-posix95.h: Likewise.
5036
5037 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5038
5039         PR rtl-optimization/35838
5040         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5041         out the byte offset of the first subreg.
5042
5043 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5044
5045         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5046         to split_ti instead of three separate calls with single member arrays.
5047         (subti3 splitter): Ditto.
5048         (adddi3 splitter): Ditto with split_di.
5049         (subdi3 splitter): Ditto.
5050         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5051         two separate calls with single member arrays.  Swap match_dup
5052         operands 1 and 2 to better fit into the array.
5053         (negdi2 splitter): Ditto with split_di.
5054         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5055         two separate calls with single member arrays.  Swap match_dup operands
5056         6 and 7 to better fit into the array.
5057
5058 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5059
5060         * config/i386/i386.c (sse_builtin_type): New.
5061         (bdesc_sse_args): Likewise.
5062         (bdesc_sse_3arg): Removed.
5063         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5064         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5065         IX86_BUILTIN_ROUNDPS.
5066         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5067         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5068         IX86_BUILTIN_ROUNDPS.
5069         (ix86_expand_sse_4_operands_builtin): Removed.
5070         (ix86_expand_sse_operands_builtin): New.
5071         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5072         and CODE_FOR_sse4_1_roundps.
5073         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5074         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5075
5076 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5077
5078         PR target/35907
5079         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5080         regs before frame pop when needed.  If use_backchain_to_restore_sp
5081         then load backchain into a temp reg to restore vr and vrsave.  Add
5082         code to restore vr after frame pop if possible.
5083
5084 2008-04-17  Richard Guenther  <rguenther@suse.de>
5085
5086         * tree-vn.c (expressions_equal_p): Do not check type
5087         equality or compatibility before calling operand_equal_p.
5088         * fold-const.c (operand_equal_p): Check equivalence of
5089         integer constants before bailing out due to signedness or
5090         precision differences.
5091         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5092         spurious differences in type qualification.  Ignore types
5093         for COMPONENT_REFs at all.
5094
5095 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5096
5097         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5098         msw_skip comparison.
5099         
5100 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5101
5102         PR c/35739
5103         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5104         reg type.
5105
5106         PR tree-optimization/35899
5107         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5108         rather than TREE_OPERAND.
5109
5110 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5111
5112         PR target/35944
5113         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5114         temporary registers.  Change operand predicate to general_operand.
5115         (remainderxf3): Ditto.
5116
5117 2008-04-16  Richard Guenther  <rguenther@suse.de>
5118
5119         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5120         * tree-affine.c (aff_combination_expand): Look through some
5121         conversions.
5122
5123 2008-04-15  Doug Kwan  <dougkwan@google.com>
5124
5125         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5126         for hex printing.
5127         * tree-pretty-print.c (dump_generic_node): Ditto.
5128         * final.c (output_addr_const): Ditto.
5129         * dwarf2out.c (output_cfi): Ditto.
5130         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5131         * print-rtl.c (print_rtx): Ditto.
5132         * print-tree.c (print_node_brief, print_node): Ditto.
5133         * c-common.c (match_case_to_enum_1): Ditto.
5134         * sched-vis.c (print_value): Ditto.
5135         * config/i386/i386.c (print_operand): Cast to long unsigned int
5136         for hex printing.
5137
5138 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5139         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5140         MS Windows VirtualProtect function.
5141
5142 2008-04-15  Jan Hubicka  <jh@suse.cz>
5143
5144         * gengtype.c (write_root): Param_is argument is OK.
5145         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5146         * function.h: Include varray.h
5147         (rtl_eh): New stucture based on except.c one.
5148         (call_site_record): New forward declaration and vector type.
5149         * calls.c (emit_call_1): Do not call
5150         note_current_region_may_contain_throw.
5151         * except.c (eh_status): Remove cur_region, try_region since they are
5152         unused.
5153         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5154         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5155         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5156         Remove call_site_data_used, call_site_data_size.
5157         Turn call_site_record into vector in function.h.
5158         (note_current_region_may_contain_throw): Remove.
5159         (get_exception_pointer, get_exception_filter): Do not take struct
5160         function argument; update.
5161         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5162         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5163         build_post_landing_pads, dw2_build_landing_pads,
5164         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5165         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5166         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5167         sjlj_build_landing_pads, finish_eh_generation,
5168         remove_exception_handler_label, remove_eh_handler,
5169         maybe_remove_eh_handler, add_reachable_handler,
5170         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5171         add_action_record, collect_one_action_chain, add_call_site,
5172         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5173         sjlj_output_call_site_table, output_function_exception_table,
5174         * except.h (note_current_region_may_contain_throw): Remove
5175         (get_exception_pointer, get_exception_filter): Do not take struct
5176         function argument.
5177         * Makefile.in (GTFILES): Put varargs before struct function.
5178
5179 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5180
5181         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5182         punt for STRING_CST.
5183         (get_constraint_for): Deal with STRING_CST here instead.
5184
5185 2008-04-15  Richard Guenther  <rguenther@suse.de>
5186
5187         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5188         statements in a basic-block with a backward walk.  Do not
5189         substitute into dead statements but instead remove those.
5190
5191 2008-04-15  Richard Guenther  <rguenther@suse.de>
5192
5193         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5194         to zero, thus disable creation of SFTs.
5195
5196 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5197
5198         * tree-predcom.c (suitable_reference_p): Return false if the
5199         reference can throw.
5200
5201 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5202
5203         PR c/35751
5204         * c-decl.c (finish_decl): If extern or static var has variable
5205         size, set TREE_TYPE (decl) to error_mark_node.
5206
5207 2008-04-15  Rafael Espindola  <espindola@google.com>
5208
5209         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5210         variable arg1.
5211
5212 2008-04-15  Richard Guenther  <rguenther@suse.de>
5213
5214         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5215         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5216         (visit_reference_op_load): Do walk vuse-vdef chains on
5217         vn_reference_lookup.
5218         (visit_reference_op_store): But do not here.
5219         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5220         vn_reference_lookup.
5221         (vn_lookup_with_vuses): But do so here.
5222
5223 2008-04-14  Ian Lance Taylor  <iant@google.com>
5224
5225         * fold-const.c (fold_overflow_warning): Remove assertion.
5226
5227 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5228
5229         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5230         temp1 local variables.
5231
5232 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5233
5234         PR target/35661
5235         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5236         ".text.unlikely" section as executable.
5237
5238 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5239
5240         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5241         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5242         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5243         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5244         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5245         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5246         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5247
5248 2008-04-14  Ian Lance Taylor  <iant@google.com>
5249
5250         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5251         * fold-const.c (fold_comparison): If appropriate, test
5252         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5253         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5254         reassociating a pointer type.
5255         * doc/invoke.texi (Optimize Options): Document that
5256         -fstrict-overflow applies to pointer wraparound.
5257
5258 2008-04-13  Jan Hubicka  <jh@suse.cz>
5259
5260         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5261
5262 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5263
5264         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5265         we are going to "save the world".
5266
5267 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5268
5269         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5270         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5271         operand 0 constraint, not "=".
5272
5273 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5274
5275         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5276
5277 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5278
5279         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5280         of size of positions_needed * CHAR_BIT.
5281
5282 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5283
5284         PR middle-end/35897
5285         * dse.c (store_info): Change positions_needed to unsigned
5286         HOST_WIDE_INT.
5287         (lowpart_bitmask): New.
5288         (record_store): Cast to unsigned HOST_WIDE_INT for
5289         positions_needed.  Assert width <= size of positions_needed *
5290         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5291         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5292         lowpart_bitmask to set mask.
5293
5294 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5295
5296         * config/bfin/constraints.md: New file.
5297         * config/bfin/bfin.md: Include it.
5298         (adddi3): Use satisfies_constraint functions instead of the old macros.
5299         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5300         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5301         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5302         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5303         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5304         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5305         EXTRA_CONSTRAINT): Delete.
5306         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5307         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5308         of the old macros.
5309         * config/bfin/bfin.c: Include "tm-constrs.h".
5310         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5311         Use satisfies_constraint functions instead of the old macros.
5312         * doc/md.texi (Blackfin Constraints): Update file name reference.
5313
5314 2008-04-11  Richard Guenther  <rguenther@suse.de>
5315
5316         PR tree-optimization/35869
5317         * tree-vrp.c (execute_vrp): Move switch statement update after
5318         jump threading.  Schedule another cfg cleanup run.
5319
5320 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5321
5322         PR c/35744
5323         * attribs.c (decl_attributes): Return early on errorneous node.
5324
5325 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5326
5327         * tree.h (struct tree_base): Added a new flag default_def_flag.
5328         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5329
5330 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5331
5332         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5333
5334 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5335
5336         PR target/35768
5337         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5338         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5339         (icacheflush): Likewise.
5340         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5341         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5342
5343 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5344
5345         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5346
5347 2008-04-10  Rafael Espindola  <espindola@google.com>
5348
5349         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5350         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5351         (extract_range_from_expr): The same.
5352
5353 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5354
5355         * config/mips/mips.md (GPR2): New mode iterator.
5356         (seq): Add comment.
5357         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5358         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5359         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5360         Rewrite these to take two modes, the mode of comparison and the
5361         mode of the destination.
5362         * config/mips/mips.c (mips_expand_scc): Instead of having
5363         paradoxical subreg as destination, expand "narrowing" scc if mode
5364         of comparison is SI and target is requested in DI mode.
5365         (mips_emit_int_order_test): Update comment.  Make mode of
5366         comparison match CMP0 rather than TARGET.  When creating inverse
5367         target use mode of TARGET.
5368
5369 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5370
5371         * gcov-dump.c (tag_summary): Only print summaries for the first
5372         GCOV_COUNTERS_SUMMABLE counters.
5373
5374 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5375
5376         * config/i386/i386.md (absneg): New code iterator.
5377         (absnegprefix): New code attribute.
5378         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5379         patterns using absneg code iterator.
5380         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5381         using absneg code iterator.
5382         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5383         *neg<mode>2 patterns using absneg code iterator.
5384         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5385         *negextendsfdf2 patterns using absneg code iterator.
5386         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5387         *negextendsfxf2 patterns using absneg code iterator.
5388         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5389         *negextendsfdf2 patterns using absneg code iterator.
5390         * config/i386/sse.md (<code><mode>2): Macroize expander from
5391         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5392
5393 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5394
5395         * config/s390/s390.h: Remove the remains of the recent search
5396         & replace action of current_function_outgoing_args_size.
5397
5398 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5399
5400         PR tree-optimization/35821
5401         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5402         NEW_STMT_LIST is not NULL.
5403
5404 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5405
5406         PR libstdc++/35597
5407         * toplev.c (process_options): Remove -ffunction-sections debugging
5408         warning.
5409
5410 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5411
5412         PR middle-end/PR28690
5413         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5414         than gen_rtx_fmt_ee to perform more canonicalizations.
5415
5416 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5417
5418         PR driver/35665
5419         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5420
5421 2008-04-09  Richard Guenther  <rguenther@suse.de>
5422
5423         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5424         (dump_function_to_file): Dump function arguments with types.
5425
5426 2008-04-08  Richard Guenther  <rguenther@suse.de>
5427
5428         * fold-const.c (fold_widened_comparison): Do not allow
5429         sign-changes that change the result.
5430
5431 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5432
5433         PR target/35839
5434         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5435         kinds of indirect references.
5436
5437 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5438
5439         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5440         GNU Fortran language string.
5441
5442 2008-04-08  Rafael Espindola  <espindola@google.com>
5443
5444         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5445         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5446         * tree.h (tree_call_nonnegative_warnv_p): New.
5447
5448 2008-04-08  Jan Hubicka  <jh@suse.cz>
5449
5450         * function.c (free_after_compilation): Clear out regno_reg_rtx
5451         pointer.
5452
5453 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5454
5455         Revert
5456         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5457
5458         PR middle-end/PR28690
5459         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5460         same precedence as REG_POINTER and MEM_POINTER operands.
5461
5462 2008-04-08  Richard Guenther  <rguenther@suse.de>
5463
5464         PR middle-end/35834
5465         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5466         for adding index to base.
5467
5468 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5469
5470         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5471         (MINGW_ENABLE_EXECUTE_STACK): New.
5472         (IN_LIBGCC2): For libgcc include windows.h file for
5473         function declarations.
5474
5475 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5476
5477         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5478         and tem2 if tem1 is not a REG or MULT.
5479
5480 2008-04-08  Jan Hubicka  <jh@suse.cz>
5481
5482         * function.h (incomming_args): Break out of struct function.
5483         (function_subsections): Break out of struct function.
5484         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5485         return_rtx and hard_reg_initial_vals from struct function.
5486         Kill inl_max_label_num.
5487         (current_function_pops_args, current_function_args_info,
5488         current_function_args_size, current_function_args_size,
5489         current_function_pretend_args_size,
5490         current_function_outgoing_args_size,
5491         current_function_internal_arg_pointer, current_function_return_rtx):
5492         Kill compatibility accestor macros.
5493         * builtins.c (expand_builtin_apply_args_1): Update.
5494         (expand_builtin_next_arg): Update.
5495         * df-scan.c (df_get_call_refs): Update.
5496         * dbxout.c (dbxout_function_end): Update.
5497         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5498         (output_line_info): Update.
5499         (secname_for_decl): Update.
5500         (dwarf2out_var_location): Update.
5501         * function.c (free_after_compilation): Update.
5502         (assign_parm_find_stack_rtl): Update.
5503         (assign_parms): Update.
5504         (expand_dummy_function_end): Update.
5505         (expand_function_end): Update.
5506         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5507         (expand_call): Update.
5508         (emit_library_call_value_1): Update.
5509         (store_one_arg): Update.
5510         * varasm.c (initialize_cold_section_name): Update.
5511         (unlikely_text_section): Update.
5512         (unlikely_text_section_p): Update.
5513         (assemble_start_function): Update.
5514         (assemble_end_function): Update.
5515         (default_section_type_flags): Update.
5516         (switch_to_section): Update.
5517         * integrate.c (set_decl_abstract_flags): Update.
5518         (get_hard_reg_initial_val): Update.
5519         (has_hard_reg_initial_val): Update.
5520         (allocate_initial_values): Update.
5521         * resource.c (init_resource_info): Update.
5522         * config/alpha/alpha.c (NUM_ARGS): Update.
5523         (direct_return): Update.
5524         (alpha_va_start): Update.
5525         (alpha_sa_size): Update.
5526         (alpha_initial_elimination_offset): Update.
5527         (alpha_expand_prologue): Update.
5528         (alpha_start_function): Update.
5529         (alpha_expand_epilogue): Update.
5530         (unicosmk_initial_elimination_offset):
5531         * config/alpha/alpha.md (call expander): Update.
5532         * config/s390/s390.c (s390_register_info): Update.
5533         (s390_register_info): Update.
5534         (s390_frame_info): Update.
5535         (s390_initial_elimination_offset): Update.
5536         (s390_build_builtin_va_list): Update.
5537         (s390_va_start): Update.
5538         * config/spu/spu.c (direct_return): Update.
5539         (spu_expand_prologue): Update.
5540         (spu_initial_elimination_offset): Update.
5541         (spu_build_builtin_va_list): Update.
5542         (spu_va_start): Update.
5543         * config/sparc/sparc.c (sparc_init_modes): Update.
5544         (sparc_compute_frame_size): Update.
5545         (function_value): Update.
5546         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5547         * config/i386/i386.md (return expander): Update.
5548         * config/i386/i386.c (ix86_va_start): Update.
5549         (ix86_can_use_return_insn_p): Update.
5550         (ix86_compute_frame_layout): Update.
5551         (ix86_expand_epilogue): Update.
5552         * config/sh/sh.c (output_stack_adjust): Update.
5553         (calc_live_regs): Update.
5554         (sh_expand_prologue): Update.
5555         (sh_builtin_saveregs): Update.
5556         (sh_va_start): Update.
5557         (initial_elimination_offset): Update.
5558         (sh_allocate_initial_value): Update.
5559         (sh_function_ok_for_sibcall): Update.
5560         (sh_get_pr_initial_val): Update.
5561         * config/sh/sh.md (return expander): Update.
5562         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5563         * config/crx/crx.c (crx_compute_frame): UPdate.
5564         (crx_initial_elimination_offset): UPdate.
5565         * config/xtensa/xtensa.c (compute_frame_size): Update
5566         (xtensa_builtin_saveregs): Update.
5567         (xtensa_va_start): Update.
5568         (order_regs_for_local_alloc): Update.
5569         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5570         (xstormy16_expand_builtin_va_start): Update.
5571         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5572         * config/m68hc11/m68hc11.md (return expanders): Update.
5573         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5574         (expand_epilogue): Update.
5575         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5576         (cris_simple_epilogue): Update.
5577         (cris_expand_prologue): Update.
5578         (cris_expand_epilogue): Update.
5579         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5580         (compute_frame_size): Update.
5581         * config/mt/mt.c (mt_compute_frame_size): Update.
5582         * config/mn10300/mn10300.c (expand_prologue): Update.
5583         (expand_epilogue): Update.
5584         (initial_offset): Update.
5585         (mn10300_builtin_saveregs):
5586         * config/mn10300/mn10300.md (return expander): Update.
5587         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5588         (ia64_initial_elimination_offset): Update.
5589         (ia64_initial_elimination_offset): Update.
5590         (ia64_expand_prologue): Update.
5591         * config/m68k/m68k.md (return expander): Update.
5592         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5593         (rs6000_stack_info): Update.
5594         * config/mcore/mcore.c (layout_mcore_frame): Update.
5595         (mcore_expand_prolog): Update.
5596         * config/arc/arc.c (arc_compute_frame_size): Update.
5597         * config/score/score3.c (score3_compute_frame_size): Update.
5598         * config/score/score7.c (score7_compute_frame_size): Update.
5599         * config/arm/arm.c (use_return_insn): Update.
5600         (thumb_find_work_register): Update.
5601         (arm_compute_save_reg_mask): Update.
5602         (arm_output_function_prologue): Update.
5603         (arm_output_epilogue): Update.
5604         (arm_size_return_regs): Update.
5605         (arm_get_frame_offsets): Update.
5606         (arm_expand_prologue): Update.
5607         (thumb_exit): Update.
5608         (thumb_unexpanded_epilogue): Update.
5609         (thumb1_output_function_prologue): Update.
5610         * config/pa/pa.md (return expander): Update.
5611         * config/pa/pa.c (compute_frame_size): Update.
5612         (hppa_builtin_saveregs): Update.
5613         * config/mips/mips.c (mips_va_start): Update.
5614         (mips16_build_function_stub): Update.
5615         (mips_compute_frame_info): Update.
5616         (mips_restore_gp): Update.
5617         (mips_output_function_prologue): Update.
5618         (mips_expand_prologue): Update.
5619         * config/v850/v850.c (compute_frame_size): Update.
5620         (expand_prologue): * config/mmix/mmix.c (along): update.
5621         (mmix_initial_elimination_offset): update.
5622         (mmix_reorg): update.
5623         (mmix_use_simple_return): update.
5624         (mmix_expand_prologue): update.
5625         (mmix_expand_epilogue): Update.
5626         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5627         (emit_link_insn): Update.
5628
5629 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5630
5631         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5632         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5633         instructions.
5634         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5635         atmega103 device.
5636
5637 2008-04-07  Jan Hubicka  <jh@suse.cz>
5638
5639         * function.h (rtl): Rename to x_rtl.
5640         (crtl): New define.
5641         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5642         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5643         used_temp_slots avail_temp_slots, temp_slot_level,
5644         nonlocal_goto_handler_labels): Update accesstors.
5645         (rtl): New global variable.
5646         (struct function): Move some fileds to rtl_data.
5647         (get_arg_pointer_save_area): Update prototype.
5648         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5649         get_arg_pointer_save_area.
5650         * expr.c (init_expr): Update
5651         * function.c (get_frame_size): Update
5652         (assign_stack_local): Update
5653         (expand_function_end): Update.
5654         (get_art_pointer_save_area): Update
5655         * function.h 
5656         * emit-rtl.c (rtl): Declare.
5657         (regno_reg_rtx): Declare.
5658         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5659         Update.
5660         (gen_reg_rtx): Update.
5661         * varasm.c (n_deferred_constatns): Update accestor.
5662         (init_varasm_status): Do not allocate varasm_status.
5663         (force_const_mem, get_pool_size, output_constant_pool): Update.
5664         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5665         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5666         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5667         * sparc/sparc.h (INIT_EXPANDERS): Update.
5668         * ia64/ia64.h (INIT_EXPANDERS): Update.
5669
5670 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5671
5672         * reload.c (push_secondary_reload): Add missing break to for loop.
5673
5674 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5675
5676         PR middle-end/PR28690
5677         * rtlanal.c: Update copyright years.
5678         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5679         as REG_POINTER and MEM_POINTER operands.
5680         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5681         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5682         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5683         * gcse.c: Update copyright years.
5684         (pre_delete): Call gen_reg_rtx_and_attrs.
5685         (hoist_code): Likewise.
5686         (build_store_vectors): Likewise.
5687         (delete_store): Likewise.
5688         * loop-invariant.c (move_invariant_reg): Likewise.
5689         Update copyright years.
5690
5691 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5692
5693         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5694         control string instead of quoted.
5695
5696 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5697
5698         * doc/rtl.texi: Rewrite of subreg section.
5699
5700 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5701
5702         PR/35842
5703         * config/i386/i386.c (legitimize_pic_address): Add treating
5704         of dllimport SYM_REF's.
5705         (legitimize_dllimport_symbol): Add prototype.
5706
5707 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5708
5709         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5710         reference in constructor with non self-referential type.
5711
5712 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5713
5714         Removal of Return with Depressed Stack Pointer support
5715         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5716         (ECF_SP_DEPRESSED): Likewise.
5717         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5718         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5719         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5720         (expand_call): Do not test ECF_SP_DEPRESSED.
5721         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5722         * function.c (keep_stack_depressed): Delete.
5723         (handle_epilogue_set): Likewise.
5724         (update_epilogue_consts): Likewise.
5725         (emit_equiv_load): Likewise.
5726         (thread_prologue_and_epilogue_insns): Remove support for Return with
5727         Depressed Stack Pointer.
5728         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5729
5730 2008-04-06  Richard Guenther  <rguenther@suse.de>
5731
5732         PR tree-optimization/35400
5733         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5734         information from SSA_NAMEs.
5735
5736 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5737
5738         * config/avr/avr.h (avr_mega_p): Remove declaration.
5739         (AVR_MEGA): Remove macro.
5740         * config/avr/avr.c (avr_mega_p): Remove variable.
5741         (avr_override_options): Remove inicializion of avr_mega_p.
5742         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5743         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5744         (avr_jump_mode): (Ditto.).
5745         (avr_output_progmem_section_asm_op): (Ditto.).
5746         (avr_asm_init_sections): (Ditto.).
5747         (avr_asm_init_sections): (Ditto.).
5748         (avr_rtx_costs): (Ditto.).
5749         * config/avr/avr.md: (Ditto.).
5750         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5751         '__AVR_MEGA__'.
5752
5753 2008-04-06  Richard Guenther  <rguenther@suse.de>
5754
5755         PR tree-optimization/35842
5756         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5757         is_gimple_invariant_address.
5758
5759 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5760
5761         * gcc.c (default_compilers): Sync Fortran extensions list with
5762         that in fortran/lang-specs.h.
5763         * doc/invoke.texi: Likewise.
5764         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5765         * dwarf2out.c (gen_compile_unit_die): Likewise.
5766
5767 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5768
5769         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5770
5771 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5772
5773         PR target/12329
5774         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5775         attribute is used for nested functions.
5776
5777 2008-04-05  Jan Hubicka  <jh@suse.cz>
5778
5779         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5780
5781         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5782         letter argument.
5783         (dump_files): Update.
5784         (enable_rtl_dump_file): Do not accept letter argument.
5785         * tree-pass.h (dump_file_info): Remove letter argument.
5786         * toplev.c (decode_d_option): Update -da handling.
5787         * toplev.h (enable_rtl_dump_file): Update prototype.
5788         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5789         it out based on pass type.
5790         (register_dump_files_1): Likewise.
5791         (init_optimization_passes): Update register_one_dump_file calls.
5792         (execute_one_pass): Sanity check that IPA passes are called at IPA
5793         level and RTL passes at RTL level.
5794         (execute_pass_list): IPA pass can not be after or subpass of
5795         GIMPLE/RTL pass.
5796         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5797         disallov RTL subpasses of IPA subpasses.
5798
5799 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5800
5801         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5802         builtins that return exactly once and do not throw. Cache call to
5803         call_expr_flags.
5804
5805 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5806
5807         PR rtl-optimization/34916
5808         PR middle-end/35519
5809         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5810         between instruction pairs.
5811
5812 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5813
5814         * doc/invoke.texi: Document -mbitops for SH.
5815         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5816         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5817         * config/sh/sh.c (print_operand): Add %t operand code.
5818         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5819         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5820         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5821         (extendqihi2): Likewise.
5822         (movqi_i): Likewise.
5823         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5824         (extv): Use bld instruction for SH2A if possible.
5825         (extzv): Likewise.
5826         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5827         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5828         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5829         (bset.b, bclr.b): Define peepholes.
5830         * config/sh/sh.opt (mbitops): New option.
5831
5832 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5833
5834         PR target/35620
5835         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5836         and view convert expression.
5837
5838 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5839
5840         PR target/35364
5841         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5842
5843 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5844
5845         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5846
5847         * config/i386/cpuid.h (bit_AES): New.
5848         (bit_PCLMUL): Likewise.
5849
5850         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5851         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5852         SSE2 if AES or PCLMUL is enabled.
5853         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5854         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5855         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5856         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5857         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5858         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5859         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5860         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5861         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5862         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5863         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5864         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5865         __builtin_ia32_aeskeygenassist128 and
5866         __builtin_ia32_pclmulqdq128.
5867         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5868         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5869         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5870
5871         * config/i386/i386.h (TARGET_AES): New.
5872         (TARGET_PCLMUL): Likewise.
5873         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5874
5875         * config/i386/i386.md (UNSPEC_AESENC): New.
5876         (UNSPEC_AESENCLAST): Likewise.
5877         (UNSPEC_AESDEC): Likewise.
5878         (UNSPEC_AESDECLAST): Likewise.
5879         (UNSPEC_AESIMC): Likewise.
5880         (UNSPEC_AESKEYGENASSIST): Likewise.
5881         (UNSPEC_PCLMUL): Likewise.
5882
5883         * config/i386/i386.opt (maes): New.
5884         (mpclmul): Likewise.
5885
5886         * config/i386/sse.md (aesenc): New pattern.
5887         (aesenclast): Likewise.
5888         (aesdec): Likewise.
5889         (aesdeclast): Likewise.
5890         (aesimc): Likewise.
5891         (aeskeygenassist): Likewise.
5892         (pclmulqdq): Likewise.
5893
5894         * config/i386/wmmintrin.h: New.
5895
5896         * doc/extend.texi: Document AES and PCLMUL built-in function.
5897
5898         * doc/invoke.texi: Document -maes and -mpclmul.
5899
5900 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5901
5902         * function.c (free_after_parsing): Replace with
5903         cxx_push_function_context from C++ front-end.
5904         (allocate_struct_function): Don't call langhook.
5905         * langhooks.h (struct lang_hooks_for_functions): Delete.
5906         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5907         member "function".
5908         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5909         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5910         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5911         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5912         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5913         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5914         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5915
5916         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5917         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5918         
5919 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5920
5921         PR c/35440
5922         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5923         for all types.
5924
5925 2008-04-04  Richard Guenther  <rguenther@suse.de>
5926
5927         PR middle-end/35823
5928         * fold-const.c (optimize_minmax_comparison): Use the correct
5929         type for the constant in the simplified comparison.
5930
5931 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5932
5933         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5934         Pass L2 size as "--param l2-cache-size" to the compiler.
5935         (decode_l2_cache): New function to decode L2 cache parameters using
5936         0x8000006 extended cpuid function.
5937         (detect_caches_amd): Determine parameters of L2 cache using
5938         decode_l2_caches function.
5939         (decode_caches_intel): Decode L2 cache parameters.
5940         (detect_caches_intel): Determine L2 cache parameters using
5941         decode_caches_intel and decode_l2_caches functions.
5942
5943 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5944
5945         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5946         secondary input reload for subword loads from the constant pool.
5947
5948 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5949
5950         PR target/35713
5951         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5952           constants of the appropriate size for runtime calculations.
5953
5954         PR c/35712
5955         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5956           decimal-float literal constant zero.
5957
5958 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5959
5960         PR c/35738
5961         * c-parser.c (c_parser_omp_atomic): Call
5962         default_function_array_conversion on the RHS.
5963
5964         PR middle-end/35818
5965         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5966         call is_variable_sized if decl has incomplete type.
5967
5968 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5969
5970         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5971
5972 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5973
5974         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5975         iterators.
5976         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5977         (sgt<u>): Merge sgt and sgtu into new expander.
5978         (sgt, sgtu): Remove expanders.
5979         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5980         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5981         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5982         *sgtu_<mode>_mips16 into new pattern.
5983         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5984         (sge<u>): Merge sge and sgeu into new expander.
5985         (sge, sgeu): Remove expanders.
5986         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5987         new pattern.
5988         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5989         (slt<u>): Merge slt and sltu into new expander.
5990         (slt, sltu): Remove expanders.
5991         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5992         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5993         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5994         *sltu_<mode>_mips16 into new pattern.
5995         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5996         (sle<u>): Merge sle and sleu into new expander.
5997         (sle, sleu): Remove expanders.
5998         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5999         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6000         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6001         *sleu_<mode>_mips16 into new pattern.
6002         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6003
6004 2008-04-03  Jan Hubicka  <jh@suse.cz>
6005
6006         PR tree-optimization/35795
6007         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6008         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6009         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6010         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6011         * score/score3.c (score3_output_mi_thunk): Likewise.
6012         * score/score7.c (score7_output_mi_thunk): Likewise.
6013         * mips/mips.c (mips_output_mi_thunk): Likewise.
6014
6015 2008-04-03  Richard Guenther  <rguenther@suse.de>
6016
6017         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6018         conversions.  Simplify code.
6019
6020 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6021
6022         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6023
6024 2008-04-03  Tom Tromey  <tromey@redhat.com>
6025             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6026
6027         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6028         * config/bfin/t-bfin-linux (generated_files): Add
6029         linux-sysroot-suffix.h.
6030         * doc/install.texi (Prerequisites): Require make 3.80.
6031         * doc/sourcebuild.texi (Front End Directory): Document new
6032         variable.
6033         * Makefile.in (generated_files): New variable.
6034         (ALL_HOST_OBJS): New variable.
6035         ($(ALL_HOST_OBJS)): New target.
6036
6037 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6038
6039         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6040         (remap_block): Call id->transform_lang_insert_block instead
6041         of langhook.
6042         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6043         Set id.transform_lang_insert_block to NULL.
6044         (clone_body): Move to cp/optimize.c
6045         * tree-inline.h (struct copy_body_data): Change
6046         transform_lang_insert_block to function pointer.
6047         (copy_generic_body, copy_decl_no_change): Export.
6048         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6049         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6050         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6051
6052         * c-tree.h (insert_block): Kill.
6053         * c-decl.c (insert_block): Kill.
6054
6055 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6056
6057         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6058         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6059         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6060         argument.
6061         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6062         argument, call {push,pop}_function_context from here.
6063         * c-parser.c: Use c_{push,pop}_function_context.
6064
6065         * function.c (push_function_context_to): Move meat ...
6066         (push_function_context): ... here.  Simplify.
6067         * function.c (pop_function_context_from): Move meat ...
6068         (pop_function_context): ... here.  Simplify.
6069         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6070         leave_nested).
6071         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6072         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6073         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6074         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6075
6076 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6077
6078         * expmed.c (extract_force_align_mem_bit_field): Remove.
6079
6080 2008-04-03  Richard Guenther  <rguenther@suse.de>
6081
6082         PR middle-end/35800
6083         * expr.h (try_casesi): Adjust prototype.
6084         * expr.c (try_casesi): Take fallback label as extra parameter.
6085         Use that for gen_casesi if default_label is NULL.
6086         * stmt.c (expand_case): Pass fallback label to try_casesi,
6087         make sure to fill gaps with a fallback label if default_label
6088         is not present.
6089
6090 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6091
6092         PR target/35801
6093         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6094
6095 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6096
6097         * expmed.c (extract_split_bit_field): Remove if (0) code.
6098         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6099         (do_ds_constraint): Likewise.
6100
6101 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6102
6103         * doc/cppopts.texi (-dU): Document.
6104         * c-common.h (flag_dump_macros): Update comment.
6105         * c-opts.c (handle_OPT_d): Handle -dU.
6106         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6107         dump_queued_macros, cb_used_define, cb_used_undef): New.
6108         (init_pp_output): Handle -dU.
6109         (cb_line_change): Call dump_queued_macros.
6110         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6111
6112 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6113
6114         * config/avr/predicates.md (io_address_operand): New predicate. 
6115         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6116         * config/avr/avr.c (avr_io_address_p): Remove function.
6117         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6118         'avr_io_address_p' function.
6119         (out_movhi_r_mr): (Ditto.).
6120         (out_movqi_mr_r): (Ditto.).
6121         (out_movhi_mr_r): (Ditto.).
6122         (avr_address_cost): (Ditto.).
6123
6124 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6125
6126         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6127         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6128         in 32bit mode when XMM registers are available to avoid store
6129         forwarding stalls.
6130         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6131         corresponding post-reload splitters.
6132
6133 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6134
6135         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6136         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6137         __builtin_ia32_roundss.
6138         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6139         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6140         __builtin_ia32_roundss.
6141         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6142         IX86_BUILTIN_SHUFPD here.
6143
6144 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6145
6146         * config/i386/i386.md (plogic): New.
6147         (plogicprefix): Likewise.
6148
6149         * config/i386/mmx.md (mmx_<code><mode>3): New.
6150         (mmx_and<mode>3): Removed.
6151         (mmx_ior<mode>3): Likewise.
6152         (mmx_xor<mode>3): Likewise.
6153
6154         * config/i386/sse.md (<code><mode>3): New.
6155         (*<code><mode>3): Likewise.
6156         (*<code><mode>3): Likewise.
6157         (<code><mode>3): Likewise.
6158         (*sse_<code><mode>3): Likewise.
6159         (*sse2_<code><mode>3): Likewise.
6160         (<code>tf3): Likewise.
6161         (*<code>tf3): Likewise.
6162         (and<mode>3): Likewise.
6163         (*and<mode>3): Likewise.
6164         (ior<mode>3): Removed.
6165         (*ior<mode>3): Likewise.
6166         (xor<mode>3): Likewise.
6167         (*xor<mode>3): Likewise.
6168         (*and<mode>3): Likewise.
6169         (*ior<mode>3): Likewise.
6170         (*xor<mode>3): Likewise.
6171         (and<mode>3): Likewise.
6172         (*sse_and<mode>3): Likewise.
6173         (*sse2_and<mode>3): Likewise.
6174         (andtf3): Likewise.
6175         (*andtf3): Likewise.
6176         (ior<mode>3): Likewise.
6177         (*sse_ior<mode>3): Likewise.
6178         (*sse2_ior<mode>3): Likewise.
6179         (iortf3): Likewise.
6180         (*iortf3): Likewise.
6181         (xor<mode>3): Likewise.
6182         (*sse_xor<mode>3): Likewise.
6183         (*sse2_xor<mode>3): Likewise.
6184         (xortf3): Likewise.
6185         (*xortf3): Likewise.
6186
6187 2008-04-02  Richard Guenther  <rguenther@suse.de>
6188
6189         PR tree-optimization/14495
6190         PR tree-optimization/34793
6191         * tree-vrp.c (struct switch_update): New structure.
6192         (to_remove_edges, to_update_switch_stmts): New VECs.
6193         (simplify_switch_using_ranges): New function.  Remove not taken
6194         case labels and edges.
6195         (simplify_stmt_using_ranges): Call it.
6196         (identify_jump_threads): Mark edges we have queued for removal
6197         so we don't thread them.
6198         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6199         case label vector.
6200         * tree-cfg.c (group_case_labels): Deal with missing default label.
6201         (tree_verify_flow_info): Allow missing default label.
6202         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6203         (emit_case_nodes): Likewise.
6204         (expand_case): Do not rely on the default label to be present.
6205         * expr.c (try_casesi): Deal with NULL default_label.
6206         (do_tablejump): Likewise.
6207
6208 2008-04-02  Richard Guenther  <rguenther@suse.de>
6209
6210         PR tree-optimization/14495
6211         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6212         SWITCH_EXPR here ...
6213         (vrp_visit_switch_stmt): ... but here (new function).
6214         (find_case_label_index): New helper function.
6215         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6216
6217 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6218
6219         * fwprop.c: Fix ISO-C99ism.
6220
6221 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6222
6223         PR bootstrap/35752
6224         * Makefile.in (objdir): Set it here.
6225         * configure.ac: Not here.  Find dynamic linker characteristics.
6226         * exec-tool.in: Use them.
6227         * aclocal.m4: Regenerate.
6228         * configure: Regenerate.
6229
6230 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6231
6232         * expr.c (expand_var): Delete it.
6233         * expr.h (expand_var): Delete prototype.
6234         * function.c (expand_function_start): Use expand_decl instead.
6235         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6236         langhook.
6237
6238 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6239
6240         PR rtl-optimization/35542
6241         * fwprop.c (forward_propagate_and_simplify): Replace
6242         loc_reg_mentioned_in_p with reg_mentioned_p.
6243
6244 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6245
6246         PR rtl-optimization/35281
6247         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6248         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6249         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6250         (varying_mem_p): Move above propagate_rtx.
6251         (all_uses_available_at): Do not check MEMs.
6252
6253 2008-04-02  Rafael Espindola  <espindola@google.com>
6254
6255         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6256         (register_edge_assert_for_2): Split the cond argument.
6257         (register_edge_assert_for_1): Adjust for the change in
6258         register_edge_assert_for_2.
6259         (register_edge_assert_for): Split the cond argument.
6260         (find_switch_asserts): Adjust for the change in
6261         register_edge_assert_for.
6262
6263 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6264
6265         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6266         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6267         offsets for 64-bit mingw.
6268         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6269         abi for x86_64-pc-mingw.
6270
6271 2008-04-02  Richard Guenther  <rguenther@suse.de>
6272
6273         * tree-vrp.c (extract_range_from_assert): Make sure to not
6274         produce range min/max with TREE_OVERFOW set.
6275         If merging a anti-range and a range keep the anti-range if
6276         the range covers all values of the type.
6277         (register_edge_assert_for_2): Only allow sign-changing
6278         conversions in detecting canonical range checks.  Also
6279         register an assert for the unsigned name if useful.
6280
6281         PR tree-optimization/35787
6282         * tree-vrp.c (vrp_val_max): New function.
6283         (vrp_val_min): Likewise.
6284         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6285         (vrp_val_is_min): Likewise.
6286         (supports_overflow_infinity): Use vrp_val_{min,max}.
6287         (negative_overflow_infinity): Likewise.
6288         (positive_overflow_infinity): Likewise.
6289         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6290         (is_positive_overflow_infinity): Likewise.
6291         (is_overflow_infinity): Likewise.
6292         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6293         vrp_val_is_{min,max}.
6294         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6295         to ranges if possible.  Avoid empty ranges.
6296
6297 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6298
6299         PR middle-end/35705
6300         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6301         the expression is a function address.
6302
6303 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6304
6305         PR fortran/35154, fortran/23057
6306         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6307         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6308         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6309         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6310         in common.
6311         (dbxout_syms): Check for COMMON-based symbol and wrap in
6312         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6313         in bracket for efficiency.
6314
6315         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6316         using DW_TAG_common_block + member offset.
6317         (add_pubname_string): New function.
6318         (dw_expand_expr): New function to find block name and offset for
6319         COMMON var.
6320         (common_check): New function to check whether symbol in Fortran COMMON.
6321         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6322
6323 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6324
6325         PR c/35436
6326         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6327
6328 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6329
6330         * config/v850/v850.md (casesi): Remove if (0) code.
6331         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6332         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6333
6334 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6335
6336         * config/i386/i386.md (rex64suffix): New mode attribute.
6337         (floathi<mode>2): Disable expander for SSE math.
6338         (*floathi<mode>2_1): New insn insn_and_split pattern.
6339         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6340         corresponding post-reload splitters.
6341         (*floathi<mode>2_i387): New macroized insn pattern.
6342         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6343         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6344         insn_and_split pattern.
6345         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6346         New macroized instruction patterns and corresponding post-reload
6347         splitters.
6348         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6349         and corresponding post-reload splitters.
6350         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6351         New macroized instruction patterns.
6352         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6353         macroized instruction patterns and corresponding post-reload splitters.
6354         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6355         corresponding post-reload splitters.
6356         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6357         New macroized instruction patterns.
6358         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6359         corresponding post-reload splitters.
6360         (*floatsi<mode>2_i387): New macroized instruction patterns.
6361
6362 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6363
6364         * config/i386/i386.md (smaxmin): New.
6365         (umaxmin): Likewise.
6366         (maxminiprefix): Likewise.
6367         (maxminfprefix): Likewise.
6368         (<code><mode>3): Likewise.
6369         (smin<mode>3): Removed.
6370         (smax<mode>3): Likewise.
6371
6372         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6373         (mmx_<code>v4hi3): Likewise.
6374         (mmx_<code>v8qi3): Likewise.
6375         (mmx_smaxv2sf3): Removed.
6376         (mmx_sminv2sf3): Likewise.
6377         (mmx_umaxv8qi3): Likewise.
6378         (mmx_smaxv4hi3): Likewise.
6379         (mmx_uminv8qi3): Likewise.
6380         (mmx_sminv4hi3): Likewise.
6381
6382         * config/i386/sse.md (<addsub><mode>3): New.
6383         (*<addsub><mode>3): Likewise.
6384         (<sse>_vm<addsub><mode>3): Likewise.
6385         (<maxmin><mode>3): Likewise.
6386         (*<maxmin><mode>3_finite): Likewise.
6387         (*<maxmin><mode>3): Likewise.
6388         (<sse>_vm<maxmin><mode>3): Likewise.
6389         (sse3_h<addsub>v4sf3): Likewise.
6390         (sse3_h<addsub>v2df3): Likewise.
6391         (<maxmin>v16qi3): Likewise.
6392         (*<maxmin>v16qi3): Likewise.
6393         (<maxmin>v8hi3): Likewise.
6394         (*<maxmin>v8hi3): Likewise.
6395         (*sse4_1_<maxmin><mode>3): Likewise.
6396         (*sse4_1_<maxmin><mode>3): Likewise.
6397         (add<mode>3): Removed.
6398         (*add<mode>3): Likewise.
6399         (<sse>_vmadd<mode>3): Likewise.
6400         (sub<mode>3): Likewise.
6401         (*sub<mode>3): Likewise.
6402         (<sse>_vmsub<mode>3): Likewise.
6403         (smin<mode>3): Likewise.
6404         (*smin<mode>3_finite): Likewise.
6405         (*smin<mode>3): Likewise.
6406         (<sse>_vmsmin<mode>3): Likewise.
6407         (smax<mode>3): Likewise.
6408         (*smax<mode>3_finite): Likewise.
6409         (*smax<mode>3): Likewise.
6410         (<sse>_vmsmax<mode>3): Likewise.
6411         (sse3_haddv4sf3): Likewise.
6412         (sse3_haddv2df3): Likewise.
6413         (sse3_hsubv4sf3): Likewise.
6414         (sse3_hsubv2df3): Likewise.
6415         (umaxv16qi3): Likewise.
6416         (*umaxv16qi3): Likewise.
6417         (smaxv8hi3): Likewise.
6418         (*smaxv8hi3): Likewise.
6419         (*sse4_1_smax<mode>3): Likewise.
6420         (*sse4_1_umax<mode>3): Likewise.
6421         (uminv16qi3): Likewise.
6422         (*uminv16qi3): Likewise.
6423         (sminv8hi3): Likewise.
6424         (*sminv8hi3): Likewise.
6425         (*sse4_1_smin<mode>3): Likewise.
6426         (*sse4_1_umin<mode>3): Likewise.
6427
6428 2008-04-01  Rafael Espindola  <espindola@google.com>
6429
6430         * tree-cfg.c (verify_expr): remove in_phi.
6431         (verify_stmt): Don't call walk_tree with verify_expr. Use
6432         is_gimple_min_invariant instead of is_gimple_val.
6433
6434 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6435
6436         * doc/include/gpl_v3.texi: Update for manpage generation.
6437         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6438         gpl.texi.
6439         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6440         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6441         gpl_v3.texi instead of gpl.texi.
6442         (gpl.pod): New.
6443
6444 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6445
6446         PR pch/13675
6447         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6448
6449 2008-04-01  Rafael Espindola  <espindola@google.com>
6450
6451         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6452         (extract_code_and_val_from_cond): Use
6453         extract_code_and_val_from_cond_with_ops.
6454
6455 2008-04-01  Jan Hubicka  <jh@suse.cz>
6456
6457         * function.c (free_after_compilation): Free epilogue_delay_list.
6458         (prepare_function_start): Assert that previous compilation was freed.
6459
6460 2008-04-01  Jan Hubicka  <jh@suse.cz>
6461             Jim Wilson  <wilson@tuliptree.org>
6462             Andreas Tobler <andreast@gcc.gnu.org>
6463
6464         PR middle-end/35781
6465         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6466         rtl.emit instead cfun->emit.
6467         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6468         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6469
6470 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6471
6472         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6473
6474 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6475
6476         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6477         New options
6478         (fprofile-use): Add var flag_profile_use
6479         * coverage.c (coverage_begin_output): Do not open a gcno file for
6480         output only if -ftest-coverage is set.
6481         Do not add getpwd() to gcda file path.
6482         (build_gcov_info): Check the new flag
6483         flag_profile_datafile_relative_path.
6484         (coverage_init): Use profile_data_prefix.
6485         Read profile counter only if flag_profile_use is set.
6486         * opts.c (common_handle_option): New option fprofile-use=,
6487         fprofile-dir=, fprofile-generate=.
6488         * toplev.c (profile_data_prefix): New variable definition.
6489         * toplev.h (profile_data_prefix): New declaration.
6490         * doc/invoke.tex (Option Summary, Optimization Options):
6491         Add new options.
6492
6493 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6494
6495         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6496         use tmp consistently.
6497
6498         PR target/35695
6499         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6500         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6501         UNSPEC_FR_RECIP_APPROX_RES.
6502         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6503
6504 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6505
6506         PR c/35750
6507         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6508
6509 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6510
6511         PR middle-end/30186
6512         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6513         element of the vector via a pointer.
6514
6515 2008-03-31  Ian Lance Taylor  <iant@google.com>
6516
6517         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6518
6519 2008-03-31  Jan Hubicka  <jh@suse.cz>
6520
6521         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6522         get_arg_pointer_save_area.
6523         * expr.c (init_expr): Just clear out rtl.expr.
6524         * function.c (free_after_compilation): Clear out whole RTL structure.
6525         (get_func_frame_size): Merge into ...
6526         (get_frame_size): ... this one.
6527         (assign_stack_local_1): Merge into ...
6528         (assign_stack_local): ... this one.
6529         (expand_function_end): Update call of get_arg_pointer_save_area.
6530         (get_art_pointer_save_area): Remove cfun argument.
6531         * function.h (emit_status): regno_pointer_align does not need length
6532         attribute. Move x_regno_reg_rtx to ...
6533         (regno_reg_rtx): ... new global array.
6534         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6535         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6536         apply_args_value, forced_labels, stack_pointer_delta):
6537         Update accestors.
6538         (struct varasm_status): Move here from varasm.c
6539         (struct rtl_data): New. Move here some fields from struct function.
6540         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6541         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6542         used_temp_slots avail_temp_slots, temp_slot_level,
6543         nonlocal_goto_handler_labels): Update accesstors.
6544         (rtl): New global variable.
6545         (struct function): Move some fileds to rtl_data.
6546         (get_arg_pointer_save_area): Update prototype.
6547         * emit-rtl.c (rtl): Declare.
6548         (regno_reg_rtx): Declare.
6549         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6550         Update.
6551         (gen_reg_rtx): Update.
6552         (init_virtual_regs): Do not tate emit_status argument.
6553         (init_emit): Do not allocate emit.
6554         * varasm.c (varasm_statuc): Move to function.h.
6555         (n_deferred_constatns): Update accestor.
6556         (init_varasm_status): Do not allocate varasm_status.
6557         (force_const_mem, get_pool_size, output_constant_pool): Update.
6558         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6559         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6560
6561 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6562
6563         PR rtl-optimization/35729
6564         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6565         references.
6566
6567 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6568
6569         PR target/32000
6570         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6571         load/store if memory is unaligned.
6572         (*movti_rex64): Likewise.
6573
6574         * config/i386/predicates.md (misaligned_operand): New.
6575
6576 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6577
6578         PR tree-opt/35431
6579         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6580         complex types.
6581
6582 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6583
6584         * config/ia64/constraints.md: Add 'j' constraint.
6585         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6586         (movdi_internal): Likewise.
6587
6588 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6589
6590         PR c/35748
6591         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6592
6593 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6594
6595         PR target/35757
6596         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6597         proper error message for the third argument on blendpd and
6598         blendps.
6599
6600         * config/i386/sse.md (blendbits): New.
6601         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6602
6603 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6604
6605         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6606
6607 2008-03-30  Richard Guenther  <rguenther@suse.de>
6608
6609         PR middle-end/31023
6610         * fold-const.c (fold_sign_changed_comparison): Do leave
6611         conversions to base-types alone.
6612
6613 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6614
6615         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6616         the link register if one altivec register is be saved.
6617
6618 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6619
6620         * final.c (final_scan_insn): Remove if (0) code.
6621
6622 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6623
6624         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6625
6626 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6627
6628         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6629         of V4SFmode to ix86_binary_operator_ok.
6630
6631 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6632
6633         * config/i386/i386.c (override_options): Initialize
6634         ix86_veclib_handler to ix86_veclibabi_svml when
6635         -mveclibabi=svml is used.
6636         (ix86_veclibabi_svml): New function for SVML ABI style
6637         vectorization support.
6638         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6639
6640 2008-03-28  Rafael Espindola  <espindola@google.com>
6641
6642         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6643         (tree_binary_nonnegative_warnv_p): Make it public.
6644         (tree_single_nonnegative_warnv_p): Make it public.
6645         (tree_invalid_nonnegative_warnv_p): Make it public.
6646         (tree_unary_nonzero_warnv_p): Make it public.
6647         (tree_binary_nonzero_warnv_p): Make it public
6648         (tree_single_nonzero_warnv_p): Make it public.
6649         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6650         (extract_range_from_binary_expr): Split the expr argument.
6651         (extract_range_from_unary_expr): Split the expr argument.
6652         (extract_range_from_comparison): Split the expr argument.
6653         (extract_range_from_expr): Use the new aux functions.
6654         (vrp_evaluate_conditional_warnv): Use
6655         vrp_evaluate_conditional_warnv_with_ops.
6656         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6657         (tree_binary_nonzero_warnv_p): Declare.
6658         (tree_single_nonzero_warnv_p): Declare.
6659         (tree_expr_nonzero_warnv_p): Declare.
6660         (tree_unary_nonnegative_warnv_p): Declare.
6661         (tree_binary_nonnegative_warnv_p): Declare.
6662         (tree_single_nonnegative_warnv_p): Declare.
6663         (tree_invalid_nonnegative_warnv_p): Declare.
6664
6665 2008-03-28  Richard Guenther  <rguenther@suse.de>
6666
6667         PR tree-optimization/30317
6668         PR tree-optimization/30911
6669         PR tree-optimization/34793
6670         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6671         (struct assert_locus_d): New member EXPR.
6672         (register_new_assert_for): Add EXPR parameter to support
6673         ASSERT_EXPR <name, expr OP limit>.
6674         (register_edge_assert_for_1): Adjust callers.
6675         (find_assert_locations): Likewise.
6676         (process_assert_insertions_for): Build condition from expression.
6677         (extract_range_from_assert): Handle ASSERT_EXPRs
6678         of the form ASSERT_EXPR <name, expr OP limit>.
6679         (register_edge_assert_for_2): New helper registering
6680         asserts for comparisons.  Recognize range tests of the form
6681         (unsigned)i - CST1 OP CST2.
6682         (register_edge_assert_for_1): Use it.
6683         (register_edge_assert_for): Likewise.
6684         (needs_overflow_infinity): Integer sub-types
6685         do not need overflow infinities.
6686         (vrp_val_is_max): The extreme values of integer sub-types
6687         are those of the base type.
6688         (vrp_val_is_min): Likewise.
6689         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6690         expressions.
6691
6692 2008-03-28  Nick Clifton  <nickc@redhat.com>
6693
6694         PR target/31110
6695         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6696         Return GENERAL_REGS for stack adjustment reloads.
6697
6698 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6699
6700         PR target/31334
6701         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6702         const_vector when all the vectors are constant.
6703
6704 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6705
6706         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6707         comparisons.
6708         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6709         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6710         (scc_sf): New.
6711         (s<code>_sf): Use new scc_sf attribute for opcode names.
6712
6713 2008-03-27  Tom Tromey  <tromey@redhat.com>
6714
6715         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6716         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6717         config/spu/t-spu-elf, config/i386/t-interix,
6718         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6719         config/i386/x-darwin, config/i386/x-mingw32,
6720         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6721         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6722         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6723         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6724         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6725         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6726         config/score/t-score-elf, config/arm/t-strongarm-pe,
6727         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6728         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6729         Revert automatic dependency patch.
6730
6731 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6732
6733         PR target/35657
6734         * config/i386/i386.c (ix86_function_arg_boundary): Align
6735         decimal floating point to its natural boundary.
6736
6737 2008-03-27  Richard Guenther  <rguenther@suse.de>
6738
6739         PR middle-end/35716
6740         * fold-const.c (fold_comparison): Restrict distinct decl
6741         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6742         solely rely on operand_equal_p.
6743
6744 2008-03-27  Richard Guenther  <rguenther@suse.de>
6745
6746         PR c/32511
6747         * c-common.c (handle_weak_attribute): Reject combination of
6748         weak and inline.
6749
6750 2008-03-27  Richard Guenther  <rguenther@suse.de>
6751
6752         PR tree-optimization/32810
6753         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6754         conversions from DECL_INITIAL.
6755         (fold_const_aggregate_ref): Likewise from constructor elements.
6756
6757 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6758
6759         * tree-affine.h (aff_combination_expand): Declare.
6760         (get_inner_reference_aff): Likewise.
6761         * tree-affine.c (aff_combination_expand): Split out from
6762         tree_to_aff_combination_expand.
6763         (get_inner_reference_aff): New function.
6764         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6765         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6766         (struct lim_aux_data): sm_done field removed.
6767         (mem_ref_loc_p, mem_ref_locs_p): New types.
6768         (struct mem_ref): Added id, stored, accesses_in_loop,
6769         indep_loop, dep_loop, indep_ref, dep_ref fields.
6770         Removed is_stored, locs and next fields.
6771         (memory_accesses): New variable.
6772         (movement_possibility): Do not allow moving statements
6773         that store to memory.
6774         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6775         New functions.
6776         (determine_max_movement): For statements with memory references,
6777         find the outermost loop in that the reference is independent.
6778         (move_computations_stmt): Mark the virtual operands for renaming.
6779         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6780         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6781         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6782         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6783         create_vop_ref_mapping, analyze_memory_references,
6784         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6785         get_all_locs_in_loop, ref_always_accessed_p,
6786         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6787         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6788         store_motion_loop, store_motion): New functions.
6789         (struct vop_to_refs_elt): New type.
6790         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6791         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6792         (schedule_sm): Replaced by...
6793         (execute_sm): ... this.
6794         (determine_lsm_ref, hoist_memory_references,
6795         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6796         find_more_ref_vops, free_mem_ref, free_mem_refs,
6797         determine_lsm_loop, determine_lsm): Removed.
6798         (tree_ssa_lim_finalize): Free data structures used by store motion.
6799         (tree_ssa_lim): Call analyze_memory_references.  Use
6800         store_motion instead of determine_lsm.
6801
6802 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6803
6804         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6805         rename tmake_file to m68hc11/t-m68hc11.
6806         (mcore): Set inhibit_libc to true.
6807         * config.host (alpha*-dec-*vms*): Set extra_programs.
6808         (interix3*): Don't use host_xmake_file.
6809         * configure.ac: Let config.gcc override inhibit_libc.
6810         * configure: Regenerate.
6811
6812         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6813         * config/t-openbsd-thread: Remove commented out lines.
6814         
6815         * config/x-interix: Remove.
6816
6817         * config/m68hc11/t-m68hc11-gas: Rename to...
6818         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6819
6820         * config/mcore/t-mcore: Remove T_CFLAGS.
6821         * config/mcore/t-mcore-pe: Likewise.
6822
6823 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6824
6825         * configure.ac: Replace custom __GNU_SOURCE test with
6826         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6827         * aclocal.m4: Regenerate.
6828         * configure: Regenerate.
6829         * config.in: Regenerate.
6830
6831 2008-03-27  Richard Guenther  <rguenther@suse.de>
6832
6833         * fold-const.c (target.h): Include.
6834         (fold_comparison): Fold comparison of addresses of decls
6835         that bind locally or of constants.  Consolidate address folding code.
6836         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6837         results from fold_binary_to_constant.
6838         (compare_values_warnv): Likewise.
6839
6840 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6841
6842         PR middle-end/35429
6843         * fold-const.c (fold_truthop): Check for integeral types when folding
6844         a == 0 && b == 0 and a != 0 || b != 0 .
6845
6846 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6847
6848         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6849
6850 2008-03-26  Andreas Schwab  <schwab@suse.de>
6851
6852         * doc/invoke.texi: Fix use of @item vs. @itemx.
6853
6854 2008-03-26  Tom Tromey  <tromey@redhat.com>
6855
6856         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6857         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6858         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6859         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6860         build/genconstants.o, build/genemit.o, build/genextract.o,
6861         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6862         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6863         options.h.
6864
6865 2008-03-26  Richard Guenther  <rguenther@suse.de>
6866
6867         Revert
6868         2008-03-26  Richard Guenther  <rguenther@suse.de>
6869
6870         * fold-const.c (target.h): Include.
6871         (fold_comparison): Fold comparison of addresses of two decls
6872         that bind locally.  Consolidate address folding code.
6873
6874 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6875
6876         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6877         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6878         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6879         dconstsqrt2, dconstthird, dconste and/or dconst10.
6880         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6881         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6882         dconstsqrt2, dconste): Delete.
6883         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6884         Constify variable.
6885         * real.c (get_real_const): New.
6886         * real.h (dconst3, dconst10, dconstm2, dconstthird,
6887         dconstsqrt2, dconste): Delete.
6888         (real_value_const, get_real_const): New.
6889
6890 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6891
6892         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6893
6894         * config/i386/i386.c (ix86_function_arg_boundary): Check
6895         BIGGEST_ALIGNMENT instead of 128.
6896         (setup_incoming_varargs_64): Likewise.
6897
6898 2008-03-26  Tom Tromey  <tromey@redhat.com>
6899
6900         * Makefile.in (DEPFILES): Add missing '/'.
6901
6902 2008-03-26  Richard Guenther  <rguenther@suse.de>
6903
6904         * fold-const.c (target.h): Include.
6905         (fold_comparison): Fold comparison of addresses of two decls
6906         that bind locally.  Consolidate address folding code.
6907
6908 2008-03-26  Nick Clifton  <nickc@redhat.com>
6909
6910         PR target/31232
6911         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6912         not allow INT+INT as a legitimate addressing mode.
6913
6914 2008-03-26  Richard Guenther  <rguenther@suse.de>
6915
6916         * tree-flow.h (widen_bitfield): Remove declaration.
6917         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6918         (widen_bitfield): Remove function.
6919         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6920         code.
6921
6922 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6923
6924         PR target/31558
6925         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6926         error_mark_node's.
6927
6928 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6929
6930         PR rtl-optimization/35232
6931         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6932         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6933         reg_reloaded_call_part_clobbered here.
6934         (reload_regs_reach_end_p): New function.
6935         (reload_reg_rtx_for_input): New variable.
6936         (reload_reg_rtx_for_output): Likewise.
6937         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6938         when reassigning a pseudo register.  Load reloadreg from 
6939         reload_reg_rtx_for_input, moving the mode and register
6940         calculation to...
6941         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6942         instead of the original when deciding whether an input reload
6943         would be a no-op or whether an output reload can be deleted.
6944         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6945         when setting up new_spill_reg_store.  Load it from
6946         reload_reg_rtx_for_output, moving the mode and register
6947         calculation to...
6948         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6949         instead of the original when deciding whether an output reload
6950         would be a no-op.  Do the same when modifying insn notes.
6951         Use rtx_equal_p instead of == to compare the registers.
6952         (inherit_piecemeal_p): Take a mode and two register numbers
6953         as argument.
6954         (emit_reload_insns): Clear new_spill_reg_store for every hard
6955         register in the reload register.  Remove spill registers
6956         from reg_reloaded_valid before considering whether to record
6957         inheritance information for them.  Use reload_reg_rtx_for_output
6958         instead of reg_rtx when recording output reloads.  Use
6959         reload_reg_rtx_for_input instead of reg_rtx when recording
6960         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6961         at the same time as setting reg_reloaded_valid.
6962         (delete_output_reload): Add a new_reload_reg parameter and use it
6963         instead of rld[j].reg_rtx.
6964         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6965         calls accordingly.
6966
6967 2008-03-25  Tom Tromey  <tromey@redhat.com>
6968
6969         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6970         (build/genattr.o): Likewise.
6971         (build/genattrtab.o): Likewise.
6972         (build/gencodes.o): Likewise.
6973         (build/genconfig.o): Likewise.
6974         (build/genconstants.o): Likewise.
6975         (build/genemit.o): Likewise.
6976         (build/genextract.o): Likewise.
6977         (build/genflags.o): Likewise.
6978
6979 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6980         
6981         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6982         instead of size_int for integer types.
6983         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6984         to match type of MINUS_EXPR.
6985         
6986 2008-03-25  Tom Tromey  <tromey@redhat.com>
6987
6988         * configure: Rebuilt.
6989         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6990         Makefile.
6991
6992 2008-03-25  Tom Tromey  <tromey@redhat.com>
6993
6994         * config/x-solaris (host-solaris.o): Update.
6995         * config/x-linux (host-linux.o): Update.
6996         * config/x-hpux (host-hpux.o): Update.
6997         * config/x-darwin (host-darwin.o): Update.
6998         * config/v850/t-v850e (v850-c.o): Update.
6999         * config/v850/t-v850 (v850-c.o): Update.
7000         * config/t-vxworks (vxworks.o): Update.
7001         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7002         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7003         * config/spu/t-spu-elf (spu-c.o): Update.
7004         (spu.o): Remove.
7005         * config/sh/t-symbian (sh-c.o): Update.
7006         (symbian.o): Update.
7007         * config/sh/t-sh (sh-c.o): Update.
7008         * config/score/t-score-elf (score7.o, score3.o): Update.
7009         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7010         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7011         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7012         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7013         (rs6000.o): Remove.
7014         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7015         * config/m32c/t-m32c (m32c-pragma.o): Update.
7016         * config/ia64/t-ia64 (ia64-c.o): Update.
7017         * config/i386/x-mingw32 (host-mingw32.o): Update.
7018         * config/i386/x-i386 (driver-i386.o): Update.
7019         * config/i386/x-darwin (host-i386-darwin.o): Update.
7020         * config/i386/x-cygwin (host-cygwin.o): Update.
7021         * config/i386/t-nwld (nwld.o): Update.
7022         * config/i386/t-netware (netware.o): Update.
7023         * config/i386/t-interix (winnt.o): Update.
7024         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7025         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7026         msformat-c.o): Update.
7027         * config/bfin/t-bfin-linux (generated_files): Add
7028         linux-sysroot-suffix.h.
7029         * config/arm/t-wince-pe (pe.o): Update.
7030         * config/arm/t-strongarm-pe (pe.o): Update.
7031         * config/arm/t-pe (pe.o): Update.
7032         * config/arm/t-arm (arm-c.o): Update.
7033         * doc/install.texi (Prerequisites): Require make 3.80.
7034         * Makefile.in: Remove .o targets.
7035         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7036         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7037         (simple_generated_h, simple_generated_c): Move earlier.
7038         (generated_files): New variable.
7039         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7040         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7041         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7042         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7043         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7044         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7045         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7046         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7047         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7048         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7049         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7050         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7051         (.c.o): Remove.
7052         (COMPILE.base, COMPILE): New variables.
7053         (%.o): New pattern rule.
7054         (ALL_HOST_OBJS): New variable.
7055         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7056         (dummy-checksum.o, cc1-checksum.o): Remove.
7057         (DRIVER_SHLIB): New variable.
7058         (DRIVER_DEFINES): Use it.
7059         (gencondmd.c): Move out of build/.
7060         (s-conditions): Update.
7061         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7062         (ALL_BUILD_OBJS): Likewise.
7063         (build/%.o): Use BUILDCOMPILE.
7064         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7065         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7066         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7067         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7068         build/genconfig.o, build/genconstants.o, build/genemit.o,
7069         build/genextract.o, build/genflags.o, build/genmddeps.o,
7070         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7071         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7072         build/gen-protos.o, build/scan.o, build/fix-header.o,
7073         build/scan-decls.o): Simplify.
7074         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7075         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7076         prefix.o, toplev.o): Reduce to variable setting.
7077         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7078         ($(out_object_file), gcc-options.o): New targets.
7079         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7080         * configure: Rebuilt.
7081         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7082         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7083
7084 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7085
7086         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7087         complain when we hit an error, return ERROR_MARK_NODE.
7088
7089 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7090
7091         * config/sh/constraints.md (Pso, Psz): New constraints.
7092         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7093         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7094
7095 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7096
7097         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7098         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7099
7100 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7101
7102         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7103         (prefetch_sh2a): New.   
7104
7105 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7106             Naveen.H.S  <naveen.hs@kpitcummins.com>
7107
7108         * config/sh/constraints.md (I28): New constraint.
7109         * config/sh/sh.c (broken_move): Add support for movi20s.
7110         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7111
7112 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7113             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7114             Naveen.H.S  <naveen.hs@kpitcummins.com>
7115
7116         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7117         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7118         (print_operand): Handle resbank in %@ operand code.
7119         (sh_encode_section_info): New.
7120         (push_regs): Add conditions for resbank.
7121         (sh_expand_epilogue): Likewise.
7122         (sh_insert_attributes): Likewise.
7123         (sh_attribute_table): Likewise.
7124         (sh_handle_resbank_handler_attribute): New.
7125         (sh2a_handle_function_vector_handler_attribute): New.
7126         (sh2a_is_function_vector_call): New.
7127         (sh2a_get_function_vector_number): New.
7128         (sh2a_function_vector_p): New.
7129         (sh_cfun_resbank_handler_p): New.
7130         * config/sh/sh.md (calli): Emit jsr/n if possible.
7131         (calli_tbr_rel): New.
7132         (calli_pcrel): Emit jsr/n if possible.
7133         (return_i): Emit rts/n if possible.
7134         (call_valuei_tbr_rel): New.
7135         (call_valuei_pcrel): Add condition for SH2A target.
7136         (call_value): Likewise.
7137         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7138         (sh2a_get_function_vector_number): Likewise.
7139         (sh2a_is_function_vector_call): Likewise.
7140         * doc/extend.texi: Document TBR relative addressing of SH2A.
7141         (resbank): Add description for SH2A.
7142
7143 2008-03-24  Richard Guenther  <rguenther@suse.de>
7144
7145         PR c/22371
7146         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7147         pointer assignments change conversions according to middle-end rules.
7148         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7149         * configure.ac: Include type checking in yes.
7150         * configure: Regenerate.
7151
7152 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7153
7154         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7155         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7156         
7157 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7158
7159         * gthr-vxworks.h (UNUSED): Define.
7160
7161 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7162
7163         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7164
7165 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7166
7167         * doc/extend.texi (Function Attributes): Add missing comma in the
7168         example of the "alloc_size" attribute.
7169         
7170 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7171
7172         Revert:
7173         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7174
7175         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7176         32bit host.
7177
7178         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7179
7180         PR target/35496
7181         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7182         of the underlying type of a MS bitfield layout to the natural
7183         alignment of the type.
7184
7185         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7186
7187         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7188         to their natural alignment to avoid store forwarding stalls.
7189
7190 2008-03-22  Richard Guenther  <rguenther@suse.de>
7191
7192         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7193         For PHI nodes verify the address is invariant.
7194         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7195         (get_symbol_constant_value): Use is_gimple_min_invariant.
7196         (maybe_fold_stmt_indirect): Likewise.
7197
7198 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7199
7200         PR rtl-optimization/33927
7201         * Makefile.in (dse.o): Depend on $(TM_P_H).
7202         * expr.h (extract_low_bits): Declare.
7203         * expmed.c (extract_low_bits): New function.
7204         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7205         * dse.c: Include tm_p.h.
7206         (find_shift_sequence): Remove the read_reg argument and return the
7207         read value.  Emit the instructions instead of returning them.
7208         Iterate on new_mode rather than calculating it each time.
7209         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7210         source to NEW_MODE and extract_low_bits to convert the shifted
7211         value to READ_MODE.
7212         (replace_read): Allow the load and store to have different mode
7213         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7214         or extraction instructions before trying the replacement.  Update
7215         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7216
7217 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7218
7219         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7220         to their natural alignment to avoid store forwarding stalls.
7221
7222 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7223
7224         PR target/27946
7225         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7226         encouraging but not allowing gprs for input;
7227         change the input constraint to !f#r.
7228         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7229         gprs for output;
7230         change the output constraint to !f#r.
7231
7232 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7233
7234         PR target/13958
7235         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7236         corresponding post-reload splitters.
7237         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7238         when x87 FP math is selected.
7239         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7240         New function prototype.
7241         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7242         unreachable function to ease macroization of insn patterns.
7243
7244 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7245
7246         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7247         reference dumps if ddr is NULL or dependence is unknown.
7248
7249 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7250
7251         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7252         unsigned extension into account.
7253         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7254         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7255         Do computations on a scratch register.
7256
7257 2008-03-21  Richard Guenther  <rguenther@suse.de>
7258
7259         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7260         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7261         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7262         * tree-ssa-dom.c (record_equality): Likewise.
7263         * tree-inline.c (copy_body_r): Likewise.
7264         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7265         TREE_INVARIANT.
7266
7267 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7268
7269         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7270         as 'delete_unused' argument.
7271
7272 2008-03-20  Richard Guenther  <rguenther@suse.de>
7273
7274         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7275         special casing of constant qualifiers.
7276         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7277         care about them in general.
7278         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7279         regardless of their type.
7280         (fold_stmt_r): Forcefully fold *& if we end up with that.
7281
7282 2008-03-20  Paul Brook  <paul@codesourcery.com>
7283
7284         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7285         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7286         linker flags.
7287         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7288         definition.
7289         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7290         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7291
7292 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7293
7294         * common.opt (Wmudflap): New option.
7295         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7296         (mx_register_decls): Likewise.
7297         (mudflap_finish_file): Likewise.
7298         * doc/invoke.texi: Document -Wno-mudflap.
7299
7300 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7301
7302         * c-format.c (replace_format_name_to_system_name): New.
7303         (cmp_attribs): New.
7304         (convert_format_name_to_system_name): New.
7305         (decode_format_attr): Add use of convert_format_name_to_system_name.
7306         (format_types_orig): Add gnu_ prefix to names.
7307         (check_format_info_main): Special treating of \0 escaped names for
7308         supporting multi-character format specifiers as I32, I64.
7309         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7310         (gnu_target_overrides_format_attributes): New.
7311         * c-format.h: Add structure target_ovr_attr to hold
7312         system specific formatter names.
7313         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7314         msformat-c.o file to c_target_objs and cxx_target_objs.
7315         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7316         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7317         (TARGET_N_FORMAT_TYPES): New.
7318         * config/i386/msformat-c.c: New.
7319         * config/i386/t-cygming: Add build rule for msformat-c.o.
7320         * doc/extend.texi: Add new format names gnu_* and ms_* and
7321         further details.
7322         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7323
7324 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7325
7326         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7327         optimizations turned on under -O3.
7328         (ftree-vectorize): Add that the flag is turned on with -O3.
7329
7330 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7331
7332         * regmove.c (try_auto_increment): Fix spelling error in comment.
7333         * final.c (final_scan_insn): Likewise.
7334
7335 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7336
7337         PR target/14552
7338         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7339         allocator preferences for "y" and "r" class registers.
7340         ("*mov<mode>_internal"): Ditto.
7341         ("*movv2sf_internal_rex64"): Ditto.
7342         ("*movv2sf_internal"): Ditto.
7343
7344 2008-03-19  Michael Matz  <matz@suse.de>
7345
7346         PR middle-end/35616
7347         * calls.c (expand_call): Check overlap of arguments with call
7348         address for sibcalls.
7349
7350 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7351
7352         PR target/35496
7353         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7354         of the underlying type of a MS bitfield layout to the natural
7355         alignment of the type.
7356
7357 2008-03-19  Jan Hubicka  <jh@suse.cz>
7358
7359         PR other/35094
7360         * toplev.c (decode_d_option): Handle all CPP flags.
7361         * tree-vrp.c: Update tree_pass descriptors.
7362         * regrename.c: Update tree_pass descriptors.
7363         * fwprop.c: Update tree_pass descriptors.
7364         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7365         * tree-into-ssa.c: Update tree_pass descriptors.
7366         * tree-dump.c: Update tree_pass descriptors.
7367         * tree-complex.c: Update tree_pass descriptors.
7368         * tree-dump.h: Update tree_pass descriptors.
7369         * see.c: Update tree_pass descriptors.
7370         * cgraphbuild.c: Update tree_pass descriptors.
7371         * tracer.c: Update tree_pass descriptors.
7372         * tree-loop-distribution.c: Update tree_pass descriptors.
7373         * cgraph.c: Update tree_pass descriptors.
7374         * postreload-gcse.c: Update tree_pass descriptors.
7375         * postreload.c: Update tree_pass descriptors.
7376         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7377         * tree-tailcall.c: Update tree_pass descriptors.
7378         * tree-pass.h (tree_opt_pass): Rename to ...
7379         (opt_pass) ... this one; add "type" field and remove letter field.
7380         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7381         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7382         all_lowering_passes): Update declaration.
7383         * ipa-cp.c: Update tree_pass descriptors.
7384         * final.c: Update tree_pass descriptors.
7385         * omp-low.c: Update tree_pass descriptors.
7386         * tree-ssa-dse.c: Update tree_pass descriptors.
7387         * ipa-reference.c: Update tree_pass descriptors.
7388         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7389         * auto-inc-dec.c: Update tree_pass descriptors.
7390         * reorg.c: Update tree_pass descriptors.
7391         * cgraphunit.c: Update tree_pass descriptors.
7392         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7393         * tree-ssa-ccp.c: Update tree_pass descriptors.
7394         * df-core.c: Update tree_pass descriptors.
7395         * mode-switching.c: Update tree_pass descriptors.
7396         * tree-nomudflap.c: Update tree_pass descriptors.
7397         * modulo-sched.c: Update tree_pass descriptors.
7398         * ipa-pure-const.c: Update tree_pass descriptors.
7399         * cse.c: Update tree_pass descriptors.
7400         * web.c: Update tree_pass descriptors.
7401         * tree-stdarg.c: Update tree_pass descriptors.
7402         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7403         * tree-ssa-dom.c: Update tree_pass descriptors.
7404         * tree-nrv.c: Update tree_pass descriptors.
7405         * tree-ssa-alias.c: Update tree_pass descriptors.
7406         * loop-init.c: Update tree_pass descriptors.
7407         * gimple-low.c: Update tree_pass descriptors.
7408         * ipa-inline.c: Update tree_pass descriptors.
7409         * tree-ssa-sink.c: Update tree_pass descriptors.
7410         * global.c: Update tree_pass descriptors.
7411         * ifcvt.c: Update tree_pass descriptors.
7412         * jump.c: Update tree_pass descriptors.
7413         * predict.c: Update tree_pass descriptors.
7414         * tree-ssa-loop.c: Update tree_pass descriptors.
7415         * recog.c: Update tree_pass descriptors.
7416         * dse.c: Update tree_pass descriptors.
7417         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7418         * tree-eh.c: Update tree_pass descriptors.
7419         * regmove.c: Update tree_pass descriptors.
7420         * local-alloc.c
7421         * function.c: Update tree_pass descriptors.
7422         * tree-vectorizer.c: Update tree_pass descriptors.
7423         * gcse.c: Update tree_pass descriptors.
7424         * ipa-type-escape.c: Update tree_pass descriptors.
7425         * tree-if-conv.c: Update tree_pass descriptors.
7426         * init-regs.c: Update tree_pass descriptors.
7427         * ipa.c: Update tree_pass descriptors.
7428         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7429         * rtl-factoring.c: Update tree_pass descriptors.
7430         * lower-subreg.c: Update tree_pass descriptors.
7431         * bt-load.c: Update tree_pass descriptors.
7432         * tree-dfa.c: Update tree_pass descriptors.
7433         * except.c: Update tree_pass descriptors.
7434         * emit-rtl.c: Update tree_pass descriptors.
7435         * cfgexpand.c: Update tree_pass descriptors.
7436         * tree-cfgcleanup.c: Update tree_pass descriptors.
7437         * cfgcleanup.c: Update tree_pass descriptors.
7438         * tree-ssa-pre.c: Update tree_pass descriptors.
7439         * tree-sra.c: Update tree_pass descriptors.
7440         * tree-mudflap.c: Update tree_pass descriptors.
7441         * tree-ssa-copy.c: Update tree_pass descriptors.
7442         * cfglayout.c: Update tree_pass descriptors.
7443         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7444         * tree-ssa-dce.c: Update tree_pass descriptors.
7445         * tree-ssa.c: Update tree_pass descriptors.
7446         * regclass.c: Update tree_pass descriptors.
7447         * integrate.c: Update tree_pass descriptors.
7448         * tree-optimize.c: Update tree_pass descriptors.
7449         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7450         * tree-object-size.c: Update tree_pass descriptors.
7451         * combine.c: Update tree_pass descriptors.
7452         * tree-outof-ssa.c: Update tree_pass descriptors.
7453         * bb-reorder.c: Update tree_pass descriptors.
7454         * stack-ptr-mod.c: Update tree_pass descriptors.
7455         * var-tracking.c: Update tree_pass descriptors.
7456         * tree-profile.c: Update tree_pass descriptors.
7457         * tree-vect-generic.c: Update tree_pass descriptors.
7458         * reg-stack.c: Update tree_pass descriptors.
7459         * sched-rgn.c: Update tree_pass descriptors.
7460         * tree-ssa-structalias.c: Update tree_pass descriptors.
7461         * tree-cfg.c: Update tree_pass descriptors.
7462         * passes.c (current_pass): Update declaration.
7463         (finish_optimization_passes): Update.
7464         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7465         (register_one_dump_file, register_dump_files_1, next_pass_1):
7466         Update arguments.
7467         (init_optimization_passes): Update handling of new types.
7468         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7469         * ipa-struct-reorg.c: Update tree_pass descriptors.
7470         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7471         * combine-stack-adj.c: Update tree_pass descriptors.
7472         * cfgrtl.c: Update tree_pass descriptors.
7473         * dce.c: Update tree_pass descriptors.
7474         * tree-ssanames.c: Update tree_pass descriptors.
7475
7476 2008-03-19  Richard Guenther  <rguenther@suse.de>
7477
7478         PR middle-end/35609
7479         * tree-ssa.c (walk_data): New structure.
7480         (warn_uninitialized_var): If not always_executed warn with "maybe"
7481         instead of "is".
7482         (execute_early_warn_uninitialized): Compute post-dominators.
7483         Initialize always_executed before processing each basic block.
7484
7485 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7486
7487         PR target/35504
7488         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7489         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7490
7491 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7492
7493         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7494
7495 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7496
7497         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7498         is true.
7499         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7500         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7501         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7502         target after ignore has been set, and move there also the commputation
7503         of subtarget and original_target.
7504         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7505         (LANG_HOOKS_INITIALIZER): Remove it.
7506         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7507
7508 2008-03-18  Richard Guenther  <rguenther@suse.de>
7509
7510         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7511         found an expression with constants, note that in the VN for the lhs.
7512         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7513         fold them to constants if possible.  Run cleanup_cfg if done so.
7514         (execute_pre): Return todo.
7515         (do_pre): Likewise.
7516         (execute_fre): Likewise.
7517         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7518         of constants.
7519         (get_prop_source_stmt): Look through pointer conversions.
7520
7521 2008-03-18  Jan Hubicka  <jh@suse.cz>
7522
7523         * tree-pretty-print.c: Include predict.h.
7524         (dump_generic_node): Dump predictor.
7525         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7526         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7527         * gimple-low.c (lower_stmt): Likewise.
7528         * expr.c (expand_expr_real): Likewise.
7529         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7530         them.
7531         (build_predict_expr, build_predict_expr): New.
7532         * predict.h (predictor_name, build_predict_expr): Update.
7533         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7534         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7535         * predict.def (PRED_CONTINUE): Update hitrate.
7536         * tree.def (PREDICT_EXPR): Define.
7537         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7538         do not handle BIND_EXPR.
7539         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7540         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7541         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7542         operands.
7543
7544 2008-03-18  Michael Matz  <matz@suse.de>
7545
7546         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7547
7548 2008-03-18  Richard Guenther  <rguenther@suse.de>
7549
7550         * tree-gimple.h (is_gimple_invariant_address): Declare.
7551         (is_gimple_constant): Likewise.
7552         * tree-gimple.c (is_gimple_constant): New function.
7553         (is_gimple_invariant_address): Likewise.
7554         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7555         and is_gimple_invariant_address.
7556         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7557         previous change.
7558         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7559         an addressable base.
7560
7561 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7562
7563         PR middle-end/35611
7564         * gimplify.c (gimplify_expr): Gimplify second operand of
7565         OMP_ATOMIC_LOAD.
7566
7567 2008-03-17  Richard Guenther  <rguenther@suse.de>
7568
7569         PR tree-optimization/19637
7570         * fold-const.c (fold_unary): Remove restrictions of removing
7571         intermediate pointer-conversions (P2)(P1)P0.
7572         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7573         conversion to void pointer.
7574         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7575
7576 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7577
7578         PR debug/31510
7579         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7580         emulated thread local variables.
7581
7582 2008-03-16  Richard Guenther  <rguenther@suse.de>
7583
7584         PR middle-end/35607
7585         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7586         expand TREE_INVARIANT operations that are not gimple invariant.
7587
7588 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7589
7590         * doc/extend.texi (Alignment): Say that the ABI controls
7591         the __alignof__ for non-strict-alignment targets rather
7592         than being a recommendation.
7593
7594 2008-03-15  Paul Brook  <paul@codesourcery.com>
7595
7596         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7597         annotations.
7598         (arm_output_fn_unwind): Mark functions that can not be unwound.
7599
7600 2008-03-15  Paul Brook  <paul@codesourcery.com>
7601
7602         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7603         extension instructions.
7604
7605 2008-03-15  Richard Guenther  <rguenther@suse.de>
7606
7607         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7608         and fold constant aggregate refs.
7609         (fold_const_aggregate_ref): Handle string constants
7610         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7611         (evaluate_stmt): Simplify now that ccp_fold folds constant
7612         aggregate refs.
7613
7614 2008-03-15  Paul Brook  <paul@codesourcery.com>
7615
7616         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7617         (extzv): Use gen_extzv_t2.
7618         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7619
7620 2008-03-15  Richard Guenther  <rguenther@suse.de>
7621
7622         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7623         (fold_const_aggregate_ref): Likewise.
7624         (get_value): Return NULL if we don't have any values.
7625         (ccp_finalize): Set const_val to NULL after freeing it.
7626         * tree-flow.h (get_symbol_constant_value): Declare.
7627         (fold_const_aggregate_ref): Likewise.
7628         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7629
7630 2008-03-15  Richard Guenther  <rguenther@suse.de>
7631
7632         PR middle-end/35593
7633         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7634         to not produce negative array indices if not allowed.  Add
7635         parameter to indicate that.
7636         (maybe_fold_offset_to_component_ref): Allow negative array
7637         indices only for the first member of a structure.
7638         (maybe_fold_offset_to_reference): Allow negative array indices.
7639         (maybe_fold_stmt_addition): Likewise.
7640
7641 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7642             Anatoly Sokolov <aesok@post.ru>
7643
7644         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7645         (avr_arch): Add ARCH_AVR6.
7646         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7647         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7648         instead of fixed value 2.
7649         (print_operand_address): Use gs() asm specifier instead of pm().
7650         (avr_assemble_integer): (Ditto.).
7651         (avr_output_addr_vec_elt): (Ditto.).
7652         (print_operand): Handle "!" code.
7653         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7654         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7655         (AVR_HAVE_EIJMP_EICALL): Define.
7656         (AVR_3_BYTE_PC): Redefine.
7657         (AVR_2_BYTE_PC): (Ditto.).
7658         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7659         (LINK_SPEC): Add atmega2560 and atmega2561.
7660         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7661         (crtm2561.o).
7662         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7663         for 3 byte PC devices.
7664         (call_value_insn): (Ditto.).
7665         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7666         (indirect_jump): Use only for for 2 byte PC devices.
7667         (*tablejump): (Ditto.).
7668         (*indirect_jump_avr6): Add insn.
7669         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7670         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7671         instead of ijmp for 3 byte PC devices.
7672         (__tablejump2__): (Ditto.).
7673         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7674         (MULITLIB_DIRNAMES): (Ditto.). 
7675         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7676
7677 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7678
7679         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7680         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7681         ("mmx_psadbw"): Use V1DI mode for operand 0.
7682         * config/i386/i386-modes.def (V1SI): New vector mode.
7683         * config/i386/i386.c (struct builtin_description)
7684         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7685         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7686         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7687         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7688         v1di_ftype_v8qi_v8qi type.
7689         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7690
7691         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7692         __builtin_ia32_pmuludq]: Fix the mode of return value.
7693
7694 2008-03-15  Richard Guenther  <rguenther@suse.de>
7695
7696         PR middle-end/35595
7697         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7698         being a PHI_NODE.
7699
7700 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7701         
7702         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7703         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7704         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7705         unless TARGET_SERIALIZE_VOLATILE is enabled.
7706         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7707         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7708         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7709
7710 2008-03-14  Richard Guenther  <rguenther@suse.de>
7711
7712         PR tree-optimization/34172
7713         * tree-flow.h (refs_may_alias_p): Declare.
7714         (get_single_def_stmt): Likewise.
7715         (get_single_def_stmt_from_phi): Likewise.
7716         (get_single_def_stmt_with_phi): Likewise.
7717         * tree-dfa.c (refs_may_alias_p): New function.
7718         (get_single_def_stmt): Likewise.
7719         (get_single_def_stmt_from_phi): Likewise.
7720         (get_single_def_stmt_with_phi): Likewise.
7721         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7722         (vn_reference_lookup_1): New helper function.
7723         (vn_reference_lookup): Walk the virtual use-def chain to
7724         continue searching for a match if the def does not alias the
7725         reference we are looking for.
7726
7727 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7728
7729         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7730         archive and Perzl.  Update The Written Word listing.
7731
7732 2008-03-14  Richard Guenther  <rguenther@suse.de>
7733
7734         PR tree-optimization/34043
7735         PR tree-optimization/33989
7736         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7737         when doing FRE.
7738         (bitmap_find_leader): Use extra argument to verify dominance
7739         relationship inside a basic-block.
7740         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7741         (find_leader_in_sets): Adjust.
7742         (create_component_ref_by_pieces): Take extra argument for
7743         dominance check, handle lookup failures.
7744         (find_or_generate_expression): Likewise.
7745         (create_expression_by_pieces): Likewise.
7746         (insert_into_preds_of_block): Adjust.
7747         (create_value_expr_from): If asked for, verify all operands
7748         are in the blocks AVAIL_OUT set.
7749         (make_values_for_stmt): Check for SSA_NAMEs that are life
7750         over an abnormal edge.
7751         (compute_avail): Remove such check.
7752         (do_SCCVN_insertion): New function.
7753         (eliminate): If we do not find a leader suitable for replacement
7754         insert a replacement expression from SCCVN if available.
7755         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7756         (struct vn_ssa_aux): Add needs_insertion flag.
7757         * tree-ssa-sccvn.c (may_insert): New global flag.
7758         (copy_reference_ops_from_ref): Value-number union member access
7759         based on its size, not type and member if insertion is allowed.
7760         (visit_reference_op_load): For a weak match from union type
7761         punning lookup a view-converted value and insert a SSA_NAME
7762         for that value if that is not found.
7763         (visit_use): Make dumps shorter.  Do not disallow value numbering
7764         SSA_NAMEs that are life over an abnormal edge to constants.
7765         (free_scc_vn): Release inserted SSA_NAMEs.
7766         (run_scc_vn): New flag to specify whether insertion is allowed.
7767         Process SSA_NAMEs in forward order.
7768         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7769         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7770         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7771         pointer type to/from integral types that do not change the
7772         precision to regular conversions.
7773
7774 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7775
7776         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7777         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7778         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7779         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7780         input arguments and the mode of return value.  Built-in functions
7781         that operate on whole 64-bit MMX register now use V1DI mode.
7782
7783 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7784             Olga Golovanevsky  <olga@il.ibm.com>
7785
7786         PR tree-optimization/35041
7787         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7788         to locate the right position in a statement.
7789
7790 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7791
7792         PR target/34000
7793         PR target/35553
7794         * config/i386/xmmintrin.h:  Change all static inline functions to
7795         extern inline and add __gnu_inline__ attribute.
7796         * config/i386/bmintrin.h: Ditto.
7797         * config/i386/smmintrin.h: Ditto.
7798         * config/i386/tmmintrin.h: Ditto.
7799         * config/i386/mmintrin-common.h: Ditto.
7800         * config/i386/ammintrin.h: Ditto.
7801         * config/i386/emmintrin.h: Ditto.
7802         * config/i386/pmmintrin.h: Ditto.
7803         * config/i386/mmintrin.h: Ditto.
7804         * config/i386/mm3dnow.h: Ditto.
7805
7806 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7807
7808         PR middle-end/35185
7809         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7810         (lower_omp_2): New function.
7811         (lower_omp_1, lower_omp): Rewritten.
7812
7813 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7814
7815         PR 35054
7816         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7817         with the phrase "Microsoft Windows compilers".
7818         (Push/Pop Macro Pragmas): New subsection. Document
7819         #pragma push_macro and pragma pop_macro.
7820
7821 2008-03-12  Paul Brook  <paul@codesourcery.com>
7822
7823         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7824
7825 2008-03-12  Paul Brook  <paul@codesourcery.com>
7826
7827         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7828         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7829         (thumb2_addsi_shortim): Rename ...
7830         (thumb2_addsi_short): ... to this.  Allow register operands.
7831         (thumb2_subsi_short): New pattern.
7832         (thumb2_one_cmplsi2_short,
7833         thumb2_negsi2_short): New patterns and peepholes.
7834
7835 2008-03-12  Paul Brook  <paul@codesourcery.com>
7836
7837         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7838
7839 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7840
7841         * config/i386/i386.md (int_cond): New code iterator.
7842         (fp_cond): Ditto.
7843         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7844         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7845         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7846         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7847         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7848         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7849         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7850         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7851
7852 2008-03-12  Paul Brook  <paul@codesourcery.com>
7853
7854         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7855         instead of {arm,thumb}_compute_save_reg_mask.
7856         (output_return_instruction): Ditto.
7857         (thumb_unexpanded_epilogue): Ditto.
7858         (thumb1_expand_prologue): Ditto.
7859         (thumb1_output_function_prologue): Ditto.
7860         (arm_set_return_address): Ditto.
7861         (thumb_set_return_address): Ditto.
7862         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7863         regs to achieve stack alignment.
7864         (thumb1_compute_save_reg_mask): Fix compiler warning.
7865         (arm_output_epilogue): Use offsets->saved_regs_mask.
7866         Adjust stack pointer by poping call clobered registers.
7867         (arm_expand_prologue): Use offsets->saved_regs_mask.
7868         Adjust stack pointer by pushing extra registers.
7869         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7870
7871 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7872
7873         PR tree-opt/35422
7874         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7875         conversion to the operands of a multiplication.
7876
7877 2008-03-12  Richard Guenther  <rguenther@suse.de>
7878
7879         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7880         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7881         * timevar.def (TV_TREE_PHIPROP): Add.
7882         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7883         pass description.  Use TV_TREE_PHIPROP.
7884         * tree-ssa-forwprop.c: Remove phiprop code.
7885
7886 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7887
7888         PR middle-end/35549
7889         * omp-low.c (maybe_lookup_decl): Constify first argument.
7890         (use_pointer_for_field): Change last argument from bool to
7891         omp_context *.  Disallow shared copy-in/out in nested
7892         parallel if decl is shared in outer parallel too.
7893         (build_outer_var_ref, scan_sharing_clauses,
7894         lower_rec_input_clauses, lower_copyprivate_clauses,
7895         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7896
7897 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7898             Ira Rosen  <irar@il.ibm.com>
7899
7900         * tree-vectorizer.c (free_stmt_vec_info): New function.
7901         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7902         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7903         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7904         * tree-vect-transform.c (vectorizable_conversion): Free
7905         vec_oprnds0 if it was allocated.
7906         (vect_permute_store_chain): Remove unused VECs.
7907         (vectorizable_store): Free VECs that are allocated in the..
7908         function.
7909         (vect_transform_strided_load, vectorizable_load): Likewise.
7910         (vect_remove_stores): Simplify the code.
7911         (vect_transform_loop): Move code to vect_remove_stores().
7912         Call vect_remove_stores() and free_stmt_vec_info().
7913
7914 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7915
7916         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7917         TARGET_HPUX.  Revise comment.
7918         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7919         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7920         Use sr4 variant of `be' instruction when not generating PIC code.
7921         (attr_length_call): Adjust for above change.
7922
7923 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7924
7925         * ipa-reference.c (static_execute): Remove module_statics_const and
7926         associated setting code.
7927
7928 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7929
7930         PR target/35540
7931         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7932         predicate for operand 1.
7933         (paritysi2_cmp): Use register_operand predicate for operand 2.
7934         Use earlyclobber modifier for operand 1.  Remove support for
7935         memory operands.
7936         (paritydi2_cmp): Use register_operand predicate for operand 3.
7937         Use earlyclobber modifier for operand 1.  Remove support for
7938         memory operands.
7939
7940 2008-03-11  Paul Brook  <paul@codesourcery.com>
7941             Vladimir Prus  <vladimir@codesourcery.com>
7942
7943         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7944         (arm_compute_save_reg0_reg12_mask): Always
7945         check if register 11 must be saved.  Always safe hard frame pointer
7946         when frame_pointer_needeed.
7947         (arm_compute_save_reg_mask): Save IP and PC
7948         only with apcs frames.
7949         (arm_output_epilogue): Adjust Thumb2 codepath to
7950         be also invoked and work for ARM non-apcs frames.
7951         (arm_expand_prologue): Don't bother saving IP
7952         for non-apcs frame, since it's not clobbered by
7953         prologue code.  Implement non-apcs frame
7954         layout.
7955
7956 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7957
7958         PR rtl-optimization/35281
7959         * expr.c (convert_move): Use a new pseudo for the intermediate
7960         from_mode->word_mode result.
7961
7962 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7963
7964         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7965         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7966         * toplev.c (compile_file): Don't call it.
7967
7968 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7969
7970         PR middle-end/35526
7971         * expr.c (store_expr): Call emit_block_move if the mode
7972         of "temp" RTX is BLKmode.
7973
7974 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7975             Richard Guenther  <rguenther@suse.de>
7976
7977         PR tree-optimization/31358
7978         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7979         the step with a NULL_TREE.
7980         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7981         to sizetype if type is a pointer type.
7982         (add_candidate_1): Don't convert the base and step to
7983         the generic type if the orginal type is a pointer type.
7984         (add_iv_value_candidates): Use sizetype for the step
7985         if type is a pointer type.
7986         (cand_value_at): Likewise.
7987         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7988         for pointer types.
7989         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7990         Don't convert the tem affine to the type.
7991         (add_elt_to_tree): Use sizetype for the step if a pointer.
7992         Use POINTER_PLUS_EXPR for pointers.
7993         (aff_combination_to_tree): Use sizetype for the step if a
7994         pointer.
7995
7996 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7997
7998         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7999         Remove commutativity hint.
8000
8001 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8002
8003         PR c/35438
8004         PR c/35439
8005         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8006         errorneous type.  Check that v is a VAR_DECL.
8007
8008         PR middle-end/35099
8009         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8010
8011 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8012
8013         PR tree-optimization/35494
8014         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8015         may be overriden at link and run time.
8016
8017 2008-03-10  Richard Guenther  <rguenther@suse.de>
8018
8019         PR tree-optimization/34677
8020         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8021         (poolify_tree): Likewise.
8022         (modify_expr_template): Likewise.
8023         (poolify_modify_stmt): Likewise.
8024         (insert_fake_stores): Handle all component-ref style stores
8025         in addition to INDIRECT_REF.  Also handle complex types.
8026         Do not poolify the inserted load.
8027         (realify_fake_stores): Do not rebuild the tree but only
8028         make it a SSA_NAME copy.
8029         (init_pre): Remove initialzation of modify_expr_template.
8030         Do not allocate modify_expr_node_pool.
8031         (fini_pre): Do not free modify_expr_node_pool.
8032
8033 2008-03-10  Paul Brook  <paul@codesourcery.com>
8034
8035         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8036         to avoid conflicts.
8037
8038 2008-03-10  Paul Brook  <paul@codesourcery.com>
8039             Mark Shinwell  <shinwell@codesourcery.com>
8040
8041         * config/arm/cortex-r4.md: New.
8042         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8043         insn attributes.
8044         * config/arm/arm.md: Include cortex-r4.md.
8045         (insn): Add smmls, sdiv and udiv values.
8046         (generic_sched): Don't use generic scheduling for Cortex-R4.
8047         (arm_issue_rate): New function.
8048         (TARGET_SCHED_ISSUE_RATE): Define.
8049
8050 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8051
8052         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8053
8054 2008-03-10  Richard Guenther  <rguenther@suse.de>
8055
8056         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8057         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8058
8059 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8060
8061         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8062         Set default to true.
8063
8064 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8065
8066         * c.opt (Wsynth): Deprecate.
8067         * doc/invoke.texi (Option Summary, Warning Options): Document
8068         -Wno-format-contains-nul.
8069
8070 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8071
8072         PR target/35496
8073         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8074         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8075
8076 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8077
8078         * config/rs6000/rs6000.c (builtin_description): Rename vector
8079         left shift operations.
8080         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8081         (altivec_vsl<VI_char>): Rename to ...
8082         (ashl<mode>3): ... new name.
8083         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8084         gen_ashlv4si3.
8085         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8086
8087 2008-03-08  Richard Guenther  <rguenther@suse.de>
8088
8089         * coverage.h (tree_coverage_counter_addr): Declare.
8090         * coverage.c (tree_coverage_counter_addr): New function.
8091         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8092         before using again.
8093         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8094         (tree_gen_one_value_profiler): Likewise.
8095         (tree_gen_ic_profiler): Likewise.
8096         (tree_gen_average_profiler): Likewise.
8097         (tree_gen_ior_profiler): Likewise.
8098
8099 2008-03-08  Richard Guenther  <rguenther@suse.de>
8100
8101         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8102         (vn_binary_op_insert): Likewise.
8103         (vn_unary_op_lookup): Likewise.
8104         (vn_unary_op_insert): Likewise.
8105         (vn_nary_op_lookup): Declare.
8106         (vn_nary_op_insert): Likewise.
8107         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8108         and binary hashes, use a single obstack for unary_op_pool
8109         and binary_op_pool.
8110         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8111         a single struct vn_nary_op_s.  Store tree code length and
8112         a variable number of operands.
8113         (struct vn_reference_op_struct): Remove unused op2.
8114         (vn_reference_op_eq): Do not compare op2.
8115         (vn_reference_op_compute_hash): Do not compute hash of op2.
8116         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8117         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8118         with vn_nary_op_compute_hash.
8119         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8120         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8121         vn_nary_op_lookup.
8122         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8123         vn_nary_op_insert.
8124         (visit_unary_op): Call nary functions.
8125         (visit_binary_op): Likewise.
8126         (process_scc): Adjust for struct vn_tables_s changes.
8127         (allocate_vn_table): Likewise.
8128         (free_vn_table): Likewise.
8129         * tree-vn.c (vn_add): Call nary functions.
8130         (vn_lookup): Likewise.
8131
8132 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8133
8134         PR target/35498
8135         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8136         wdst back after sync_compare_and_swapqhi_internal.
8137
8138 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8139
8140         PR target/22152
8141         * config/i386/i386-modes.def (V1DI): New vector mode.
8142         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8143         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8144         (MMXMODE248): Ditto.
8145         (MMXMODE): Add V1DI mode.
8146         (mmxvecsize): Change DI mode to V1DI mode.
8147         ("mov<mode>): Use MMXMODEI8 mode iterator.
8148         ("*mov<mode>_internal_rex64"): Ditto.
8149         ("*mov<mode>_internal"): Ditto.
8150         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8151         ("mmx_sub<mode>3"): Ditto.
8152         ("mmx_adddi3"): Remove insn pattern.
8153         ("mmx_subdi3"): Ditto.
8154         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8155         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8156         ("mmx_ashl<mode>3"): Ditto.
8157         ("mmx_lshrdi3"): Remove insn pattern.
8158         ("mmx_ashldi3"): Ditto.
8159         * config/i386/i386.c (classify_argument): Handle V1DImode.
8160         (function_arg_advance_32): Ditto.
8161         (function_arg_32): Ditto.
8162         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8163         mmx_addv1di3 insn pattern.
8164         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8165         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8166         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8167         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8168         Remove definitions of built-in functions.
8169         (V1DI_type_node): New node.
8170         (v1di_ftype_v1di_int): Ditto.
8171         (v1di_ftype_v1di_v1di): Ditto.
8172         (v2si_ftype_v2si_si): Ditto.
8173         (v4hi_ftype_v4hi_di): Remove node.
8174         (v2si_ftype_v2si_di): Ditto.
8175         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8176         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8177         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8178         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8179         Add new builtins using def_builtin_const.
8180         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8181         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8182         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8183         * config/i386/mmintrin.h (__v1di): New typedef.
8184         (_mm_add_si64): Cast arguments to __v1di type.
8185         (_mm_sub_si64): Ditto.
8186         (_mm_sll_pi16): Cast __count to __v4hi type.
8187         (_mm_sll_pi32): Cast __count to __v2si type.
8188         (_mm_sll_si64): Cast arguments to __v1di type.
8189         (_mm_srl_pi16): Cast __count to __v4hi type.
8190         (_mm_srl_pi32): Cast __count to __v2si type.
8191         (_mm_srl_si64): Cast arguments to __v1di type.
8192         (_mm_sra_pi16): Cast __count to __v4hi type.
8193         (_mm_sra_pi32): Cast __count to __v2si type.
8194         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8195         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8196         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8197         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8198         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8199         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8200         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8201         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8202         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8203         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8204         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8205         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8206
8207 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8208
8209         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8210
8211 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8212
8213         PR target/35373
8214         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8215         reg+const addressing for Altivec modes.  Don't generate reg+reg
8216         addressing for TFmode or TDmode quantities.
8217
8218 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8219
8220         * c-common.c (vector_types_convertible_p): Call langhook
8221         instead of comptypes.
8222
8223 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8224
8225         PR tree-opt/35402
8226         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8227         integral and scalar float variables which have a
8228         NULL DECL_INITIAL.
8229
8230 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8231
8232         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8233         dwarf_register_span hook when emitting unwind information for
8234         register-to-memory saves.
8235         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8236         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8237
8238 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8239
8240         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8241         for the same VAR_DECL.
8242
8243 2008-03-06  Tom Tromey  <tromey@redhat.com>
8244
8245         * treelang: Delete.
8246         * doc/standards.texi (Standards): Don't mention treelang.
8247         * doc/invoke.texi (Overall Options): Don't mention treelang.
8248         * doc/install.texi (Prerequisites): Don't mention bison or
8249         treelang.
8250         (Configuration): Don't mention treelang.
8251         (Building): Likewise.
8252         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8253
8254 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8255
8256         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8257         word-extractions out of a multi-word object.
8258
8259 2008-03-06  Richard Guenther  <rguenther@suse.de>
8260
8261         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8262         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8263         result type and precision.
8264         * expr.c (get_inner_reference): Set unsignedp based on the result
8265         type of BIT_FIELD_REF.
8266         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8267         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8268         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8269         for BIT_FIELD_REF.
8270         (sra_build_assignment): Likewise.
8271         (sra_build_elt_assignment): Likewise.
8272         (sra_explode_bitfield_assignment): Likewise.
8273         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8274         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8275         set BIT_FIELD_REF_UNSIGNED.
8276         (vectorizable_load): Likewise.
8277
8278 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8279
8280         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8281         at bb start.
8282
8283 2008-03-06  Richard Guenther  <rguenther@suse.de>
8284
8285         * alias.c (struct alias_set_entry): Move has_zero_child field
8286         to pack with alias_set.
8287
8288 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8289
8290         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8291         32bit host.
8292
8293 2008-03-05  Ian Lance Taylor  <iant@google.com>
8294
8295         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8296
8297 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8298
8299         * fwprop.c (update_df): Support width and offset parameters of
8300         df_ref_create.
8301         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8302         global_conflicts): Change DF_REF_EXTRACT to either
8303         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8304         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8305         * df-scan.c (df_ref_record, df_defs_record,
8306         df_ref_create_structure, df_def_record_1, df_uses_record,
8307         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8308         df_bb_refs_collect, df_entry_block_defs_collect,
8309         df_exit_block_uses_collect): Support new width and offset fields.
8310         (ref_extract_pool): New storage pool.
8311         (df_free_ref): New function.
8312         (df_reg_chain_unlink, df_free_collection_rec,
8313         df_sort_and_compress_refs): Call df_free_ref.
8314         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8315         of df_ref_extract.
8316         (df_ref_create_structure): Allocate df_ref_extract if offset and
8317         width fields are used.
8318         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8319         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8320         and SIGN_EXTRACT.
8321         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8322         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8323         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8324         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8325         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8326         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8327         (df_ref_extract): New structure.
8328         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8329         (df_ref_create): Add width and offset parameters.
8330         
8331 2008-03-05  Richard Guenther  <rguenther@suse.de>
8332
8333         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8334         Use ranges_overlap_p.
8335         (offset_overlaps_with_access): Rename
8336         to ranges_overlap_p and move ...
8337         * tree-flow-inline.h (ranges_overlap_p): ... here.
8338
8339         * tree.h (get_inner_reference, handled_component_p): Update
8340         comments.
8341
8342         * tree.h (record_component_aliases, get_alias_set,
8343         alias_sets_conflict_p, alias_sets_must_conflict_p,
8344         objects_must_conflict_p): Move declarations ...
8345         * alias.h (record_component_aliases, get_alias_set,
8346         alias_sets_conflict_p, alias_sets_must_conflict_p,
8347         objects_must_conflict_p): ... here.
8348         Include coretypes.h.
8349         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8350
8351 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8352
8353         * cfg.c: Include tree-flow.h.
8354         (remove_edge_raw): Call redirect_edge_var_map_clear.
8355         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8356         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8357         (redirect_edge_var_map_result): New.
8358         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8359         PENDING_STMT use with redirect_edge_var_map_*.
8360         * tree-ssa.c (edge_var_maps): New definition.
8361         (redirect_edge_var_map_add): New.
8362         (redirect_edge_var_map_clear): New.
8363         (redirect_edge_var_map_dup): New.
8364         (redirect_edge_var_map_vector): New.
8365         (redirect_edge_var_map_destroy): New.
8366         (ssa_redirect_edge): Replace PENDING_STMT use with
8367         redirect_edge_var_map_*.
8368         (flush_pending_stmts): Same.
8369         (delete_tree_ssa): Destroy edge var map.
8370         * tree-flow.h (struct _edge_var_map): New.
8371         Define edge_var_map vector type.
8372         Declare redirect_edge_var_map_* prototypes.
8373         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8374         * tree-cfg.c (reinstall_phi_args): Replace
8375         PENDING_STMT use with redirect_edge_var_map_*.
8376
8377 2008-03-05  Richard Guenther  <rguenther@suse.de>
8378
8379         PR tree-optimization/35472
8380         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8381         whose single use_stmt has a overlapping set of loaded and
8382         stored symbols as that use_stmt might be a noop assignment then.
8383
8384 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8385
8386         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8387
8388 2008-03-05  Richard Guenther  <rguenther@suse.de>
8389
8390         PR c++/35336
8391         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8392         should be constants.
8393         * tree-cfg.c (verify_expr): Verify it.
8394         * fold-const.c (fold_truthop): Remove code generating
8395         BIT_FIELD_REFs of structure bases.
8396         (fold_binary): Likewise.
8397         (fold_ternary): Position and size of BIT_FIELD_REFs are
8398         always host integers.
8399         (make_bit_field_ref): Remove.
8400         (optimize_bit_field_compare): Remove.
8401         (all_ones_mask_p): Remove.
8402
8403 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8404
8405         PR gcc/33009
8406         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8407         (split_block_and_df_analyze): New. Split basic block and rebuild
8408         dataflow.
8409         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8410         SPLIT_BLOCK.
8411         (split_pattern_seq): Likewise.
8412         (erase_matching_seqs): Likewise.
8413         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8414
8415 2008-03-04  Geoff Keating  <geoffk@apple.com>
8416
8417         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8418         declaration and code.
8419         (tree_invalid_nonnegative_warnv_p): Likewise.
8420
8421 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8422
8423         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8424         examples.  Truncate option-names then causing overfull hbox.
8425
8426 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8427
8428         PR target/35222
8429         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8430         on hpux10.
8431         * configure: Rebuilt.
8432
8433 2008-03-04  Rafael Espindola  <espindola@google.com>
8434
8435         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8436         (tree_unary_nonnegative_warnv_p): New.
8437         (tree_binary_nonnegative_warnv_p): New.
8438         (tree_single_nonnegative_warnv_p): New.
8439         (tree_invalid_nonnegative_warnv_p): New.
8440         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8441
8442 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8443
8444         PR 28322
8445         * opts.c (handle_option): Postpone 'unknown option' errors only for
8446         warning options.
8447
8448 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8449
8450         PR target/35453
8451         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8452         (_SIDD_XXX): This.
8453
8454 2008-03-04  Rafael Espindola  <espindola@google.com>
8455
8456         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8457         (tree_binary_nonzero_warnv_p): New.
8458         (tree_single_nonzero_warnv_p): New.
8459         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8460
8461 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8462
8463         PR middle-end/35456
8464         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8465         transformations for modes that have signed zeros.
8466         * ifcvt.c (noce_try_abs): Ditto.
8467
8468 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8469
8470         * config/i386/i386.c (override_options): Force
8471         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8472
8473 2008-03-04  Jan Hubicka  <jh@suse.cz>
8474
8475         PR c++/35262
8476         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8477         in last commit.
8478
8479 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8480
8481         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8482         label to probe the stack.
8483
8484 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8485
8486         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8487         (__gthr_win32_mutex_destroy): Declare.
8488         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8489         __gthr_win32_mutex_destroy.
8490         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8491
8492 2008-03-03  Jan Hubicka  <jh@suse.cz>
8493
8494         PR c++/35262
8495         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8496         aggressive on inlining cold calls.
8497
8498 2008-03-03  Richard Guenther  <rguenther@suse.de>
8499
8500         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8501         struct copies into the expression table.
8502         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8503         (try_to_simplify): Likewise.
8504         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8505         integral and pointer arguments which do not change the
8506         precision to NOP_EXPRs.
8507         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8508         VIEW_CONVERT_EXPR case.
8509
8510 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8511
8512         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8513         defined in a loop at depth 0 is invariant.
8514         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8515         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8516         be called at loop depth 0.
8517
8518 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8519
8520         PR driver/35420
8521         * gcc.c (process_command): Update copyright notice dates.
8522         * gcov.c (print_version): Likewise.
8523         * gcov-dump.c (print_version): Likewise.
8524         * mips-tfile.c (main): Likewise.
8525         * mips-tdump.c (main): Likewise.
8526
8527 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8528
8529         PR 24924
8530         * c-common.c (flag_permissive): Delete.
8531         (constant_expression_warnings): Check flags first.
8532         (constant_expression_error): New.
8533         * c-common.h (flag_permissive): Delete.
8534         (constant_expression_error): Declare.
8535         * flags.h (flag_permissive): Declare. Update description.
8536         * diagnostic.c (pedwarn): Update.
8537         (permerror): New.
8538         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8539         (permissive_error_kind): New.
8540         * toplev.c (flag_permissive): Define. Update description.
8541         * toplev.h (permissive_error_kind): Declare.
8542         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8543         (pedwarn_c90): Use pedantic_warning_kind.
8544         * c-opts.c (c_common_post_options): flag_permissive does not affect
8545         flag_pedantic_errors.
8546
8547 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8548
8549         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8550         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8551         __absvsi2, __absvDI2): Use unsigned arithmetic.
8552
8553 2008-03-02  Andi Kleen  <ak@suse.de>
8554             Richard Guenther  <rguenther@suse.de>
8555
8556         * struct-equiv.c: Remove file.
8557         * cfg_cleanup.c (condjump_equiv_p): Remove.
8558         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8559         (struct-equiv.o): Remove rule.
8560         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8561         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8562         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8563
8564 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8565
8566         * ifcvt.c (noce_process_if_block): Try to handle only the then
8567         block if the else block exists but isn't suitable.
8568
8569 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8570
8571         PR gcc/35063
8572         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8573         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8574         regression from previous patch.
8575
8576 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8577
8578         PR gcc/35063
8579         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8580         implemented.
8581         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8582         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8583         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8584         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8585         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8586         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8587         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8588         (__gthread_mutex_destroy_function): Rename to
8589         __gthread_mutex_destroy.
8590         * gthr-dce.h (__gthread_mutex_destroy): Call
8591         pthread_mutex_destroy.
8592         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8593         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8594         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8595
8596 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8597
8598         * df-scan.c (df_ref_chain_change_bb): Simplify.
8599         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8600         set_block_for_insn if there's any change.
8601         * df.h ((df_insn_change_bb): Fix prototype.
8602         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8603         df_insn_change_bb, don't call set_block_for_insn.
8604         * emit-rtl.c (reorder_insns): Likewise.
8605         * haifa-sched.c (move_insn): Likewise.
8606
8607 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8608
8609         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8610
8611 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8612
8613         * tree-flow-inline.h (next_readonly_imm_use): Return
8614         NULL_USE_OPERAND_P after the end.
8615
8616 2008-03-01  Richard Guenther  <rguenther@suse.de>
8617
8618         PR tree-optimization/35411
8619         * tree-sra.c (sra_build_assignment): Split conversion to
8620         final type to a separate statement if we are not assigning
8621         to a register.
8622
8623 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8624
8625         * fold-const.c (fold_convertible_p): Correct the logic to follow
8626         that in fold_convert().
8627
8628 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8629
8630         PR c++/35315
8631         * tree-inline.c (build_duplicate_type): When we make a
8632         duplicate type, make it unique in the canonical types system.
8633
8634 2008-02-29  Tom Tromey  <tromey@redhat.com>
8635
8636         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8637         input_file_stack_history, input_file_stack_restored): Remove.
8638         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8639         * input.h (struct file_stack): Remove.
8640         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8641         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8642         Likewise.
8643         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8644         type.
8645         (diagnostic_last_module_changed): Add 'map' argument.
8646         (diagnostic_set_last_function): Likewise.
8647         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8648         line map, not input_file_stack.
8649         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8650
8651 2008-02-29  Paul Brook  <paul@codesourcery.com>
8652
8653         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8654
8655 2008-02-29  Paul Brook  <paul@codesourcery.com>
8656
8657         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8658
8659 2008-02-29  Richard Guenther  <rguenther@suse.de>
8660
8661         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8662         vn_lookup_or_add.
8663         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8664         value for comparing for a store match.
8665         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8666         (try_to_simplify): Do not do a full-blown reference lookup.
8667
8668 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8669
8670         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8671         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8672
8673         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8674
8675 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8676
8677         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8678         strides against cache sizes.
8679
8680 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8681
8682         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8683         constant to fpul.
8684
8685 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8686
8687         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8688         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8689         is smaller than the original promoted value.
8690         (simplify_subreg): If OP is a SUBREG, try to preserve its
8691         SUBREG_PROMOTED_VAR_P information.
8692
8693 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8694
8695         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8696         (VN_INFO_GET): Allocate new objects on the obstack.
8697         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8698         for rpo_numbers_temp, for consistency.
8699         (free_scc_vn): Free the obstack.
8700
8701 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8702
8703         * doc/invoke.texi: Document -ftree-loop-distribution.
8704         * tree-loop-distribution.c: New.
8705         * tree-pass.h (pass_loop_distribution): New.
8706         * graphds.h (struct graph): Add htab_t indices.
8707         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8708         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8709         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8710         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8711         * tree-data-ref.c (debug_data_dependence_relations): New.
8712         (dump_data_dependence_relation): Also print data references.
8713         (free_data_ref): Extern.
8714         (same_access_functions): Moved...
8715         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8716         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8717         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8718         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8719         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8720         (stmts_from_loop): Skip LABEL_EXPR.
8721         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8722         New.
8723         (build_rdg): Initialize rdg->indices htab.
8724         (free_rdg, stores_from_loop, ref_base_address,
8725         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8726         have_similar_memory_accesses_1, ref_base_address_1,
8727         remove_similar_memory_refs): New.
8728         * tree-data-ref.h: Depend on tree-chrec.h.
8729         (debug_data_dependence_relations, free_data_ref): Declared.
8730         (same_access_functions): ... here.
8731         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8732         New.
8733         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8734         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8735         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8736         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8737         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8738         rdg_vertex_for_stmt): Declared.
8739         (struct rdg_edge): Add level.
8740         (RDGE_LEVEL): New.
8741         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8742         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8743         Declared.
8744         (rdg_has_similar_memory_accesses): New.
8745         * tree-vect-analyze.c: Remove unused static decls.
8746         * lambda.h (dependence_level): New.
8747         * common.opt (ftree-loop-distribution): New.
8748         * tree-flow.h (mark_virtual_ops_in_bb, 
8749         slpeel_tree_duplicate_loop_to_edge_cfg,
8750         rename_variables_in_loop): Declared.
8751         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8752         (OBJS-common): Add tree-loop-distribution.o.
8753         (tree-loop-distribution.o): New rule.
8754         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8755         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8756         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8757
8758 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8759
8760         PR target/33963
8761         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8762         other than structures and unions.
8763
8764 2008-02-28  Richard Guenther  <rguenther@suse.de>
8765
8766         Revert:
8767         2008-02-26  Richard Guenther  <rguenther@suse.de>
8768
8769         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8770         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8771         (lookup_decl_from_uid): Declare.
8772         (remove_decl_from_map): Likewise.
8773         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8774         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8775         (decl_for_uid_map): New global hashtable mapping DECL_UID
8776         to the decl tree.
8777         (init_ttree): Allocate it.
8778         (insert_decl_to_uid_decl_map): New helper function.
8779         (make_node_stat): Insert new decls into the map.
8780         (copy_node_stat): Likewise.
8781         (lookup_decl_from_uid): New function.
8782         (remove_decl_from_map): Likewise.
8783         (print_decl_for_uid_map_statistics): New helper.
8784         (dump_tree_statistics): Call it.
8785
8786         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8787         (referenced_var_iterator): Adjust.
8788         (FOR_EACH_REFERENCED_VAR): Adjust.
8789         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8790         (num_referenced_vars): Adjust.
8791         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8792         (first_referenced_var): Remove.
8793         (end_referenced_vars_p): Likewise.
8794         (next_referenced_var): Likewise.
8795         (referenced_var_iterator_set): New helper function.
8796         * tree-dfa.c (referenced_var_lookup): Adjust.
8797         (referenced_var_check_and_insert): Likewise.
8798         (remove_referenced_var): Likewise.
8799         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8800         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8801         (verify_call_clobbering): Likewise.
8802         (verify_memory_partitions): Likewise.
8803         (init_tree_ssa): Allocate bitmap instead of hashtable for
8804         referenced_vars.
8805         (delete_tree_ssa): Adjust.
8806         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8807         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8808         (compute_tag_properties): Likewise.
8809         (set_initial_properties): Likewise.
8810         (find_partition_for): Likewise.
8811         (update_reference_counts): Likewise.
8812         (dump_may_aliases_for): Likewise.
8813         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8814         (add_call_clobber_ops): Likewise.
8815         (add_call_read_ops): Likewise.
8816         (get_asm_expr_operands): Likewise.
8817         * tree-into-ssa.c (dump_decl_set): Likewise.
8818         (update_ssa): Likewise.
8819         * tree-sra.c (scan_function): Likewise.
8820         (decide_instantiations): Likewise.
8821         (scalarize_parms): Likewise.
8822         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8823         (dsa_named_for): Likewise.
8824         * tree-ssa-structalias.c (update_alias_info): Likewise.
8825         (merge_smts_into): Likewise.
8826
8827 2008-02-27  David Daney  <ddaney@avtrex.com>
8828
8829         PR target/34409
8830         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8831         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8832         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8833         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8834         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8835
8836 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8837
8838         PR target/25477
8839         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8840         (BUILT_IN_NEXTTOWARD): Remove.
8841         (BUILT_IN_NEXTTOWARDF): Ditto.
8842         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8843         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8844
8845 2008-02-27  Tom Tromey  <tromey@redhat.com>
8846
8847         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8848         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8849
8850 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8851
8852         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8853         update the respective field on newdecl.
8854
8855 2008-02-27  Revital Eres  <eres@il.ibm.com>
8856
8857         PR rtl-optimization/34999
8858         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8859         crossing edges that ends with a call insn.
8860         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8861         call insn and clear the EDGE_CROSSING flag of the crossing edge
8862         when fixing fallthru edges.
8863
8864 2008-02-27  Richard Guenther  <rguenther@suse.de>
8865
8866         PR middle-end/35390
8867         * fold-const.c (fold_unary): Return the correct argument,
8868         converted to the result type.
8869
8870 2008-02-27  Richard Guenther  <rguenther@suse.de>
8871
8872         PR middle-end/34971
8873         * expr.c (expand_expr_real_1): Assert on rotates that operate
8874         on partial modes.
8875         * fold-const.c (fold_binary): Use the types precision, not the
8876         bitsize of the mode if folding rotate expressions.  Build rotates
8877         only for full modes.
8878
8879 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8880
8881         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8882         and CPP_PRAGMA_EOL.
8883         * c-pragma.c (pragma_ns_name): New typedef.
8884         (registered_pp_pragmas): New variable.
8885         (c_pp_lookup_pragma): New function.
8886         (c_register_pragma_1): If flag_preprocess_only, do nothing
8887         for non-expanded pragmas, for expanded ones push pragma's
8888         namespace and name into registered_pp_pragmas vector.
8889         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8890         flag_preprocess_only, don't register GCC pch_preprocess
8891         pragma if flag_preprocess_only.
8892         * c-opts.c (c_common_init): Call init_pragma even if
8893         flag_preprocess_only.
8894         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8895         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8896         cpp_register_pragma if flag_preprocess_only.
8897
8898 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8899
8900         PR c/28800
8901         * c-parser.c (c_parser_translation_unit): Warn for empty
8902         translation unit, not empty source file.
8903
8904 2008-02-26  Paul Brook  <paul@codesourcery.com>
8905
8906         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8907         operand for Thumb-2.
8908         * config/arm/arm.h (reg_class): Add CORE_REGS.
8909         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8910         (BASE_REG_CLASS): Use CORE_REGS.
8911         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8912         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8913         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8914         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8915         ARM_REGNO_OK_FOR_INDEX_P.
8916         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8917         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8918         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8919         (ldm/stm peepholes): Ditto.
8920         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8921         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8922         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8923         * config/arm/constraints.md: Enable "k" constraint on ARM.
8924
8925 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8926
8927         * config/rs6000/rs6000.c: Annotate cache line size field in all
8928         instances of struct processor_costs.
8929
8930 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8931
8932         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8933         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8934         jump_bypass): New counters.
8935         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8936         * dce.c (gate_ud_dce): Same.
8937         (gate_fast_dce): Same.
8938         * dse.c (gate_dse1): New function.
8939         (gate_dse2): New function.
8940         (gate_dse): Merge results of new gate functions.
8941         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8942         (gate_handle_jump_bypass): Add dbg_cnt.
8943         (gate_handle_gcse): Add dbg_cnt.
8944         * ifcvt.c (gate_handle_if_conversion): Same.
8945         (gate_handle_if_after_combine): Same.
8946         (gate_handle_if_after_reload): Same.
8947         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8948
8949 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8950
8951         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8952         line sizes.
8953         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8954
8955 2008-02-26  Jason Merrill  <jason@redhat.com>
8956
8957         PR c++/35315
8958         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8959         alone if it's the naming decl for the type's main variant.
8960
8961 2008-02-26  Tom Tromey  <tromey@redhat.com>
8962
8963         * system.h (USE_MAPPED_LOCATION): Poison.
8964         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8965         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8966         (make_goto_expr_edges): Likewise.
8967         (remove_bb): Likewise.
8968         (execute_warn_function_return): Likewise.
8969         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8970         location_t.
8971         * c-common.c (fname_decl): Remove old location code.
8972         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8973         location code.
8974         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8975         variant.
8976         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8977         (gen_rtx_ASM_INPUT): Likewise.
8978         (gen_rtx_ASM_INPUT_loc): Likewise.
8979         (get_rtx_asm_OPERANDS): Remove.
8980         * cfglayout.c (insn_locators_alloc): Remove old location code.
8981         (set_curr_insn_source_location): Likewise.
8982         (curr_insn_locator): Likewise.
8983         * print-tree.c (print_node): Remove old location code.
8984         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8985         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8986         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8987         location_from_locus.
8988         (construct_exit_block): Remove old location code.
8989         * emit-rtl.c (force_next_line_note): Remove old location code.
8990         * profile.c (branch_prob): Remove old location code.
8991         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8992         LOC_LINE): Remove old-location variants.
8993         * langhooks.c (lhd_print_error_function): Remove old location
8994         code.
8995         * configure, config.in: Rebuilt.
8996         * configure.ac (--enable-mapped-location): Remove.
8997         * c-decl.c (c_init_decl_processing): Remove old location code.
8998         (finish_function): Likewise.
8999         * recog.c (decode_asm_operands): Remove old location code.
9000         * c-pch.c (c_common_read_pch): Remove old location code.
9001         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9002         variants.
9003         * gimple-low.c (lower_function_body): Remove old location code.
9004         * toplev.c (unknown_location): Remove.
9005         (push_srcloc): Remove old-location variant.
9006         (process_options): Remove old location code.
9007         (lang_dependent_init): Likewise.
9008         * input.h (UNKNOWN_LOCATION): Move definition.
9009         (location_t): Undeprecate.
9010         (source_locus): Remove.
9011         (location_from_locus): Remove.
9012         (struct location_s): Remove.
9013         Remove all old-location code.
9014         (input_line, input_filename): Remove.
9015         * final.c (final_scan_insn): Remove old location code.
9016         * diagnostic.c (diagnostic_build_prefix): Remove
9017         USE_MAPPED_LOCATION test.
9018         * tree.h (gimple_stmt) <locus>: Now a location_t.
9019         (tree_exp) <locus>: Likewise.
9020         (DECL_IS_BUILTIN): Remove old-location variant.
9021         (annotate_with_file_line, annotate_with_locus): Likewise.
9022         (expr_locus, set_expr_locus): Update.
9023         * tree.c (build1_stat): Remove old location code.
9024         (last_annotated_node): Remove.
9025         (annotate_with_file_line): Remove old-location variant.
9026         (annotate_with_locus): Likewise.
9027         (expr_location): Remove old location code.
9028         (set_expr_location): Likewise.
9029         (expr_has_location): Likewise.
9030         (expr_locus): Likewise.
9031         (set_expr_locus): Likewise.
9032         (expr_filename): Don't use location_from_locus.
9033         (expr_lineno): Likewise.
9034         * rtl-error.c (location_for_asm): Remove old location code.
9035         * c-lex.c (cb_line_change): Remove old location code.
9036         (fe_file_change): Likewise.
9037         (cb_def_pragma): Likewise.
9038         (c_lex_with_flags): Likewise.
9039         * gengtype.c (do_typedef): Don't special-case location types.
9040         (define_location_structures): Remove.
9041         (main): Don't call define_location_structures.
9042         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9043         code.
9044
9045 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9046
9047         PR 26264
9048         * builtins.def (BUILT_IN_STDARG_START): Remove.
9049         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9050         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9051         * tree-inline.c (inline_forbidden_p_1): Likewise.
9052         
9053 2008-02-26  Richard Guenther  <rguenther@suse.de>
9054
9055         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9056         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9057         (lookup_decl_from_uid): Declare.
9058         (remove_decl_from_map): Likewise.
9059         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9060         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9061         (decl_for_uid_map): New global hashtable mapping DECL_UID
9062         to the decl tree.
9063         (init_ttree): Allocate it.
9064         (insert_decl_to_uid_decl_map): New helper function.
9065         (make_node_stat): Insert new decls into the map.
9066         (copy_node_stat): Likewise.
9067         (lookup_decl_from_uid): New function.
9068         (remove_decl_from_map): Likewise.
9069         (print_decl_for_uid_map_statistics): New helper.
9070         (dump_tree_statistics): Call it.
9071
9072         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9073         (referenced_var_iterator): Adjust.
9074         (FOR_EACH_REFERENCED_VAR): Adjust.
9075         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9076         (num_referenced_vars): Adjust.
9077         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9078         (first_referenced_var): Remove.
9079         (end_referenced_vars_p): Likewise.
9080         (next_referenced_var): Likewise.
9081         (referenced_var_iterator_set): New helper function.
9082         * tree-dfa.c (referenced_var_lookup): Adjust.
9083         (referenced_var_check_and_insert): Likewise.
9084         (remove_referenced_var): Likewise.
9085         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9086         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9087         (verify_call_clobbering): Likewise.
9088         (verify_memory_partitions): Likewise.
9089         (init_tree_ssa): Allocate bitmap instead of hashtable for
9090         referenced_vars.
9091         (delete_tree_ssa): Adjust.
9092         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9093         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9094         (compute_tag_properties): Likewise.
9095         (set_initial_properties): Likewise.
9096         (find_partition_for): Likewise.
9097         (update_reference_counts): Likewise.
9098         (dump_may_aliases_for): Likewise.
9099         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9100         (add_call_clobber_ops): Likewise.
9101         (add_call_read_ops): Likewise.
9102         (get_asm_expr_operands): Likewise.
9103         * tree-into-ssa.c (dump_decl_set): Likewise.
9104         (update_ssa): Likewise.
9105         * tree-sra.c (scan_function): Likewise.
9106         (decide_instantiations): Likewise.
9107         (scalarize_parms): Likewise.
9108         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9109         (dsa_named_for): Likewise.
9110         * tree-ssa-structalias.c (update_alias_info): Likewise.
9111         (merge_smts_into): Likewise.
9112
9113 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9114
9115         PR 34351
9116         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9117         * c-opts.c (c_common_handle_option): Wall enables
9118         Wvolatile-register-var.
9119         * common.opt: Move Wvolatile-register-var to...
9120         * c.opt: ...here.
9121         
9122 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9123
9124         * common.opt (Wlarger-than=): New.
9125         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9126         -Wlarger-than=.
9127         * opts.c (common_handle_option): Handle -Wlarger-than=.
9128         * optc-gen.awk: Likewise.
9129         * opth-gen.awk: Likewise.
9130         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9131         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9132         
9133 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9134
9135         * c-common.c (match_case_to_enum_1): Add appropriate
9136         OPT_W* parameter to warning.
9137         (c_do_switch_warnings): Likewise.
9138         * c-typeck.c (warning_init): Add one more parameter following
9139         'warning' function.
9140         (push_init_level): Update call to warning_init.
9141         (pop_init_level): Likewise.
9142         (add_pending_init): Likewise.
9143         (output_init_element: Likewise.
9144
9145 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9146
9147         PR 28322
9148         * toplev.c (toplev_main): If there are warnings or error, print
9149         errors for ignored options.
9150         * opts.c (ignored_options): New static variable.
9151         (postpone_unknown_option_error): New.
9152         (print_ignored_options): New.
9153         (handle_option): Postpone errors for unknown -Wno-* options.
9154         * opts.h (print_ignored_options): Declare.
9155         
9156 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9157
9158         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9159         to "ghost".
9160
9161 2008-02-25  Richard Guenther  <rguenther@suse.de>
9162
9163         Revert:
9164         2008-02-25  Richard Guenther  <rguenther@suse.de>
9165
9166         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9167         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9168         (lookup_decl_from_uid): Declare.
9169         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9170         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9171         (decl_for_uid_map): New global hashtable mapping DECL_UID
9172         to the decl tree.
9173         (init_ttree): Allocate it.
9174         (insert_decl_to_uid_decl_map): New helper function.
9175         (make_node_stat): Insert new decls into the map.
9176         (copy_node_stat): Likewise.
9177         (lookup_decl_from_uid): New function.
9178         (print_decl_for_uid_map_statistics): New helper.
9179         (dump_tree_statistics): Call it.
9180
9181         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9182         (referenced_var_iterator): Adjust.
9183         (FOR_EACH_REFERENCED_VAR): Adjust.
9184         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9185         (num_referenced_vars): Adjust.
9186         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9187         (first_referenced_var): Remove.
9188         (end_referenced_vars_p): Likewise.
9189         (next_referenced_var): Likewise.
9190         (referenced_var_iterator_set): New helper function.
9191         * tree-dfa.c (referenced_var_lookup): Adjust.
9192         (referenced_var_check_and_insert): Likewise.
9193         (remove_referenced_var): Likewise.
9194         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9195         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9196         (verify_call_clobbering): Likewise.
9197         (verify_memory_partitions): Likewise.
9198         (init_tree_ssa): Allocate bitmap instead of hashtable for
9199         referenced_vars.
9200         (delete_tree_ssa): Adjust.
9201         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9202         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9203         (compute_tag_properties): Likewise.
9204         (set_initial_properties): Likewise.
9205         (find_partition_for): Likewise.
9206         (update_reference_counts): Likewise.
9207         (dump_may_aliases_for): Likewise.
9208         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9209         (add_call_clobber_ops): Likewise.
9210         (add_call_read_ops): Likewise.
9211         (get_asm_expr_operands): Likewise.
9212         * tree-into-ssa.c (dump_decl_set): Likewise.
9213         (update_ssa): Likewise.
9214         * tree-sra.c (scan_function): Likewise.
9215         (decide_instantiations): Likewise.
9216         (scalarize_parms): Likewise.
9217         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9218         (dsa_named_for): Likewise.
9219         * tree-ssa-structalias.c (update_alias_info): Likewise.
9220         (merge_smts_into): Likewise.
9221
9222 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9223
9224         PR fortran/29549
9225         * doc/invoke.texi (-fcx-limited-range): Document new option.
9226         * toplev.c (process_options): Handle -fcx-fortran-rules.
9227         * common.opt: Add documentation for -fcx-fortran-rules.
9228
9229 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9230
9231         PR c/35162
9232         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9233         actual behaviour and C99.
9234         
9235 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9236
9237         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9238         (ASM_CPU_POWER6_SPEC): Likewise.
9239         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9240         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9241         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9242
9243 2008-02-25  Richard Guenther  <rguenther@suse.de>
9244
9245         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9246         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9247         (lookup_decl_from_uid): Declare.
9248         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9249         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9250         (decl_for_uid_map): New global hashtable mapping DECL_UID
9251         to the decl tree.
9252         (init_ttree): Allocate it.
9253         (insert_decl_to_uid_decl_map): New helper function.
9254         (make_node_stat): Insert new decls into the map.
9255         (copy_node_stat): Likewise.
9256         (lookup_decl_from_uid): New function.
9257         (print_decl_for_uid_map_statistics): New helper.
9258         (dump_tree_statistics): Call it.
9259
9260         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9261         (referenced_var_iterator): Adjust.
9262         (FOR_EACH_REFERENCED_VAR): Adjust.
9263         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9264         (num_referenced_vars): Adjust.
9265         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9266         (first_referenced_var): Remove.
9267         (end_referenced_vars_p): Likewise.
9268         (next_referenced_var): Likewise.
9269         (referenced_var_iterator_set): New helper function.
9270         * tree-dfa.c (referenced_var_lookup): Adjust.
9271         (referenced_var_check_and_insert): Likewise.
9272         (remove_referenced_var): Likewise.
9273         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9274         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9275         (verify_call_clobbering): Likewise.
9276         (verify_memory_partitions): Likewise.
9277         (init_tree_ssa): Allocate bitmap instead of hashtable for
9278         referenced_vars.
9279         (delete_tree_ssa): Adjust.
9280         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9281         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9282         (compute_tag_properties): Likewise.
9283         (set_initial_properties): Likewise.
9284         (find_partition_for): Likewise.
9285         (update_reference_counts): Likewise.
9286         (dump_may_aliases_for): Likewise.
9287         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9288         (add_call_clobber_ops): Likewise.
9289         (add_call_read_ops): Likewise.
9290         (get_asm_expr_operands): Likewise.
9291         * tree-into-ssa.c (dump_decl_set): Likewise.
9292         (update_ssa): Likewise.
9293         * tree-sra.c (scan_function): Likewise.
9294         (decide_instantiations): Likewise.
9295         (scalarize_parms): Likewise.
9296         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9297         (dsa_named_for): Likewise.
9298         * tree-ssa-structalias.c (update_alias_info): Likewise.
9299         (merge_smts_into): Likewise.
9300
9301 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9302
9303         PR target/35258
9304         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9305         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9306         * alias.h (nonoverlapping_memrefs_p): Likewise.
9307
9308 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9309
9310         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9311         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9312         __emultls_get_address, __emultls_register_common,
9313         __floatundi?f, and _Unwind_GetIPInfo.
9314         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9315         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9316         (gen_regparm_prefix): Likewise.
9317         (i386_nlm_encode_section_info): Sync with
9318         config/i386/winnt.c:i386_pe_encode_section_info().
9319         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9320         i386_nlm_mangle_decl_assembler_name): New.
9321         (netware_override_options): New.
9322         * config/i386/netware.h (netware_override_options): Declare.
9323         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9324         (i386_nlm_mangle_decl_assembler_name): Declare.
9325         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9326
9327 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9328
9329         PR other/32948
9330         * c-decl.c (grokdeclarator): Remove unused local variables
9331         `typedef_type' and `type_as_written'.
9332         * bb-reorder.c
9333         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9334         unused local variable `has_hot_blocks'.
9335         (fix_crossing_conditional_branches): Remove unused local variable
9336         `prev_bb'.
9337         
9338 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9339
9340         PR middle-end/19984
9341         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9342         using DEF_C99_BUILTIN.
9343         (BUILT_IN_NANF): Ditto.
9344         (BUILT_IN_NANL): Ditto.
9345
9346 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9347             Revital Eres  <eres@il.ibm.com>
9348
9349         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9350         regarding the order of two dependent insns in the same row.
9351
9352 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9353
9354         * stor-layout.c (layout_decl): Do not bump the alignment of a
9355         bit-field to more than byte alignment if it is packed.
9356
9357 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9358
9359         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9360         e300c2 and e300c3.
9361
9362 2008-02-24  Diego Novillo  <dnovillo@google.com>
9363
9364         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9365
9366         PR 33738
9367         * tree-vrp.c (vrp_evaluate_conditional): With
9368         -Wtype-limits, emit a warning when comparing against a
9369         constant outside the natural range of OP0's type.
9370         * c.opt (Wtype-limits): Move ...
9371         * common.opt (Wtype-limits): ... here.
9372
9373 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9374
9375         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9376         * config/rs6000/e300c2c3.md: New file.
9377         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9378         e300c2 and e300c3.
9379         (rs6000_override_options): Add e300c2 and e300c3 cases to
9380         processor_target_table. Do not allow usage of Altivec or Spe
9381         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9382         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9383         * config/rs6000/rs6000.h (processor_type): Add
9384         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9385         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9386         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9387         and ppce300c3. Include e300c2c3.md.
9388
9389 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9390
9391         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9392         instead of TARGET_STRICT_ALIGN.
9393
9394 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9395
9396         * explow.c (memory_address): Assert that the generated address is
9397         valid.
9398
9399 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9400
9401         PR target/25477
9402         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9403         * config/darwin-ppc-ldouble-patch.def: New file.
9404         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9405         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9406         SUBTARGET_INIT_BUILTINS if defined.
9407         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9408         New functions.
9409
9410 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9411
9412         PR rtl-opt/33512
9413         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9414         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9415
9416 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9417
9418         PR pch/35027
9419         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9420         file" warning condtional on -Winvalid-PCH.
9421
9422 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9423
9424         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9425
9426 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9427
9428         PR target/22076
9429         PR target/34256 
9430         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9431         prevent reload from using MMX registers.
9432         (*mov<mode>_internal): Ditto.
9433         (*movv2sf_internal_rex64): Ditto.
9434         (*movv2sf_internal): Ditto.
9435
9436 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9437
9438         PR documentation/31569
9439         * doc/install.texi2html: Use makeinfo --no-number-sections.
9440
9441 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9442
9443         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9444         ensure that we can address an entire entity > 8 bytes.  Don't
9445         generate reg+reg addressing for such data.
9446
9447 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9448
9449         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9450         strings when optimizing for size, unless the target cares about
9451         alignment.
9452
9453 2008-02-22  Tom Tromey  <tromey@redhat.com>
9454
9455         * regclass.c (current_pass): Remove declaration.
9456
9457 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9458
9459         * config/avr/libgcc.S (__RAMPZ__): Define.
9460         (__do_copy_data): Add for devices with 128KB code memory.
9461
9462 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9463
9464         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9465         Use spe_abi.
9466         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9467
9468 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9469
9470         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9471         GENNONACR_REGS.
9472
9473 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9474
9475         PR c/19999
9476         * c-typeck.c (build_binary_op): Warn about floating point
9477         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9478
9479 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9480
9481         PR target/34526
9482         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9483         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9484         add vrsave.
9485         (rs6000_override_options): Set altivec_abi as default, not override,
9486         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9487         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9488         is used; use new member spe_abi.
9489         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9490         spe_abi and altivec_abi.
9491
9492 2008-02-22  Tomas Bily  <tbily@suse.cz>
9493
9494         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9495
9496 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9497
9498         PR bootstrap/35273
9499         * config.build (build_file_translate): Set to `CMD //c' only if
9500         it works.
9501         * Makefile.in (build_file_translate): Improve comment.
9502
9503 2008-02-21  Jan Hubicka  <jh@suse.cz>
9504
9505         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9506         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9507         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9508
9509 2008-02-21  Michael Matz  <matz@suse.de>
9510
9511         PR target/35264
9512         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9513
9514 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9515
9516         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9517         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9518         as insn constraint.
9519         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9520         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9521         SSE_VEC_FLOAT_MODE_P as insn constraint.
9522         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9523         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9524         sse4a_movntdf using MODEF mode iterator.
9525         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9526         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9527         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9528         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9529         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9530         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9531         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9532
9533 2008-02-21  Richard Guenther  <rguenther@suse.de>
9534
9535         * tree.def (PAREN_EXPR): New tree code.
9536         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9537         and PAREN_EXPR.
9538         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9539         * expr.c (expand_expr_real_1): Likewise.
9540         * tree-inline.c (estimate_num_insns_1): Likewise.
9541         * tree-complex.c (expand_complex_move): Likewise.
9542         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9543         as plain x.
9544
9545 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9546
9547         PR target/35225
9548         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9549
9550 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9551
9552         PR target/35190
9553         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9554
9555         * config/sh/sh.c (find_barrier): Don't go past
9556         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9557
9558 2008-02-20  DJ Delorie  <dj@redhat.com>
9559
9560         * config/h8300/h8300.md (insv): Force source operand to be a register.
9561
9562         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9563         as a jump, not as a plain insn.
9564         
9565 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9566
9567         * doc/invoke.texi (Warning Options): Add new option
9568         -Wframe-larger-than=.
9569         (-Wframe-larger-than): Document.
9570
9571         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9572         Add declarations for new option variables.
9573
9574         * final.c (final_start_function): Check the frame size
9575         before emission and issue a Wframe-larger-than warning.
9576
9577         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9578         Add definitions for new option variables.
9579         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9580
9581         * common.opt (Wframe-larger-than=): New option.
9582
9583 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9584
9585         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9586         (<sse>_div<mode>3): Ditto.
9587         (<sse>_vmdiv<mode>3): Ditto.
9588         (<sse>_vmsqrt<mode>2): Ditto.
9589         (*smax<mode>3): Ditto.
9590         (sse5_frcz<mode>2): Ditto.
9591         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9592         as insn constraint.
9593
9594 2008-02-20  Richard Guenther  <rguenther@suse.de>
9595
9596         PR middle-end/35265
9597         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9598         be happy with INTEGRAL_TYPE_P.
9599
9600 2008-02-20  Richard Guenther  <rguenther@suse.de>
9601
9602         * fold-const.c (split_tree): Associate floatig-point expressions
9603         if flag_associative_math is set.
9604
9605 2008-02-20  Richard Guenther  <rguenther@suse.de>
9606
9607         * tree.h (fold_real_zero_addition_p): Declare.
9608         * fold-const.c (fold_real_zero_addition_p): Export.
9609         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9610         floating-point operations with zero and one.
9611
9612 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9613
9614         * doc/install.texi: Correct references to CFLAGS, replacing them
9615         with BOOT_CFLAGS.  Document flags used during bootstrap for
9616         target libraries.
9617                                 
9618 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9619
9620         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9621         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9622         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9623         insn constraint.
9624         (smin<mode>3): Ditto from similar patterns.
9625         (smax<mode>3): Ditto.
9626         (*ieee_smin<mode>3): Ditto.
9627         (*ieee_smax<mode>3): Ditto.
9628         * config/i386/sse.md (sse): New mode attribute.
9629         (mov<mode>): Macroize expander from movv4sf and movv2df using
9630         SSEMODEF2P mode iterator.
9631         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9632         SSE_VEC_FLOAT_MODE_P as insn constraint.
9633         (storent<mode>): Ditto.
9634         (storent<mode>): Macroize expander from storentsf and storentdf using
9635         MODEF mode iterator.
9636         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9637         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9638         (abs<mode>2): Ditto from similar patterns.
9639         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9640         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9641         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9642         (<sse>_vmsqrt<mode>2): Ditto.
9643         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9644         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9645         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9646         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9647         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9648         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9649         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9650         insn constraint.
9651         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9652         iterator and SSE_FLOAT_MODE_P as insn constraint.
9653         (<sse>_ucomi): Ditto from similar patterns.
9654         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9655         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9656         SSE_VEC_FLOAT_MODE_P as insn constraint.
9657         (vcond<mode>): Ditto from similar patterns.
9658         (and<mode>3, *and<mode>3): Ditto.
9659         (<sse>_nand<mode>3): Ditto.
9660         (ior<mode>3, *ior<mode>3): Ditto.
9661         (xor<mode>3, *xor<mode>3): Ditto.
9662         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9663         iterator and SSE_FLOAT_MODE_P as insn constraint.
9664         (*nand<mode>3): Ditto from similar patterns.
9665         (*ior<mode>3): Ditto.
9666         (*xor<mode>3): Ditto.
9667
9668 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9669
9670         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9671         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9672         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9673
9674 2008-02-19  Jan Hubicka  <jh@suse.cz>
9675
9676         * predict.c (tree_bb_level_predictions): Remove variable next
9677         mistakely introduced by previous commit.
9678
9679 2008-02-19  Jan Hubicka  <jh@suse.cz>
9680
9681         * predict.c (predict_paths_leading_to): Rewrite.
9682         (predict_paths_for_bb): New.
9683         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9684
9685 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9686
9687         PR bootstrap/35218
9688         * Makefile.in (build_file_translate): New.
9689         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9690         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9691         * configure.ac (build_file_translate): Substitute it.
9692         * configure: Regenerate.
9693
9694 2008-02-19  Jan Hubicka  <jh@suse.cz>
9695
9696         PR rtl-optimization/34408
9697         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9698         invalid sharing.
9699
9700 2008-02-19  Jan Hubicka  <jh@suse.cz>
9701
9702         PR middle-end/28779
9703         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9704         call_expr.
9705
9706 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9707
9708         PR Ada/35186
9709         * config/i386/i386-modes.def: Revert the last DI alignment
9710         change until Ada people can look into it.
9711
9712 2008-02-19  Nick Clifton  <nickc@redhat.com>
9713
9714         * opts.c (print_specific_help): Fix typo in --help text.
9715
9716 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9717
9718         PR target/35239
9719         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9720         32-bit inline asm without asm alternatives for host GCC < 3.0.
9721
9722 2008-02-19  Richard Guenther  <rguenther@suse.de>
9723
9724         PR tree-optimization/34989
9725         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9726         Allow propagation to INDIRECT_REF if we can simplify only.
9727
9728 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9729
9730         * c-common.c (warn_for_collisions_1): Use appropriate option when
9731         warning.
9732
9733 2008-02-19  Nick Clifton  <nickc@redhat.com>
9734
9735         PR other/31349
9736         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9737         (handle_options): Fix indentation.
9738         (print_filtered_help): If no language-specific options were
9739         displayed tell the user how to list all the options supported by
9740         the language's front-end.
9741         (print_specific_help): Fix indentation and remove duplicate line.
9742         (common_handle_option): Handle the -v option.
9743         For --help enable the display of undocumented options if the -v
9744         switch has been included on the command line.
9745         For --help= check for overlaps in the arguments between the option
9746         classes and the language names and issue a warning when they
9747         cannot be disambiguated.
9748         * c.opt (v): Pass on to the common option handler.
9749
9750 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9751
9752         * modulo-sched.c (sms_schedule): Change dump message when
9753         create_ddg function fails.
9754         (try_scheduling_node_in_cycle): Rename row to cycle.
9755         (print_partial_schedule): Rename CYCLE to ROW.
9756
9757 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9758             Zdenek Dvorak  <ook@ucw.cz>
9759
9760         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9761
9762 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9763
9764         PR target/33555
9765         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9766         (*x86_movdicc_0_m1_se): Ditto.
9767
9768 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9769
9770         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9771         (CMPtype): Define as __gcc_CMPtype.
9772         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9773         (CMPtype): Define as __gcc_CMPtype.
9774
9775 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9776
9777         Support valgrind 3.3 for --enable-checking=valgrind.
9778         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9779         here.
9780         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9781         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9782         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9783         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9784         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9785         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9786         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9787         respectively.
9788         * ggc-zone.c: Similar.
9789         * ggc-page.c: Similar.
9790
9791 2008-02-19  Paul Brook  <paul@codesourcery.com>
9792
9793         PR target/35071
9794         * config/arm/ieee754-df.S: Fix do_it typo.
9795         * config/arm/ieee754-sf.S: Fix do_it typo.
9796
9797 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9798
9799         PR target/35189
9800         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9801         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9802         (OPTION_MASK_ISA_SSE_SET): Likewise.
9803         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9804         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9805         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9806         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9807         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9808         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9809         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9810         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9811         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9812         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9813         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9814         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9815         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9816         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9817         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9818         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9819         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9820         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9821         (OPTION_MASK_ISA_SSE4): Removed.
9822         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9823         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9824         (override_options): Don't turn on implied SSE/MMX bits in
9825         ix86_isa_flags.
9826
9827 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9828
9829         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9830         32bit host.
9831
9832 2008-02-18  Joey Ye  <joey.ye@intel.com>
9833
9834         PR middle-end/34921
9835         * tree-nested.c (insert_field_into_struct): Set type alignment
9836         to field alignment if the former is less than the latter.
9837
9838 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9839
9840         * BASE-VER: Set to 4.4.0.
9841
9842 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9843
9844         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9845         * doc/cfg.texi: Likewise.
9846         * doc/extend.texi: Likewise.
9847         * doc/gty.texi: Likewise.
9848         * doc/invoke.texi: Likewise.
9849         * doc/loop.texi: Likewise.
9850         * doc/md.texi: Likewise.
9851         * doc/passes.texi: Likewise.
9852         * doc/rtl.texi: Likewise.
9853         * doc/sourcebuild.texi: Likewise.
9854         * doc/tm.texi: Likewise.
9855         * doc/tree-ssa.texi: Likewise.
9856
9857 2008-02-17  Richard Guenther  <rguenther@suse.de>
9858
9859         PR middle-end/35227
9860         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9861         without default definition.
9862
9863 2008-02-17  Richard Guenther  <rguenther@suse.de>
9864
9865         PR tree-optimization/35231
9866         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9867         if A | B != 1.
9868
9869 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9870
9871         Revert:
9872         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9873         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9874         libgcc_cmp_return mode.
9875
9876 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9877
9878         PR c/28368
9879         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9880
9881 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9882
9883         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9884         multilibs.
9885
9886 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9887
9888         * doc/c-tree.texi: Use `@.' where appropriate.
9889         * doc/extend.texi: Likewise.
9890         * doc/install.texi: Likewise.
9891         * doc/invoke.texi: Likewise.
9892         * doc/loop.texi: Likewise.
9893         * doc/makefile.texi: Likewise.
9894         * doc/md.texi: Likewise.
9895         * doc/passes.texi: Likewise.
9896         * doc/standards.texi: Likewise.
9897         * doc/tm.texi: Likewise.
9898
9899 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9900
9901         PR middle-end/35196
9902         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9903         in entry_bb.
9904         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9905         rather than in entry_bb.
9906
9907 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9908
9909         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9910         libgcc_cmp_return mode.
9911
9912 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9913
9914         PR middle-end/35130
9915         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9916         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9917
9918 2008-02-15  Richard Guenther  <rguenther@suse.de>
9919             Zdenek Dvorak  <ook@ucw.cz>
9920
9921         PR tree-optimization/35164
9922         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9923         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9924         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9925         Only propagate addresses which do not have abnormal SSA_NAMEs
9926         in their operands.
9927
9928 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9929
9930         PR target/35088
9931         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9932
9933 2008-02-15  Jan Hubicka  <jh@suse.cz>
9934
9935         PR middle-end/35149
9936         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9937
9938 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9939
9940         PR middle-end/34621
9941         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9942         when calculating alignment_pad.
9943
9944 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9945
9946         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9947         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9948         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9949         and STACK_BOUNDARY define.
9950
9951 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9952
9953         PR preprocessor/35061
9954         * c-pragma.c (handle_pragma_pop_macro): Check that
9955         pushed_macro_table has been allocated.
9956
9957 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9958
9959         PR middle-end/35136
9960         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9961         (force_gimple_operand): Likewise.
9962         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9963         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9964         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9965         (find_interesting_uses_address): Check addressability and alignment
9966         of the base expression only after substituting bases of IVs into it.
9967
9968 2008-02-14  Michael Matz  <matz@suse.de>
9969
9970         PR target/34930
9971         * function.c (instantiate_virtual_regs_in_insn): Reload address
9972         before falling back to reloading the whole operand.
9973
9974 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9975
9976         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9977         before the first section switch note.
9978
9979 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9980
9981         * doc/bugreport.texi: Update copyright years.
9982         * doc/c-tree.texi: Likewise.
9983         * doc/cfg.texi: Likewise.
9984         * doc/cpp.texi: Likewise.
9985         * doc/cppinternals.texi: Likewise.
9986         * doc/fragments.texi: Likewise.
9987         * doc/frontends.texi: Likewise.
9988         * doc/gcc.texi: Likewise.
9989         * doc/gty.texi: Likewise.
9990         * doc/hostconfig.texi: Likewise.
9991         * doc/implement-c.texi: Likewise.
9992         * doc/libgcc.texi: Likewise.
9993         * doc/loop.texi: Likewise.
9994         * doc/makefile.texi: Likewise.
9995         * doc/options.texi: Likewise.
9996         * doc/passes.texi: Likewise.
9997         * doc/rtl.texi: Likewise.
9998         * doc/sourcebuild.texi: Likewise.
9999         * doc/standards.texi: Likewise.
10000         * doc/tree-ssa.texi: Likewise.
10001         * doc/trouble.texi: Likewise.
10002
10003         * doc/extend.texi: Use @: or add comma where appropriate.
10004         * doc/invoke.texi: Likewise.
10005         * doc/tm.texi: Likewise.
10006
10007 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10008
10009         PR target/34393
10010         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10011         to a reg.
10012
10013 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10014
10015         * doc/md.texi (clz, ctz): Add reference.
10016         * doc/rtl.texi (clz, ctz): Likewise.
10017
10018 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10019
10020         PR other/35148
10021         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10022         srcdir.
10023
10024 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10025
10026         * config/s390/s390.c (struct constant_pool): New field
10027         emit_pool_after added.
10028         (s390_mainpool_start): Set the emit_pool_after flag according
10029         to the section switch notes.
10030         (s390_mainpool_finish): Consider emit_pool_after when emitting
10031         the literal pool at the end of the function.
10032         (s390_chunkify_start): Force literal pool splits at section
10033         switch notes.
10034
10035 2008-02-13  Michael Matz  <matz@suse.de>
10036
10037         PR debug/35065
10038         * var-tracking.c (clobber_variable_part): Correctly traverse the
10039         list.
10040
10041 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10042
10043         PR 29673
10044         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10045         Add -fdump-ipa-inline.
10046         * tree-dump.c (dump_files): Remove tree-inlined dump.
10047         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10048         
10049 2008-02-12  Richard Guenther  <rguenther@suse.de>
10050
10051         PR tree-optimization/35171
10052         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10053         default defs.
10054
10055 2008-02-12  Richard Guenther  <rguenther@suse.de>
10056
10057         PR middle-end/35163
10058         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10059         value-preserving mode.  Disallow final truncation.
10060
10061 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10062
10063         PR middle-end/35136
10064         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10065         code from here to...
10066         (force_gimple_operand): ...here.
10067
10068 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10069
10070         PR c++/35144
10071         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10072         non-compatible pointers.
10073         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10074         different FIELD_DECLs, try harder by comparing field offsets, sizes
10075         and types.
10076
10077         PR inline-asm/35160
10078         * function.c (match_asm_constraints_1): Don't replace the same input
10079         multiple times.
10080
10081 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10082
10083         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10084         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10085         (expand_epilogue): Restore RAMPZ register.
10086         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10087
10088 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10089
10090         * config/i386/cygwin.asm: (__alloca): Correct calling
10091         convention and alignment.
10092         (__chkstk): Force 8 byte stack alignment.
10093
10094 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10095             Richard Guenther  <rguenther@suse.de>
10096
10097         PR tree-optimization/33992
10098         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10099         the zero we compare against.
10100
10101 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10102
10103         PR libfortran/35063
10104         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10105         to CloseHandle after unlocking to prevent accumulation of handle
10106         count.
10107
10108 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10109
10110         PR middle_end/34150
10111         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10112         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10113         and update LABEL_NUSES during and after reload.
10114
10115 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10116
10117         PR middle-end/34627
10118         * combine.c (simplify_if_then_else): Make sure the comparison is
10119         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10120
10121 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10122
10123         PR bootstrap/35051
10124         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10125         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10126         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10127         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10128         * tree.h (get_type_static_bounds): Likewise.
10129
10130 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10131
10132         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10133         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10134         Make -Wfoo language annotations match what the compiler outputs.
10135
10136 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10137
10138         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10139         intrinsics spu_convts, spu_convtu, spu_convtf.
10140
10141 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10142
10143         * doc/extend.texi (Function Attributes) <noinline>: Mention
10144         asm ("") as method to keep calls.
10145
10146 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10147
10148         PR other/32754
10149         * doc/options.texi (Options): Replace references to opts.sh with
10150         optc-gen.awk.
10151         * opts-common.c: Likewise.
10152         * optc-gen.awk: Likewise.
10153         
10154 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10155
10156         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10157
10158 2008-02-07  Richard Henderson  <rth@redhat.com>
10159
10160         PR rtl-opt/33410
10161         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10162         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10163         funny mode.
10164
10165 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10166
10167         PR tree-optimization/35085
10168         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10169         for operand entry oe2 in addition to operand entry oe3 in order to
10170         expose more opportunities for vectorizer sum reduction.
10171
10172 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10173
10174         PR other/35107
10175         * Makefile.in (LIBS): Remove $(GMPLIBS).
10176         (cc1-dummy, cc1): Add $(GMPLIBS).
10177
10178 2008-02-06  Jan Hubicka  <jh@suse.cz>
10179
10180         PR target/23322
10181         * i386.md (moddf_integer): Do not produce partial memory stalls for
10182         targets where it hurts.
10183
10184 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10185
10186         PR target/35083
10187         * optabs.c (expand_float): Do not check for decimal modes when
10188         expanding unsigned integer through signed conversion.
10189
10190 2008-02-06  Nick Clifton  <nickc@redhat.com>
10191
10192         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10193         inside the clobber with a match_operand and duplicated operand
10194         number in the constraint.
10195         (ineqbranchsi): Delete redundant comment.
10196
10197 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10198
10199         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10200         builtin_define ("__USE_INIT_FINI__").
10201         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10202         -msx multilibs.
10203         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10204
10205 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10206
10207         PR documentation/30330
10208         * doc/invoke.texi (C++ Dialect Options)
10209         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10210         For each warning option -Wfoo that allows -Wno-foo, ensure both
10211         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10212         entry of -Wswitch-default, index -Wnormalized= including the
10213         `=', and -Wlarger-than-@var{len} including @var{len}.
10214
10215 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10216
10217         * config/i386/i386.md (floatunssisf2): Use
10218         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10219         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10220         Macroize expander using MODEF mode iterator.
10221
10222 2008-02-05  Diego Novillo  <dnovillo@google.com>
10223
10224         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10225
10226         PR 33738
10227         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10228
10229 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10230
10231         PR other/35070
10232         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10233
10234 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10235
10236         PR target/35084
10237         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10238         to indicate if a message should be generated.
10239         (init_cumulative_args): Updated.
10240         (function_value_32): Likewise.
10241
10242 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10243
10244         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10245
10246 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10247
10248         PR target/35083
10249         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10250         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10251
10252 2008-02-04  Diego Novillo  <dnovillo@google.com>
10253
10254         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10255
10256         PR 33738
10257         * tree-vrp.c (vrp_evaluate_conditional): With
10258         -Wtype-limits, emit a warning when comparing against a
10259         constant outside the natural range of OP0's type.
10260
10261 2008-02-04  Richard Guenther  <rguenther@suse.de>
10262
10263         PR middle-end/33631
10264         * expr.c (count_type_elements): Give for unions instead of
10265         guessing.
10266
10267 2008-02-04  Richard Guenther  <rguenther@suse.de>
10268
10269         PR middle-end/35043
10270         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10271         to TYPE_DOMAINs base type instead of using bitsizetype here.
10272
10273 2008-02-03  Jason Merrill  <jason@redhat.com>
10274
10275         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10276
10277 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10278
10279         PR other/29972
10280         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10281         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10282         (RS/6000 and PowerPC Options): Fix typos and markup.
10283         * doc/passes.texi (Tree-SSA passes): Likewise.
10284
10285 2008-02-02  Michael Matz  <matz@suse.de>
10286
10287         PR target/35045
10288         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10289         from record_last_reg_set_info.
10290         (record_last_reg_set_info): Take an RTX argument, iterate over all
10291         constituent hardregs.
10292         (record_last_set_info, record_opr_changes): Change calls to
10293         new signature or to record_last_reg_set_info_regno.
10294
10295 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10296
10297         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10298
10299 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10300
10301         PR rtl-optimization/34773
10302         * reg-notes.def (EQUAL): Mention significance of combination of
10303         REG_EQUAL and REG_RETVAL.
10304         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10305         insn that has a REG_RETVAL.
10306
10307 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10308
10309         PR bootstrap/33781
10310         * configure.ac (--enable-fixed-point): Disable unless explicitly
10311         requested on IRIX.
10312         * configure: Regenerate.
10313
10314 2008-02-01  Richard Guenther  <rguenther@suse.de>
10315
10316         PR other/35042
10317         * invoke.texi (-finline-limit): Remove no longer true parts
10318         of the documentation.  Note that there is no default value.
10319
10320 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10321             Mark Mitchell  <mark@codesourcery.com>
10322             Ben Elliston  <bje@au.ibm.com>
10323
10324         PR c/29326
10325         * doc/extend.texi (Other Builtins): Document.
10326
10327 2008-01-31  Tom Browder <tom.browder@gmail.com>
10328
10329         * doc/c-tree.texi (Types): Fix grammar.
10330         (Expression trees): Ditto.
10331         * doc/passes.texi (Tree-SSA passes): Ditto.
10332         
10333         * doc/configterms.texi (Configure Terms): Fix typo.
10334         * doc/cpp.texi (Common Predefined Macros): Ditto.
10335         * doc/md.texi (Machine Constraints): Ditto.
10336         
10337         * doc/makefile.texi (Makefile): Add comma.
10338
10339 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10340             Gerald Pfeifer  <gerald@pfeifer.com>
10341         
10342         * doc/sourcebuild.texi (Front End): Remove references to CVS
10343         and CVSROOT/modules.
10344         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10345         (Back End): Remove reference to CVS.
10346
10347 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10348
10349         PR target/34900
10350         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10351         comment from...
10352         (mips16_gp_pseudo_reg): ...here.
10353         * config/mips/mips.md (load_const_gp): Replace with...
10354         (load_const_gp_<mode>): ...this :P-based insn.
10355
10356 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10357
10358         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10359         options. Minor fixes.
10360         (-std): Move reference to standards closer to where language
10361         standards are first mentioned.
10362         
10363 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10364
10365         PR rtl-optimization/34995
10366         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10367         parameter and return a bool.  If the rtx parameter is nonnull,
10368         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10369         (find_reloads): Update call accordingly.  Pass the new operand
10370         if it needed no address reloads, otherwise pass null.
10371
10372 2008-01-30  Richard Henderson  <rth@redhat.com>
10373
10374         PR c/34993
10375         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10376         for unbounded arrays.
10377
10378 2008-01-30  Silvius Rus  <rus@google.com>
10379
10380         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10381
10382 2008-01-30  Jan Hubicka  <jh@suse.cz>
10383
10384         PR target/34982
10385         * i386.c (init_cumulative_args): Use real function declaration when
10386         calling locally.
10387
10388 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10389
10390         PR rtl-optimization/34998
10391         * global.c (build_insn_chain): Treat non-subreg_lowpart
10392         SUBREGs of pseudos as clobbering all the words covered by the
10393         SUBREG, not just all the bytes.
10394         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10395         original df_ref rather than an extract parameter.
10396         (global_conflicts): Update call accordingly.
10397
10398 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10399
10400         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10401         the overflow check to make it easier to read.
10402         (__fixtfdi): Change the type of the ll member in union
10403         long_double to UDItype_x.
10404
10405 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10406
10407         PR middle-end/34969
10408         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10409         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10410         * tree-inline.c (fold_marked_statements): Call
10411         cgraph_update_edges_for_call_stmt if folding a call statement.
10412         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10413         debug_generic_stmt calls, reset it back afterwards.
10414
10415         PR c/35017
10416         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10417         static decls.
10418         * c-typeck.c (build_external_ref): Don't pedwarn about
10419         static vars in current function's scope.
10420
10421 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10422
10423         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10424
10425 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10426
10427         PR c/35002
10428         * ipa-struct-reorg.c: Fix spelling.
10429         * params.def: Ditto.
10430
10431 2008-01-29  Richard Guenther  <rguenther@suse.de>
10432
10433         PR middle-end/35006
10434         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10435         field.
10436         * tree-inline.c (remap_type): Increment remapping_type_depth
10437         around remapping types.
10438         (copy_body_r): Only add referenced variables if they are referenced
10439         from code, not types.
10440
10441 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10442
10443         PR c++/34055
10444         PR c++/34103
10445         PR c++/34219
10446         PR c++/34606
10447         PR c++/34753
10448         PR c++/34754
10449         PR c++/34755
10450         PR c++/34919
10451         PR c++/34961
10452         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10453         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10454
10455 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10456
10457         PR target/34412
10458         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10459         pointer for tiny stack.
10460
10461 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10462
10463         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10464
10465 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10466
10467         * config/vx-common.h: Fix typo in comment.
10468
10469 2008-01-28  Ian Lance Taylor  <iant@google.com>
10470
10471         PR c++/34862
10472         PR c++/33407
10473         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10474         coalesce pointers if they have different DECL_NO_TBAA_P values.
10475         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10476         between variables with different DECL_NO_TBAA_P values.
10477
10478 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10479
10480         PR 31535
10481         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10482         are not legitimate small data references on SPE targets.
10483
10484 2008-01-28  David Daney  <ddaney@avtrex.com>
10485
10486         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10487
10488 2008-01-28  David Daney  <ddaney@avtrex.com>
10489
10490         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10491
10492 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10493
10494         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10495         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10496         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10497         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10498         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10499         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10500         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10501         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10502
10503 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10504
10505         * basic-block.h (condjump_equiv_p): Fix comment.
10506
10507 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10508
10509         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10510         print_generic_stmt_indented): Fix comment.
10511
10512 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10513
10514         * configure.ac (__stack_chk_fail): Add detecion for availability
10515         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10516         * configure: Regenerate.
10517
10518 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10519
10520         PR middle-end/34688
10521         * final.c (output_addr_const): Handle TRUNCATE.
10522
10523 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10524
10525         PR target/34711
10526         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10527         (zero_cost, infinite_cost): New constants.
10528         (struct cost_pair): Change type of cost to comp_cost.
10529         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10530         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10531         New functions.
10532         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10533         split_address_cost, ptr_difference_cost, difference_cost,
10534         get_computation_cost_at, get_computation_cost,
10535         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10536         determine_use_iv_cost_condition, determine_use_iv_costs,
10537         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10538         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10539         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10540         Change type of cost to comp_cost.
10541         (determine_iv_cost): Increase cost of non-original ivs, instead
10542         of decreasing the cost of original ones.
10543         (get_address_cost): Indicate the complexity of the addressing mode 
10544         in comp_cost.
10545         (try_add_cand_for): Prefer using ivs not specific to some object.
10546         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10547
10548 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10549             Janis Johnson  <janis187@us.ibm.com>
10550
10551         PR target/34814
10552         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10553         (TARGET_INSTANTIATE_DECLS): Likewise.
10554         * target.h (expand_to_rtl_hook): New target hook.
10555         (instantiate_decls): Likewise.
10556         * function.c (instantiate_decl): Make non-static.  Rename to...
10557         (instantiate_decl_rtl): ... this.
10558         (instantiate_expr): Use instantiate_decl_rtl.
10559         (instantiate_decls_1): Likewise.
10560         (instantiate_decls): Likewise.
10561         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10562         * function.h (instantiate_decl_rtl): Add prototype.
10563         * cfgexpand.c (target.h): New include.
10564         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10565         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10566         (TARGET_INSTANTIATE_DECLS): Likewise.
10567         (TARGET_INITIALIZER): New target hooks added.
10568         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10569         New prototype.
10570         * config/rs6000/rs6000.c (tree-flow.h): New include.
10571         (machine_function): Add sdmode_stack_slot field.
10572         (rs6000_alloc_sdmode_stack_slot): New function.
10573         (rs6000_instantiate_decls): Likewise.
10574         (rs6000_secondary_memory_needed_rtx): Likewise.
10575         (rs6000_check_sdmode): Likewise.
10576         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10577         (TARGET_INSTANTIATE_DECLS): Likewise.
10578         (rs6000_hard_regno_mode_ok): Allow SDmode.
10579         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10580         (rs6000_emit_move): Handle SDmode.
10581         (function_arg_advance): Likewise.
10582         (function_arg): Likewise.
10583         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10584         SDmode var args for 32-bit compiles.
10585         (rs6000_secondary_reload_class): Handle SDmode.
10586         (rs6000_output_function_epilogue): Likewise.
10587         (rs6000_function_value): Simplify if statement.
10588         (rs6000_libcall_value): Likewise.
10589         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10590         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10591         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10592         (movsd_hardfloat): New define_insn.
10593         (movsd_softfloat): Likewise.
10594         (movsd_store): Likewise.
10595         (movsd_load): Likewise.
10596         (extendsddd2): Likewise.
10597         (extendsdtd2): Likewise.
10598         (truncddsd2): Likewise.
10599         (movdd_hardfloat64): Fixup comment.
10600         (UNSPEC_MOVSD_LOAD): New constant.
10601         (UNSPEC_MOVSD_STORE): Likewise.
10602
10603 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10604
10605         PR c++/34965
10606         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10607         TRUTH_XOR_EXPR.
10608         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10609         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10610         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10611         and TRUTH_XOR_EXPR.
10612
10613 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10614
10615         PR target/34794
10616         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10617         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10618         __LONGDOUBLE128 too.
10619         * config/rs6000/aix61.h: New file.
10620
10621 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10622
10623         PR rtl-optimization/34959
10624         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10625         popcount and parity rtxes the same mode as their operand.
10626         Truncate or extend the result to the return value's mode
10627         if necessary.
10628
10629 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10630
10631         PR target/34981
10632         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10633         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10634         to GOT_VERSION_REGNUM.
10635         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10636         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10637         * config/mips/mips.c (mips_emit_call_insn): New function.
10638         (mips_call_tls_get_addr): Call mips_expand_call directly.
10639         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10640         emit_call_insn.
10641         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10642         (mips_expand_call): Update the call to mips16_build_call_stub
10643         accordingly and a remove redundant condition.  Assert that MIPS16
10644         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10645         the call insn.
10646         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10647         TARGET_USE_GOT.
10648         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10649         (mips_avoid_hazard): Remove hazard_set handling.
10650         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10651         (UNSPEC_RESTORE_GP): ...this.
10652         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10653         (FAKE_CALL_REGNO): Rename to...
10654         (GOT_VERSION_REGNUM): ...this.
10655         (type): Add "ghost" value.  Add an associated insn reservation.
10656         (hazard_set): Remove.
10657         (exception_receiver): Rename to...
10658         (restore_gp): ...this and update the unspec identifier accordingly.
10659         (exception_receiver, nonlocal_got_receiver): New expanders.
10660         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10661         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10662         (set_got_version, update_got_version): New patterns.
10663
10664 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10665
10666         PR target/34970
10667         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10668
10669 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10670
10671         PR other/31955
10672         * doc/install.texi2html: Generate gcc-vers.texi.
10673
10674 2008-01-25  DJ Delorie  <dj@redhat.com>
10675
10676         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10677
10678 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10679
10680         * config/c4x: Remove directory.
10681         * config.gcc (crx-*, mt-*): Mark obsolete.
10682         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10683         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10684         sh-*-rtemscoff*): Remove cases.
10685         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10686         * real.c (encode_c4x_single, decode_c4x_single,
10687         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10688         c4x_extended_format): Remove.
10689         * real.h (c4x_single_format, c4x_extended_format): Remove.
10690         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10691         on C4x.
10692         (Pragmas): Remove comment about c4x pragmas.
10693         * doc/install.texi (c4x): Remove target-specific instructions.
10694         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10695         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10696         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10697         refer to C4x source files as examples.
10698         (C4X_FLOAT_FORMAT): Remove documentation.
10699
10700 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10701
10702         * config/bfin/bfin.c (override_options): Reorder tests so that
10703         flag_pic gets enabled for -msep-data.
10704
10705 2008-01-25  Richard Guenther  <rguenther@suse.de>
10706
10707         PR middle-end/32244
10708         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10709         to its bitfield precision if required.
10710
10711 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10712
10713         PR middle-end/33880
10714         * tree-nested.c (walk_omp_for): New function.
10715         (convert_nonlocal_reference, convert_local_reference): Call
10716         walk_omp_for on OMP_FOR.
10717         (convert_call_expr): Call walk_body on OMP_FOR's
10718         OMP_FOR_PRE_INIT_BODY.
10719
10720 2008-01-25  Richard Guenther  <rguenther@suse.de>
10721
10722         PR tree-optimization/34966
10723         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10724         default defs and PHI_NODEs we have to insert after the
10725         defining statement.
10726
10727 2008-01-24  Nick Clifton  <nickc@redhat.com>
10728
10729         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10730         Provide a default definition.
10731         (LIBGCC2_UNITS_PER_WORD): Likewise.
10732
10733         * config/stormy16/stormy16.c: Include df.h for the prototype
10734         for df_regs_ever_live_p.
10735         (xstormy16_expand_builtin_va_start): Convert the stack offset
10736         into a component_ref and then use POINTER_PLUS_EXPR to add it
10737         to the incoming_virtual_args_rtx.
10738         (xstormy16_gimplify_va_arg_expr): Rename to
10739         xstormy16_gimplify_va_arg_expr.
10740         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10741         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10742         xstormy16_gimplify_va_arg_expr.
10743         Fix up some formatting issues.
10744
10745         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10746         Move to predicates.md.
10747         (xs_hi_general_operand): Likewise.
10748         (xs_hi_nonmemory_operand): Likewise.
10749         * config/stormy16/predicates.md:
10750         (xstormy16_carry_plus_operand): New predicate.
10751         (xs_hi_general_operand): New predicate.
10752         (xs_hi_nonmemory_operand): New predicate.
10753         * config/stormy16/stormy16-protos.h:
10754         (xstormy16_carry_plus_operand): Delete prototype.
10755         (xs_hi_general_operand): Likewise.
10756         (xs_hi_nonmemory_operand): Likewise.
10757
10758         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10759         modifiers as they are no longer needed and they can trigger
10760         reload spill failures.
10761
10762         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10763         with a match_operand in order to help reload.
10764
10765         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10766         constraint with 'e' for the 8th alternative as this version of
10767         the mov.w instruction only accepts the lower 8 registers.
10768
10769 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10770
10771         PR target/34856
10772         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10773         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10774         vector elements.
10775
10776 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10777
10778         PR middle-end/33333
10779         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10780
10781 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10782
10783         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10784         New functions.
10785         (remove_structure): Update allocations list before removing structure.
10786         
10787 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10788
10789         * ipa-struct-reorg.c (is_safe_cond_expr, 
10790         create_new_stmts_for_cond_expr): Use integer_zerop function,
10791         that recognize not only zero-pointer, but zero-integer too.
10792
10793 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10794
10795         PR other/22232
10796         * fixproto: Escape "." in sed expression that strips leading "./".
10797
10798 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10799
10800         PR driver/34904
10801         * gcc.c (SWITCH_OK): Removed.
10802         (SWITCH_LIVE): Changed to bit.
10803         (SWITCH_FALSE): Likewise.
10804         (SWITCH_IGNORE): Likewise.
10805         (switchstr): Change live_cond to unsigned int.
10806         (process_command): Replace SWITCH_OK with 0.
10807         (do_self_spec): Likewise.
10808         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10809         (give_switch): Likewise.
10810         (used_arg): Likewise.
10811         (do_spec_1): Set the SWITCH_IGNORE bit.
10812         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10813         bits.  Set the SWITCH_LIVE bit.
10814
10815 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10816
10817         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10818
10819 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10820
10821         PR tree-optimization/34472
10822         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10823         parameter to a "bool *" and set *DATA to false if there is
10824         an unsafe access.  Do not delete the structure here.
10825         (check_cond_exprs): Delete it here instead.
10826         (check_cond_exprs, exclude_cold_structs): Do not increase
10827         I when removing a structure.
10828
10829 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10830
10831         PR target/34856
10832         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10833         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10834
10835 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10836
10837         PR middle-end/34934
10838         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10839         a fixed vector for stack.
10840
10841 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10842
10843         PR c++/25701
10844         * doc/gcc.texi (Software development): Add a direntry for g++.
10845         
10846 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10847
10848         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10849         stale and straggling -fforce-addr comments above.
10850
10851         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10852         define.
10853         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10854         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10855
10856 2008-01-23  Michael Matz  <matz@suse.de>
10857
10858         PR debug/34895
10859         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10860         gen_type_die.
10861
10862 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10863
10864         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10865         malloc result type.
10866
10867 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10868
10869         * config/avr/avr.c (avr_current_arch): New variable.
10870         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10871         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10872         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10873         (avr_override_options): Init 'avr_current_arch'. 
10874         (base_arch_s): Move from here...
10875         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10876         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10877         'mega' to 'have_jmp_call'.
10878         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10879         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10880         macros.
10881         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10882         architectures.
10883         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10884         MULTILIB_MATCHES): (Ditto.).
10885
10886 2008-01-23  Richard Guenther  <rguenther@suse.de>
10887
10888         PR middle-end/31529
10889         * cgraphunit.c (cgraph_reset_node): Always mark the node
10890         not reachable if it is not queued already.
10891
10892 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10893
10894         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10895         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10896         (cputype_selected): New static variable.
10897         (bfin_handle_option): Set it if -mcpu is used.
10898         (override_option): Select default set of workarounds if no cpu type
10899         selected on the command line.
10900         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10901
10902         From  Michael Frysinger  <michael.frysinger@analog.com>
10903         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10904         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10905
10906         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10907         for bf547, bf523, bf524, and bf526.
10908         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10909         bf526.
10910         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10911         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10912         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10913         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10914         * doc/invoke.texi (Blackfin Options): Document that
10915         -mcpu now accept bf547, bf523, bf524, and bf526.
10916
10917 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10918
10919         PR rtl-optimization/34628
10920         * combine.c (try_combine): Stop and undo after the first combination
10921         if an autoincrement side-effect on the first insn has effectively
10922         been lost.
10923
10924 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10925
10926         PR target/34529
10927         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10928         Offset addresses are not valid for Altivec or paired float modes.
10929
10930 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10931
10932         PR c++/34607
10933         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10934         if DECL_INITIAL (decl) is error_mark_node.
10935
10936         PR c++/34914
10937         * c-common.c (handle_vector_size_attribute): Only allow
10938         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10939         the same way as pointer, array etc. types.
10940         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10941
10942         PR c++/34917
10943         * tree.c (build_type_attribute_qual_variant): Call
10944         build_qualified_type if attributes are equal, but quals are not.
10945
10946 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10947
10948         PR 32102
10949         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10950         * flags.h (warn_strict_aliasing): Remove.
10951         (warn_strict_overflow): Remove.
10952         * opts.c (warn_strict_aliasing): Remove.
10953         (warn_strict_overflow): Remove.
10954         * c-opts.c (c_common_handle_option): -Wall only sets
10955         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10956         (c_common_post_options): Give default values to -Wstrict-aliasing
10957         and -Wstrict-overflow if they are uninitialized.
10958         * common.opt (Wstrict-aliasing): Specify Var and Init.
10959         (Wstrict-overflow): Likewise.
10960
10961 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10962
10963         PR rtl-optimization/26854
10964         PR rtl-optimization/34400
10965         PR rtl-optimization/34884
10966         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10967         DF_RD->gen.
10968         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10969         (df_rd_bb_info.expanded_lr_out): Deleted
10970         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10971         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10972         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10973         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10974         Removed code to allocate, initialize or free expanded_lr_out.
10975         (df_rd_bb_local_compute_process_def): Restructured to make more
10976         understandable.
10977         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10978         sets if the sets are being trimmed.
10979
10980 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10981
10982         PR bootstrap/32287
10983         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10984         (as_vers): Likewise.
10985         * configure: Regenerated.
10986
10987 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10988
10989         PR middle-end/33092
10990         * tree-pass.h (pass_build_alias): New pass.
10991         * tree-ssa-alias.c (gate_build_alias): New.
10992         (pass_build_alias): New.
10993         * passes.c (init_optimization_passes): Add pass_build_alias after
10994         pass_create_structure_vars.
10995
10996 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10997
10998         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10999         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11000         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11001         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11002         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11003         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11004         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11005         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11006         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11007         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11008         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11009         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11010         * config/s390/s390.md (FP_ALL): New mode iterator.
11011         (_d): New mode attribute.
11012         ("*signbit<mode>2>"): Changed mode of first operand.
11013         ("isinf<mode>2"): Changed mode of first operand.
11014         ("*TDC_insn"): Adaptation for DFP modes.
11015
11016 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11017
11018         * tree.c (check_qualified_type): Improve function description.
11019
11020 2008-01-21  Jason Merrill  <jason@redhat.com>
11021
11022         PR c++/34196
11023         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11024         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11025         if it is set.
11026
11027 2008-01-21  DJ Delorie  <dj@redhat.com>
11028
11029         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11030         return zero.
11031
11032 2008-01-21  Richard Guenther  <rguenther@suse.de>
11033
11034         PR middle-end/34856
11035         * tree-cfg.c (verify_expr): Allow all invariant expressions
11036         instead of just constant class ones as reference argument.
11037         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11038         like any other constant.
11039         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11040
11041 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11042
11043         * regmove.c (fixup_match_1): Update call crossed frequencies.
11044
11045 2008-01-21  Richard Guenther  <rguenther@suse.de>
11046
11047         PR c/34885
11048         * tree-inline.c (setup_one_parameter): Deal with mismatched
11049         types using a VIEW_CONVERT_EXPR.
11050
11051 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11052             Olga Golovanevsky  <olga@il.ibm.com>
11053         
11054         PR tree-optimization/34701
11055         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11056         when the structure size is not a power of 2.
11057
11058 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11059
11060         * doc/install.texi: Add doc for --enable-checking=df.
11061         
11062 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11063
11064         PR rtl-optimization/34808
11065         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11066
11067 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11068
11069         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11070         input.
11071
11072 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11073
11074         PR rtl-optimization/26854
11075         PR rtl-optimization/34400
11076         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11077         DF_RD->gen.
11078         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11079         (df_rd_bb_info.expanded_lr_out): New.
11080         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11081         * loop_iv.c (iv_analysis_loop_init): Ditto.
11082         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11083         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11084         Added code to allocate, initialize or free expanded_lr_out.
11085         (df_rd_bb_local_compute_process_def): Restructured to make
11086         more understandable.
11087         (df_rd_confluence_n): Add code to do nothing with fake edges and
11088         code to no apply invalidate_by_call sets if the sets are being trimmed.
11089         (df_lr_local_finalize): Renamed to df_lr_finalize.
11090         (df_live_local_finalize): Renamed to df_live_finalize.
11091
11092 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11093
11094         PR target/34831
11095         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11096         deciding whether to use reciprocal instructions.
11097
11098 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11099
11100         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11101         dwarf2out_note_section_used if cold_text_section is NULL.
11102
11103 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11104
11105         PR gcov-profile/34610
11106         * tree-cfg.c (make_edges): Mark both outgoing edges from
11107         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11108         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11109         from OMP_FOR and OMP_CONTINUE outgoing edges.
11110
11111         * tree-profile.c (tree_profiling): Return early if
11112         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11113         at the end.
11114         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11115         from cfun to child_cfun.
11116         * function.h (struct function): Add after_tree_profile bit.
11117
11118 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11119
11120         * config/avr/avr.S (_exit): Disable interrupt.
11121
11122 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11123             Steven Bosscher  <stevenb.gcc@gmail.com>
11124
11125         PR rtl-optimization/26854
11126         PR rtl-optimization/34400
11127         * df-problems.c (df_live_scratch): New scratch bitmap.
11128         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11129         (df_live_reset): Clear the proper bitmaps.
11130         (df_live_bb_local_compute): Only process the artificial defs once
11131         since the order is not important.
11132         (df_live_init): Init the df_live sets only with the variables
11133         found live by df_lr.
11134         (df_live_transfer_function): Use the df_lr sets to prune the
11135         df_live sets as they are being computed.  
11136         (df_live_free): Free df_live_scratch.
11137
11138 2008-01-18  Ian Lance Taylor  <iant@google.com>
11139
11140         * common.opt: Add fmerge-debug-strings.
11141         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11142         flag_merge_debug_strings rather than flag_merge_constants.
11143         * doc/invoke.texi (Option Summary): Mention
11144         -fmerge-debug-strings.
11145         (Debugging Options): Document -fmerge-debug-strings.
11146
11147 2008-01-18  Ian Lance Taylor  <iant@google.com>
11148
11149         PR c++/33407
11150         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11151         (struct tree_function_decl): Add new field operator_new_flag.
11152         * tree-inline.c (expand_call_inline): When inlining a call to
11153         operator new, force the return value to go into a variable, and
11154         set DECL_NO_TBAA_P on that variable.
11155         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11156
11157 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11158
11159         PR debug/34484
11160         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11161         DWARF2_DEBUGGING_INFO.
11162         (dwarf2out_note_section_used): Ditto.  Add prototype.
11163         (have_multiple_function_sections, text_section_used,
11164         cold_text_section_used, *cold_text_sections): Move declarations
11165         before their uses.
11166
11167 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11168
11169         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11170         field and add signal_ra.
11171         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11172         assignments to frame state pc.  Move end of stack check after
11173         MD_FALLBACK_FRAME_STATE_FOR.
11174         (uw_update_context_1): Use frame state signal_regs if set, instead
11175         of checking signal_frame flag.
11176         (uw_update_context): Use frame state signal_ra if set.
11177         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11178         * config/xtensa/linux-unwind.h: New file.
11179
11180 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11181
11182         * modulo-sched.c (get_sched_window): Fix comment typo.
11183
11184 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11185
11186         PR tree-optimization/34648
11187         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11188
11189 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11190
11191         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11192         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11193
11194 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11195
11196         PR rtl-optimization/34400
11197         * df-core.c (df_worklist_dataflow_overeager,
11198         df_worklist_dataflow_doublequeue): New functions.
11199         (df_worklist_dataflow): Two different worklist solvers.
11200         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11201         New param.
11202
11203 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11204
11205         PR testsuite/34821
11206         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11207         and ftree-parallelize-loops.
11208
11209 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11210
11211         PR rtl-optimization/34826
11212         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11213
11214 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11215
11216         * global.c (find_reg): Mark the eh regs as used if necessary.
11217         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11218         * ra.h (struct allocno): no_eh_reg field added.  Changed
11219         no_stack_reg type to bitfield.
11220
11221 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11222
11223         * tree.c (substitute_in_expr): Add missing 'break'.
11224
11225 2008-01-17  Richard Guenther  <rguenther@suse.de>
11226
11227         PR tree-optimization/34825
11228         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11229         x / x as division to handle.
11230
11231 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11232
11233         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11234         "-pthread" is specified.
11235         * pa-hpux11.h (LIB_SPEC): Likewise.
11236
11237 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11238             Peter Bergner  <bergner@vnet.ibm.com>
11239
11240         PR rtl-optimization/33796
11241         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11242
11243 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11244
11245         PR libgfortran/34699
11246         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11247         static links.
11248         * pa-hpux10.h (LINK_SPEC): Likewise.
11249         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11250
11251 2008-01-16  Richard Guenther  <rguenther@suse.de>
11252
11253         PR middle-end/32628
11254         * fold-const.c (fold_convert_const_int_from_int): Do not
11255         set overflow if that occured only because of a sign extension
11256         change when converting from/to a sizetype with the same
11257         precision and signedness.
11258
11259 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11260
11261         PR debug/34249
11262         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11263         location address to the correct place.  Update copyright year.
11264
11265 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11266
11267         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11268         no dependences in the dependence_relations vector.
11269
11270 2008-01-16  Jan Hubicka  <jh@suse.cz>
11271
11272         PR rtl-optimization/31396
11273         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11274         * cfg.c (dump_reg_info): Print it.
11275         * regs.h (struct reg_info_t): add freq_calls_crossed.
11276         (REG_FREQ_CALLS_CROSSED): New macro.
11277         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11278         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11279         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11280         regmove_optimize): Update call crossed frequencies.
11281         * local-alloc.c (struct qty): Add freq_calls_crossed.
11282         (alloc_qty): Copute freq_calls_crossed.
11283         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11284         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11285         * ra.h (struct allocno): Add freq_calls_crossed.
11286
11287 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11288
11289         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11290         libgomp when compiling with ftree-parallelize-loops.
11291         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11292
11293 2008-01-16  Richard Guenther  <rguenther@suse.de>
11294
11295         PR tree-optimization/34769
11296         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11297         * tree.c (int_cst_value): Instead make this function more
11298         permissive in what it accepts as valid input.  Document this
11299         function always sign-extends the value.
11300
11301 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11302             Richard Guenther  <rguenther@suse.de>
11303
11304         PR c/34668
11305         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11306         (gimple_fold_indirect_ref_rhs): ... this.
11307         (gimple_fold_indirect_ref): New function with foldings
11308         that preserve lvalueness.
11309         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11310         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11311         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11312         to fold an INDIRECT_REF, fall back to the old use of
11313         fold_indirect_ref_1.
11314
11315 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11316
11317         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11318         free_conflict_function.
11319         (compute_self_dependence): Same.
11320
11321 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11322
11323         PR debug/34249
11324         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11325         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11326         function global.
11327         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11328         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11329         for DWARF2_UNWIND_INFO targets.
11330
11331 2008-01-16  Richard Guenther  <rguenther@suse.de>
11332
11333         PR c/34768
11334         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11335         type qualifiers for function types.
11336
11337 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11338
11339         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11340         loop_iterator li from previous commit.
11341
11342 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11343
11344         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11345
11346 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11347
11348         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11349         (parallelize_loops): Don't parallelize irreducible components.
11350
11351 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11352
11353         PR c++/24924
11354         * c-opts (c_common_post_options): Do not enable CPP
11355         flag_pedantic_errors by default.
11356         
11357 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11358
11359         PR rtl-optimization/31944
11360         * cse.c (remove_pseudo_from_table): New function.
11361         (merge_equiv_classes): Use above function to remove pseudo-registers.
11362         (invalidate): Likewise.
11363
11364 2008-01-13  Richard Guenther  <rguenther@suse.de>
11365
11366         PR middle-end/34601
11367         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11368         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11369
11370 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11371
11372         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11373         validate_change to unshare the source of the PC set.
11374
11375 2008-01-12  Jan Hubicka  <jh@suse.cz>
11376
11377         PR middle-end/32135
11378         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11379         references above array bounds.  This might trigger bounds checks for
11380         pointers to arrays.
11381
11382 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11383
11384         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11385         new_replaceable_dependencies.
11386
11387 2008-01-12  Doug Kwan  <dougkwan@google.com>
11388
11389         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11390         instead of OPT_Wreturn_type in warning due to ignored return type
11391         qualifiers.
11392         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11393         options included in -Wextra.
11394         * c.opt: New option -Wignored_qualifiers.
11395         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11396         -Wignore_qualifiers.
11397         (-Wignored-qualifiers): Document.
11398         (-Wreturn-type): Remove description of functionality now handled
11399         by -Wignored-qualifiers.
11400
11401 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11402
11403         PR ada/33788
11404         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11405         NOP_EXPR if it is between integral types with the same precision.
11406
11407 2008-01-12  Jan Hubicka  <jh@suse.cz>
11408
11409         PR other/28023
11410         * invoke.texi (max-inline-recursive-depth): Fix default value.
11411
11412 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11413
11414         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11415         correct type.
11416
11417 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11418         
11419         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11420         
11421 2008-01-11  James E. Wilson  <wilson@specifix.com>
11422
11423         PR target/26015
11424         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11425
11426 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11427
11428         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11429         save/restore frame pointer register and don't use 'call-prologues' 
11430         optimization in function with "OS_task" attribute.
11431
11432 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11433
11434         PR middle-end/31309
11435         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11436         when copying to memory.
11437
11438 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11439
11440         PR rtl-optimization/30905
11441         * cfgcleanup.c: Include dce.h
11442         (crossjumps_occured): New global variable.
11443         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11444         If something changed, set crossjumps_occured to true.
11445         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11446         Don't add/remove fake edges to exit here...
11447         (cleanup_cfg): ...but do it here, when crossjumping.
11448         Run a fast DCE when successful crossjumps occured in the latest
11449         iteration of try_optimize_cfg.
11450
11451 2008-01-11  Richard Guenther  <rguenther@suse.de>
11452
11453         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11454         (struct vn_unary_op_s): Likewise.
11455         (vn_reference_insert): Free old reference on hash collision.
11456
11457 2008-01-10  Raksit Ashok  <raksit@google.com>
11458
11459         PR rtl-optimization/27971
11460         * combine.c (find_split_point): Split PLUS expressions which are
11461         inside a MEM rtx, and whose first operand is complex.
11462
11463 2008-01-10  DJ Delorie  <dj@redhat.com>
11464
11465         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11466         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11467         (m32c_hard_regno_ok): Call the underlying function.
11468
11469 2008-01-10  Richard Guenther  <rguenther@suse.de>
11470
11471         PR middle-end/34683
11472         * tree-cfg.c (tree_merge_blocks): Do not go through the
11473         full-blown folding and stmt updating path if we just deal
11474         with virtual operands.
11475         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11476         test for abnormal SSA_NAMEs.
11477
11478 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11479
11480         PR middle-end/34641
11481         * reload.c (push_reload): Add assertions.  All constants from
11482         reg_equiv_constant should have been used for replacing the respective
11483         pseudo earlier.
11484         (find_reloads_address): Invoke find_reloads_address_part for
11485         constant taken from the reg_equiv_constant array.
11486
11487 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11488
11489         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11490         field (valnum) the first in the struct.  Replace bools with
11491         unit bit fields.
11492
11493 2008-01-10  Richard Guenther  <rguenther@suse.de>
11494
11495         PR tree-optimization/34651
11496         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11497         types and ordering for masking and converting.
11498
11499 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11500
11501         PR tree-optimization/34017
11502         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11503         also for PHI_NODE expressions.
11504
11505 2008-01-09  Jan Hubicka  <jh@suse.cz>
11506
11507         PR tree-optimization/34708
11508         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11509         based on number of case labels.
11510         (init_inline_once): Remove switch_cost.
11511         * tree-inline.h (eni_weights_d): Remove switch_cost.
11512
11513 2008-01-09  Richard Guenther  <rguenther@suse.de>
11514         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11515
11516         PR middle-end/30132
11517         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11518         temporary if an rvalue is ok or an lvalue is not required.
11519
11520 2008-01-09  Richard Guenther  <rguenther@suse.de>
11521
11522         PR middle-end/34458
11523         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11524         adjust return type.
11525
11526 2008-01-09  Richard Guenther  <rguenther@suse.de>
11527
11528         PR middle-end/34679
11529         * tree.c (host_integerp): Check for sizetype only if the
11530         type is an integer type.
11531
11532 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11533
11534         PR debug/26364
11535         * opts.c (decode_options): Disable inlining of functions called
11536         once if not in unit-at-a-time mode.
11537
11538 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11539
11540         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11541
11542 2008-01-08  Richard Guenther  <rguenther@suse.de>
11543
11544         PR middle-end/31863
11545         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11546         out early if the result will be unused.
11547
11548 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11549
11550         PR target/34709
11551         Revert:
11552
11553         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11554         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11555         for TARGET_RECIP.       
11556         
11557 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11558         
11559         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11560         for vectorization tuned.
11561         
11562 2008-01-08  Richard Guenther  <rguenther@suse.de>
11563
11564         PR tree-optimization/34683
11565         * tree-ssa-operands.c (operand_build_cmp): Export.
11566         * tree-ssa-operands.h (operand_build_cmp): Declare.
11567         * tree-vn.c (vuses_compare): Remove.
11568         (sort_vuses): Use operand_build_cmp.
11569         (sort_vuses_heap): Likewise.
11570         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11571         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11572         (vdefs_to_vec): Do not sort already sorted VDEFs.
11573
11574 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11575
11576         PR middle-end/34694
11577         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11578
11579 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11580
11581         PR target/34702
11582         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11583         limitations of reciprocal sequences on x86 targets.
11584
11585 2008-01-08  Richard Guenther  <rguenther@suse.de>
11586
11587         PR tree-optimization/34683
11588         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11589
11590 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11591
11592         PR target/34622
11593         * config/darwin.c (darwin_mergeable_string_section): Don't use
11594         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11595
11596 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11597
11598         PR target/34682
11599         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11600         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11601         predicates of op0 and op1 to register_operand.
11602         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11603         expander using X87MODEF mode iterator.  Change predicates of
11604         op0 and op1 to register_operand.
11605         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11606         corresponding patterns and macroize using MODEF macro.  Change
11607         predicates of op0 and op1 to register_operand and remove
11608         "m" constraint. Disparage "r" alternative with "!".
11609         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11610         macroize using X87MODEF macro.  Change predicates of op0 and op1
11611         to register_operand and remove "m" constraint.  Disparage "r"
11612         alternative with "!".
11613         (absneg splitter with memory operands): Remove.
11614         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11615         patterns and macroize using X87MODEF mode iterator.
11616         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11617         Change predicate of op1 to register_operand.
11618         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11619         for memory operands.
11620
11621 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11622
11623         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11624
11625 2008-01-07  Richard Guenther  <rguenther@suse.de>
11626
11627         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11628         fields.
11629
11630 2008-01-07  Richard Guenther  <rguenther@suse.de>
11631
11632         PR tree-optimization/34683
11633         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11634         VOPs of the needed size to save memory.  Use VEC_quick_push
11635         to save compile-time.
11636         (vdefs_to_vec): Likewise.
11637
11638 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11639
11640         * config/spu/spu.md (divdf3): Genetate inline code for double
11641         division.  The implementation doesn't handle INF or NAN, therefore it
11642         only applies when -ffinite-math-only is given.
11643
11644 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11645
11646         PR libstdc++/34680
11647         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11648         * doc/cpp.texi ([Common Predefined Macros]): Document.
11649
11650 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11651
11652         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11653         order to use commutative addition instead of subtraction.
11654
11655 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11656             Mircea Namolaru  <namolaru@il.ibm.com>
11657             Vladimir Yanovsky  <yanov@il.ibm.com>
11658             Revital Eres  <eres@il.ibm.com>
11659
11660         PR tree-optimization/34263
11661         * tree-outof-ssa.c (process_single_block_loop_latch,
11662         contains_tree_r): New functions.
11663         (analyze_edges_for_bb): Call process_single_block_loop_latch
11664         function to empty single-basic-block latch block if possible.
11665
11666 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11667
11668         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11669         for TARGET_RECIP.
11670         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11671
11672 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11673
11674         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11675
11676 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11677
11678         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11679
11680 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11681
11682         PR tree-optimization/34618
11683         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11684         flag from T.
11685
11686 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11687
11688         PR target/34673
11689         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11690         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11691         Update copyright year.
11692
11693         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11694         Update copyright year.
11695         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11696         using NR fixup.
11697
11698 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11699
11700         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11701         edge does not point to current bb before changing need_assert.
11702
11703 2008-01-04  Richard Guenther  <rguenther@suse.de>
11704
11705         PR middle-end/34029
11706         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11707         for verifying purposes if they are is_gimple_min_invariant.
11708
11709 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11710
11711         PR tree-optimization/34448
11712         PR tree-optimization/34465
11713         * gimplify.c (gimplify_init_constructor): Add new parameter
11714         notify_temp_creation.  Use it.
11715         (gimplify_modify_expr_rhs): Take volatiles into account when
11716         optimizing constructors.
11717         Do not optimize constructors if gimplify_init_constructor will dump to
11718         memory.
11719         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11720         * gcc.c-torture/compile/pr34448.c: New.
11721
11722 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11723
11724         PR gcov-profile/34609
11725         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11726         return_slot if result is TREE_ADDRESSABLE.
11727
11728 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11729
11730         * config/mips/mips.md (sqrt_condition): Tweak comment.
11731         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11732
11733 2008-01-03  Tom Tromey  <tromey@redhat.com>
11734
11735         PR c/34457
11736         * c-common.c (c_type_hash): Handle VLAs.
11737
11738 2008-01-03  Jan Hubicka  <jh@suse.cz>
11739
11740         PR tree-optimization/31081
11741         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11742         0 when inlining and not inlining to first basic block.
11743         (remap_decl): When var is initialized to 0, don't set default_def.
11744         (expand_call_inline): Set entry_bb.
11745         * tree-inline.h (copy_body_data): Add entry_bb.
11746
11747 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11748
11749         PR c++/34619
11750         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11751         before returning.
11752
11753         PR tree-optimization/29484
11754         * tree-inline.c (inline_forbidden_p_2): New function.
11755         (inline_forbidden_p): Disallow inlining if some static var
11756         has an address of a local LABEL_DECL in its initializer.
11757         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11758         vs. inlining.
11759
11760 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11761
11762         PR tree-optimization/34635
11763         * tree-data-ref.c (add_other_self_distances): Make sure that the
11764         evolution step is constant.
11765
11766 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11767
11768         PR middle-end/34608
11769         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11770
11771 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11772
11773         * tree-sra.c (scalarize_init): Insert the generate_element_init
11774         statements after the generate_element_zero statements.
11775
11776 2008-01-02  Richard Guenther  <rguenther@suse.de>
11777
11778         PR middle-end/34093
11779         PR middle-end/31976
11780         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11781         for very large number of operands instead of ICEing.
11782
11783 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11784
11785         PR target/34013
11786         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11787         while stack probing.
11788
11789 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11790
11791         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11792         in C++0x mode.
11793
11794 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11795
11796         PR libmudflap/26442
11797         * tree-mudflap.c (mx_register_decls): Guard warning by
11798         !DECL_ARTIFICIAL check.
11799
11800 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11801
11802         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11803         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11804         sse5_perm<mode>): Fix constraints.