OSDN Git Service

PR target/36362
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2
3         PR target/36362
4         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
5         is not bool, boolify the whole *expr_p and convert to the desired type.
6
7 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8
9         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
10         200805.
11         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
12         Add omp_private_outer_ref hook, add another argument to
13         omp_clause_default_ctor hook.
14         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
15         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
16         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
17         hook_tree_tree_tree_tree_null.
18         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
19         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
20         * hooks.c (hook_tree_tree_tree_tree_null): New function.
21         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
22         * tree.def (OMP_TASK): New tree code.
23         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
24         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
25         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
26         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
27         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
28         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
29         OMP_CLAUSE_COLLAPSE_EXPR): Define.
30         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
31         (OMP_DIRECTIVE_P): Add OMP_TASK.
32         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
33         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
34         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
35         and OMP_CLAUSE_UNTIED entries.
36         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
37         num_ops to 2.
38         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
39         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
40         * tree-pretty-print.c (dump_omp_clause): Handle
41         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
42         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
43         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
44         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
45         warning about unsigned iterators.  Change decl/init/cond/incr
46         arguments to TREE_VECs, check arguments for all collapsed loops.
47         (c_finish_omp_taskwait): New function.
48         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
49         ws_clauses.
50         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
51         default_function_array_conversion on init.  Add par_clauses argument.
52         If decl is present in parallel's lastprivate clause, change it to
53         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
54         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
55         collapse count in clauses.
56         (c_parser_omp_for, c_parser_omp_parallel): Adjust
57         c_parser_omp_for_loop callers.
58         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
59         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
60         (c_parser_omp_clause_name): Handle collapse and untied clauses.
61         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
62         functions.
63         (c_parser_omp_clause_schedule): Handle schedule(auto).
64         Include correct location in the error message.
65         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
66         and PRAGMA_OMP_CLAUSE_UNTIED.
67         (OMP_TASK_CLAUSE_MASK): Define.
68         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
69         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
70         * tree-nested.c (convert_nonlocal_omp_clauses,
71         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
72         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
73         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
74         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
75         OMP_CLAUSE_DECL.
76         (conver_nonlocal_reference, convert_local_reference,
77         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
78         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
79         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
80         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
81         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
82         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
83         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
84         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
85         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
86         OMP_CLAUSE_UNTIED.
87         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
88         * c-common.h (c_finish_omp_taskwait): New prototype.
89         * gimple-low.c (lower_stmt): Handle OMP_TASK.
90         * tree-parloops.c (create_parallel_loop): Create 1 entry
91         vectors for OMP_FOR_{INIT,COND,INCR}.
92         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
93         (make_edges): Handle OMP_TASK.
94         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
95         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
96         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
97         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
98         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
99         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
100         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
101         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
102         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
103         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
104         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
105         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
106         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
107         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
108         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
109         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
110         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
111         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
112         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
113         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
114         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
115         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
116         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
117         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
118         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
119         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
120         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
121         original iterator is present in lastprivate clause or if
122         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
123         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
124         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
125         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
126         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
127         if it is set, lookup var in outer contexts too.  Handle
128         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
129         to be implicitly determined firstprivate for task regions.
130         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
131         if it is set, lookup var in outer contexts too.  Set
132         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
133         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
134         OMP_CLAUSE_UNTIED.  Take region_type as last argument
135         instead of in_parallel and in_combined_parallel.
136         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
137         Adjust callers.
138         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
139         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause
140         langhook.
141         (new_omp_context): Set default_kind to
142         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
143         (omp_region_type): New enum.
144         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
145         fields, add region_type.
146         (new_omp_context): Take region_type as argument instead of is_parallel
147         and is_combined_parallel.
148         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
149         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
150         ctx->is_combined_parallel checks.
151         (gimplify_omp_task): New function.
152         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
153         OMP_CLAUSE_UNTIED.
154         * omp-low.c (extract_omp_for_data): Use schedule(static)
155         for schedule(auto).  Handle pointer and unsigned iterators.
156         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
157         Add loops argument.  Extract data for collapsed OMP_FOR loops.
158         (expand_parallel_call): Assert sched_kind isn't auto,
159         map runtime schedule to index 3.
160         (struct omp_for_data_loop): New type.
161         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
162         Add loop, loops, collapse and iter_type fields.
163         (workshare_safe_to_combine_p): Disallow combined for if
164         iter_type is unsigned long long.  Don't combine collapse > 1 loops
165         unless all bounds and steps are constant.  Adjust extract_omp_for_data
166         caller.
167         (expand_omp_for_generic): Handle pointer, unsigned and long long
168         iterators.  Handle collapsed OMP_FOR loops.  Adjust
169         for struct omp_for_data changes.  If libgomp function doesn't return
170         boolean_type_node, add comparison of the return value with 0.
171         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
172         pointer, unsigned and long long iterators.  Adjust for struct
173         omp_for_data changes.
174         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
175         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
176         unsigned long long.  Allocate loops array, pass it to
177         extract_omp_for_data.  For collapse > 1 loops use always
178         expand_omp_for_generic.
179         (omp_context): Add sfield_map and srecord_type fields.
180         (is_task_ctx, lookup_sfield): New functions.
181         (use_pointer_for_field): Use is_task_ctx helper.  Change first
182         argument's type from const_tree to tree.  Clarify comment.
183         In OMP_TASK disallow copy-in/out sharing.
184         (build_sender_ref): Call lookup_sfield instead of lookup_field.
185         (install_var_field): Add mask argument.  Populate both record_type
186         and srecord_type if needed.
187         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
188         in srecord_type.
189         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
190         and DECL_FIELD_OFFSET.
191         (scan_sharing_clauses): Adjust install_var_field callers.  For
192         firstprivate clauses on explicit tasks allocate the var by value in
193         record_type unconditionally, rather than by reference.
194         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
195         Use is_taskreg_ctx instead of is_parallel_ctx.
196         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
197         (create_omp_child_function_name): Add task_copy argument, use
198         *_omp_cpyfn* names if it is true.
199         (create_omp_child_function): Add task_copy argument, if true create
200         *_omp_cpyfn* helper function.
201         (scan_omp_parallel): Adjust create_omp_child_function callers.
202         Rename parallel_nesting_level to taskreg_nesting_level.
203         (scan_omp_task): New function.
204         (lower_rec_input_clauses): Don't run constructors for firstprivate
205         explicit task vars which are initialized by *_omp_cpyfn*.  
206         Pass outer var ref to omp_clause_default_ctor hook if
207         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
208         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
209         OMP_CLAUSE_REDUCTION_INIT.
210         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
211         avoid duplicate setting of fields.  Handle
212         OMP_CLAUSE_PRIVATE_OUTER_REF.
213         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
214         copy-out if TREE_READONLY, only copy-in.
215         (expand_task_copyfn): New function.
216         (expand_task_call): New function.
217         (struct omp_taskcopy_context): New type.
218         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
219         New functions.
220         (lower_omp_parallel): Rename to...
221         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
222         Call create_task_copyfn if srecord_type is needed.  Adjust
223         sender_decl type.
224         (task_shared_vars): New variable.
225         (check_omp_nesting_restrictions): Warn if work-sharing,
226         barrier, master or ordered region is closely nested inside OMP_TASK.
227         Add warnings for barrier if closely nested inside of work-sharing,
228         ordered, or master region.
229         (scan_omp_1): Call check_omp_nesting_restrictions even for
230         GOMP_barrier calls.  Rename parallel_nesting_level to
231         taskreg_nesting_level.  Handle OMP_TASK.
232         (lower_lastprivate_clauses): Even if some lastprivate is found on a
233         work-sharing construct, continue looking for them on parent parallel
234         construct.
235         (lower_omp_for_lastprivate): Add lastprivate clauses
236         to the beginning of dlist rather than end.  Adjust for struct
237         omp_for_data changes.
238         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
239         not after it.  Handle collapsed OMP_FOR loops, adjust for
240         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
241         caller.
242         (get_ws_args_for): Adjust extract_omp_for_data caller.
243         (scan_omp_for): Handle collapsed OMP_FOR
244         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
245         (lower_omp_single_simple): If libgomp function doesn't return
246         boolean_type_node, add comparison of the return value with 0.
247         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
248         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
249         (parallel_nesting_level): Rename to...
250         (taskreg_nesting_level): ... this.
251         (is_taskreg_ctx): New function.
252         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
253         of is_parallel_ctx.
254         (execute_lower_omp): Rename parallel_nesting_level to
255         taskreg_nesting_level.
256         (expand_omp_parallel): Rename to...
257         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
258         Call omp_task_call for OMP_TASK regions.
259         (expand_omp): Adjust caller, handle OMP_TASK.
260         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
261
262         * bitmap.c (bitmap_default_obstack_depth): New variable.
263         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
264         if argument is NULL and bitmap_default_obstack is already initialized.
265         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
266         at the end.
267         * matrix-reorg.c (matrix_reorg): Likewise.
268
269 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
270
271         * config/i386/i386.md (*indirect_jump): Macroize using P
272         mode iterator.  Remove !TARGET_64BIT from insn constraints.
273         (*tablejump_1): Ditto.
274         (*indirect_jump_rex64): Remove insn pattern.
275         (*tablejump_1_rex64): Ditto.
276         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
277         and eh_return_si insn patterns.
278
279 2008-06-06  Richard Guenther  <rguenther@suse.de>
280
281         * tree-ssa-structalias.c (merge_smts_into): Remove.
282         (find_what_p_points_to): Do not bother to compute the
283         points-to set for pt_anything pointers.
284         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
285         for pt_anything pointers is ok.
286
287 2008-06-06  Jan Hubicka  <jh@suse.cz>
288
289         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
290
291 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
292
293         * cgraph.c: Fix typos in comments.
294         (cgraph_availability_names): Fix string typo.
295         * fold-const.c: Fix typos in comments.
296         (fold_binary): Fix typo in warning.
297         * genautomata.c: Fix typos in comments.
298         (check_presence_pattern_sets): Fix typo in local variable.
299         (output_description): Fix typo in output.
300         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
301         * hwint.h: Likewise.
302         * matrix-reorg.c (check_allocation_function): Likewise.
303         * omega.c (smooth_weird_equations): Likewise.
304         * auto-inc-dec.c: Fix typos in comments.
305         * bb-reorder.c: Likewise.
306         * builtins.c: Likewise.
307         * c-common.c: Likewise.
308         * c-cppbuiltin.c: Likewise.
309         * c-parser.c: Likewise.
310         * c-pretty-print.c: Likewise.
311         * cfgcleanup.c: Likewise.
312         * cfgexpand.c: Likewise.
313         * cfghooks.c: Likewise.
314         * cfglayout.c: Likewise.
315         * cfgloopmanip.c: Likewise.
316         * cgraphunit.c: Likewise.
317         * coverage.c: Likewise.
318         * dbxout.c: Likewise.
319         * df-byte-scan.c: Likewise.
320         * df-core.c: Likewise.
321         * df-problems.c: Likewise.
322         * df-scan.c: Likewise.
323         * dfp.c: Likewise.
324         * dominance.c: Likewise.
325         * domwalk.c: Likewise.
326         * dse.c: Likewise.
327         * dwarf2out.c: Likewise.
328         * emit-rtl.c: Likewise.
329         * et-forest.c: Likewise.
330         * function.c: Likewise.
331         * function.h: Likewise.
332         * gcc.c: Likewise.
333         * gcov-io.c: Likewise.
334         * gcov.c: Likewise.
335         * gcse.c: Likewise.
336         * genattrtab.c: Likewise.
337         * ggc-page.c: Likewise.
338         * gimplify.c: Likewise.
339         * gthr-lynx.h: Likewise.
340         * haifa-sched.c: Likewise.
341         * ipa-cp.c: Likewise.
342         * ipa-inline.c: Likewise.
343         * ipa-prop.h: Likewise.
344         * ipa-pure-const.c: Likewise.
345         * ipa-struct-reorg.c: Likewise.
346         * ipa-struct-reorg.h: Likewise.
347         * ipa-type-escape.c: Likewise.
348         * ipa.c: Likewise.
349         * loop-doloop.c: Likewise.
350         * mips-tfile.c: Likewise.
351         * mkmap-flat.awk: Likewise.
352         * mkmap-symver.awk: Likewise.
353         * modulo-sched.c: Likewise.
354         * omp-low.c: Likewise.
355         * optabs.c: Likewise.
356         * optabs.h: Likewise.
357         * opts.c: Likewise.
358         * passes.c: Likewise.
359         * postreload-gcse.c: Likewise.
360         * postreload.c: Likewise.
361         * predict.c: Likewise.
362         * pretty-print.h: Likewise.
363         * profile.c: Likewise.
364         * protoize.c: Likewise.
365         * ra-conflict.c: Likewise.
366         * real.c: Likewise.
367         * recog.c: Likewise.
368         * regclass.c: Likewise.
369         * regs.h: Likewise.
370         * reload.c: Likewise.
371         * rtl-error.c: Likewise.
372         * rtlanal.c: Likewise.
373         * scan.h: Likewise.
374         * sched-rgn.c: Likewise.
375         * see.c: Likewise.
376         * stmt.c: Likewise.
377         * target.h: Likewise.
378         * tree-dfa.c: Likewise.
379         * tree-eh.c: Likewise.
380         * tree-flow-inline.h: Likewise.
381         * tree-inline.c: Likewise.
382         * tree-into-ssa.c: Likewise.
383         * tree-loop-distribution.c: Likewise.
384         * tree-nested.c: Likewise.
385         * tree-parloops.c: Likewise.
386         * tree-pass.h: Likewise.
387         * tree-pretty-print.c: Likewise.
388         * tree-profile.c: Likewise.
389         * tree-scalar-evolution.c: Likewise.
390         * tree-sra.c: Likewise.
391         * tree-ssa-alias-warnings.c: Likewise.
392         * tree-ssa-ccp.c: Likewise.
393         * tree-ssa-coalesce.c: Likewise.
394         * tree-ssa-dom.c: Likewise.
395         * tree-ssa-dse.c: Likewise.
396         * tree-ssa-forwprop.c: Likewise.
397         * tree-ssa-live.c: Likewise.
398         * tree-ssa-live.h: Likewise.
399         * tree-ssa-loop-im.c: Likewise.
400         * tree-ssa-loop-ivopts.c: Likewise.
401         * tree-ssa-loop-niter.c: Likewise.
402         * tree-ssa-loop-prefetch.c: Likewise.
403         * tree-ssa-phiopt.c: Likewise.
404         * tree-ssa-phiprop.c: Likewise.
405         * tree-ssa-sccvn.c: Likewise.
406         * tree-ssa-ter.c: Likewise.
407         * tree-ssa-threadupdate.c: Likewise.
408         * tree-ssa.c: Likewise.
409         * tree-vect-analyze.c: Likewise.
410         * tree-vect-transform.c: Likewise.
411         * tree-vectorizer.c: Likewise.
412         * tree-vn.c: Likewise.
413         * tree-vrp.c: Likewise.
414         * tree.c: Likewise.
415         * tree.def: Likewise.
416         * tree.h: Likewise.
417         * unwind-dw2-fde.c: Likewise.
418         * unwind.inc: Likewise.
419         * value-prof.c: Likewise.
420         * vmsdbgout.c: Likewise.
421
422 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
423
424         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
425         always place FP constants in the TOC for TARGET_POWERPC64.
426         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
427
428 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
429
430         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
431         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
432         enable for TARGET_E500_DOUBLE.
433         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
434         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
435         floating-point modes like integer modes for E500 double.
436         (rs6000_legitimate_offset_address_p): Likewise.
437         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
438         addressing for DDmode for E500 double.
439         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
440         modes as using 64-bits of registers for E500 double.
441         (spe_build_register_parallel): Do not handle DDmode or TDmode.
442         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
443         specially for E500 double.
444         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
445         TDmode for E500 double.
446         (rs6000_gimplify_va_arg): Only handle SDmode in registers
447         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
448         (rs6000_split_multireg_move): Do not handle TDmode specially for
449         E500 double.
450         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
451         using 64-bit registers for E500 double.
452         (emit_frame_save): Do not handle DDmode specially for E500 double.
453         (gen_frame_mem_offset): Likewise.
454         (rs6000_function_value): Do not call spe_build_register_parallel
455         for DDmode or TDmode.
456         (rs6000_libcall_value): Likewise.
457         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
458         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
459         for E500 double.
460
461 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
462
463         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
464         in comments.
465
466 2008-06-04  Junjie Gu <jgu@tensilica.com>
467
468         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
469         comparison for frame pointers.
470
471 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
472
473         PR target/27386
474         * config/avr/avr.h: (PUSH_ROUNDING): Remove.
475
476 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
477
478         PR target/30243
479         * builtins.c (expand_builtin_signbit): Don't take lowpart when
480         register is already smaller or equal to required mode. 
481
482 2008-06-04  Xinliang David Li  <davidxl@google.com>
483
484         * tree-call-cdce.c: New file. 
485         (cond_dead_built_in_calls): New static variable.
486         (input_domain): New struct.
487         (check_pow): New function.
488         (check_builtin_call): Ditto.
489         (check_target_format): Ditto.
490         (is_call_dce_candidate): Ditto.
491         (gen_one_condition): Ditto.
492         (gen_conditions_for_domain): Ditto.
493         (get_domain): Ditto.
494         (gen_conditions_for_pow_cst_base): Ditto.
495         (gen_conditions_for_pow_int_base): Ditto.
496         (gen_conditions_for_pow): Ditto.
497         (get_no_error_domain): Ditto.
498         (gen_shrink_wrap_conditions): Ditto.
499         (shrink_wrap_one_built_in_call): Ditto.
500         (shink_wrap_conditional_dead_built_in_calls): Ditto.
501         (tree_call_cdce): Ditto.
502         (gate_call_cdce): Ditto.
503         (pass_call_cdce): New gimple pass.
504         * passes.c: (init_optimization_passes): New pass.
505         * tree-pass.h: New pass declaration.
506         * opts.c (decode_options): New flag setting.
507         * common.opt: Add -ftree-builtin-call-dce flag.
508         * Makefile.in: Add new source file.
509         * tempvar.def: New tv_id.
510         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
511
512 2008-06-04  Richard Guenther  <rguenther@suse.de>
513
514         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC
515         on MTAGs.
516         (is_call_clobbered): Always check var_ann->call_clobbered.
517         (mark_call_clobbered): Always set var_ann->call_clobbered.
518         (clear_call_clobbered): Always clear var_ann->call_clobbered.
519         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
520         (reset_alias_info): Clear call clobbering info on MTAGs and
521         globals as well.
522         (set_pt_anything): Set pt_global_mem.
523         (create_tag_raw): Adjust comment.
524         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
525
526 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
527             Maxim Kuvyrkov  <maxim@codesourcery.com>
528
529         * config/m68k/m68k.opt (mxgot): New option.
530         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
531         (m68k_output_addr_const_extra): New.
532         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
533         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
534         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
535         * doc/invoke.texi (M680x0 Options): Document -mxgot.
536
537 2008-06-04  Richard Guenther  <rguenther@suse.de>
538
539         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
540         negative or non-representable offsets.
541
542 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
543
544         *  config/i386/i386.c (ix86_gen_leave): New.
545         (ix86_gen_pop1): Likewise.
546         (ix86_gen_add3): Likewise.
547         (ix86_gen_sub3): Likewise.
548         (ix86_gen_sub3_carry): Likewise.
549         (ix86_gen_one_cmpl2): Likewise.
550         (ix86_gen_monitor): Likewise.
551         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
552         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
553         ix86_gen_one_cmpl2 and ix86_gen_monitor.
554         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
555         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
556         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
557         (ix86_expand_epilogue): Updated.
558         (print_operand): Handle integer register operand for 'z'.
559         (ix86_expand_strlensi_unroll_1): Likewise.
560         (ix86_expand_strlen): Likewise.
561         (ix86_expand_builtin): Likewise.
562         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
563         mov{q}/mov{l} and add{q}/add{l}.
564
565 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
566
567         * config/i386/i386.md (P): New mode iterator.
568         (SFmode push_operand splitter): Macroize DImode and SImode pushes
569         using P mode iterator.
570         (DFmode push_operand splitter): Ditto.
571         (XFmode push_operand splitter): Ditto.
572         (DFmode float_extend SFmode push_operand splitter): Ditto.
573         (XFmode float_extend SFmode push_operand splitter): Do not generate
574         SImode pushes for 64bit target.  Macroize Dimode and SImode
575         pushes using P mode iterator.
576         (XFmode float_extend DFmode push_operand splitter): Ditto.
577
578 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
579
580         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
581         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
582         prototype.
583         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
584         return type to int.
585         (ix86_call_abi_override): Remove check for call_used_regs.
586
587 2008-06-03  Richard Guenther  <rguenther@suse.de>
588
589         * tree-ssa-structalias.c (find_func_aliases): Add constraints
590         for the lhs of calls if the return type contains pointers.
591
592 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
593
594         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
595         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
596         * function.c (allocate_struct_function): Use of
597         OVERRIDE_ABI_FORMAT.
598         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
599         of cfun and DEFAULT_ABI to deceide abi mode.
600         (DEFAULT_ABI): New.
601         (REG_PARM_STACK_SPACE): Removed.
602         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
603         (STACK_BOUNDARY): Use default target to deceide stack boundary.
604         * config/i386/i386-protos.h (ix86_cfun_abi): New.
605         (ix86_function_abi): Likewise.
606         (ix86_function_type_abi): Likewise.
607         (ix86_call_abi_override): Likewise.
608         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
609         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
610         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
611         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
612         specific defines.
613         (X86_64_REGPARM_MAX): New.
614         (X86_64_SSE_REGPARM_MAX): New.
615         (X64_REGPARM_MAX): New.
616         (X64_SSE_REGPARM_MAX): New.
617         (X86_32_REGPARM_MAX): New.
618         (X86_32_SSE_REGPARM_MAX): New.
619         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
620         (ix86_function_regparm): Handle user calling abi.
621         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
622         by DEFAULT_ABI versus SYSV_ABI check.
623         (ix86_reg_parm_stack_space): New.
624         (ix86_function_type_abi): New.
625         (ix86_call_abi_override): New.
626         (ix86_function_abi): New.
627         (ix86_cfun_abi): New.
628         (init_cumulative_args): Call abi specific initialization.
629         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
630         (function_arg_64): Extend SSE_REGPARM_MAX check.
631         (function_arg (): Remove TARGET_64BIT_MS_ABI.
632         (ix86_pass_by_reference): Likewise.
633         (ix86_function_value_regno_p): Likewise.
634         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
635         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
636         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
637         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
638         (setup_incoming_varargs_64): Adjust regparm for call abi.
639         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
640         (ix86_va_start): Likewise.
641         (ix86_gimplify_va_arg): Likewise.
642         (ix86_expand_prologue): Likewise.
643         (output_pic_addr_const): Likewise.
644         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
645         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
646         (x86_output_mi_thunk): Likewise.
647         (x86_function_profiler): Likewise.
648         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
649         (SYSV_ABI, MS_ABI): New constants.
650         (DEFAULT_ABI): New.
651         (init_regs): Add prototype of function in regclass.c file.
652         (OVERRIDE_ABI_FORMAT): New.
653         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
654         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
655         (OUTGOING_REG_PARM_STACK_SPACE): New.
656         (ix86_reg_parm_stack_space): New prototype.
657         (CUMULATIVE_ARGS): Add call_abi member.
658         (machine_function): Add call_abi member.
659         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
660         by DEFAULT_ABI compare to MS_ABI.
661
662 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
663
664         PR target/34879
665         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
666         (avr_builtin_setjmp_frame_value): New function.
667         * config/avr/avr.md (nonlocal_goto_receiver): Define.
668         (nonlocal_goto): Define.
669
670 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
671
672         * config/mips/mips.c (mips_emit_loadgp): Return early if
673         there is nothing do to, otherwise emit a blockage if
674         !TARGET_EXPLICIT_RELOCS || crtl->profile.
675         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
676
677 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
678
679         * configure.ac: Drop unneeded backslash ending up in config.in.
680         * acinclude.m4: Likewise.
681         * config.in: Regenerate.
682
683 2008-05-26  Jan Hubicka  <jh@suse.cz>
684
685         * predict.c (maybe_hot_frequency_p): Break out of...
686         (maybe_hot_bb_p): ... here.
687         (maybe_hot_edge_p): New.
688         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
689         * basic-block.h (maybe_hot_edge_p): Declare.
690
691 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
692
693         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
694         (*cmpfp_<mode>_cc): Ditto.
695         (*fp_jcc_8<mode>_387): Ditto.
696         (*fop_<MODEF:mode>_2_i387): Ditto.
697         (*fop_<MODEF:mode>_3_i387): Ditto.
698         (*fop_xf_2_i387): Ditto.
699         (*fop_xf_3_i387): Ditto.
700
701 2008-06-02  Tomas Bily  <tbily@suse.cz>
702
703         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
704
705 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
706
707         * config/mips/mips.c (mips_valid_offset_p): New function.
708         (mips_valid_lo_sum_p): Likewise.
709         (mips_classify_address): Use them.
710         (mips_force_address): New function.
711         (mips_legitimize_address): Use it.
712         * config/mips/mips.md (MOVE128): New mode iterator.
713         (movtf): Require TARGET_64BIT.  Remove empty strings.
714         (*movtf_internal): Rename to...
715         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
716         of "R" and use {,fp}{load,store} attributes instead of "multi".
717         Use a separate define_split.
718         (*movtf_mips16): New pattern.
719
720 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
721
722         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
723         * config/mips/mips.c (mips_expand_before_return): New function.
724         (mips_expand_epilogue): Call it.
725         * config/mips/mips.md (return): Turn into a define_expand.
726         (*return): New insn.
727
728 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
729
730         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
731         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
732         functions.  Do not emit uses and clobbers of CONCATs; individually
733         use and clobber their operands.
734         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
735         gen_clobber, emit_use and gen_use.
736         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
737         (expand_builtin_return): Likewise.
738         * cfgbuild.c (count_basic_blocks): Likewise.
739         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
740         * explow.c (emit_stack_restore): Likewise.
741         * expmed.c (extract_bit_field_1): Likewise.
742         * expr.c (convert_move, emit_move_complex_parts): Likewise.
743         (emit_move_multi_word, store_constructor): Likewise.
744         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
745         (thread_prologue_and_epilogue_insns): Likewise.
746         * lower-subreg.c (resolve_simple_move): Likewise.
747         * optabs.c (widen_operand, expand_binop): Likewise.
748         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
749         * reload.c (find_reloads): Likewise.
750         * reload1.c (eliminate_regs_in_insn): Likewise.
751         * stmt.c (expand_nl_goto_receiver): Likewise.
752         * config/alpha/alpha.md (builtin_longjmp): Likewise.
753         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
754         * config/arm/arm.c (arm_load_pic_register): Likewise.
755         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
756         * config/arm/arm.md (untyped_return): Likewise.
757         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
758         * config/avr/avr.c (expand_prologue): Likewise.
759         * config/bfin/bfin.c (do_unlink): Likewise.
760         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
761         * config/cris/cris.c (cris_expand_prologue): Likewise.
762         * config/darwin.c (machopic_indirect_data_reference): Likewise.
763         (machopic_legitimize_pic_address): Likewise.
764         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
765         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
766         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
767         (ix86_expand_convert_uns_didf_sse): Likewise.
768         (ix86_expand_vector_init_general): Likewise.
769         * config/ia64/ia64.md (eh_epilogue): Likewise.
770         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
771         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
772         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
773         (config/iq2000/iq2000.c): Likewise.
774         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
775         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
776         (builtin_longjmp): Likewise.
777         * config/mn10300/mn10300.md (call, call_value): Likewise.
778         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
779         * config/pdp11/pdp11.md (abshi2): Likewise.
780         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
781         * config/s390/s390.c (s390_emit_prologue): Likewise.
782         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
783         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
784         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
785         * config/sh/sh.c (prepare_move_operands): Likewise.
786         (output_stack_adjust, sh_expand_epilogue): Likewise.
787         (sh_set_return_address, sh_expand_t_scc): Likewise.
788         * config/sparc/sparc.c (load_pic_register): Likewise.
789         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
790         * config/spu/spu.c (spu_expand_epilogue): Likewise.
791         * config/v850/v850.c (expand_epilogue): Likewise.
792
793 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
794
795         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
796         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
797         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
798         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
799         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
800         stack pointer register.
801         (output_movhi): Remove code for interrupt specific writing to the 
802         stack pointer register.
803
804 2008-05-31  Richard Guenther  <rguenther@suse.de>
805
806         PR tree-optimization/34244
807         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
808         (tree_expr_nonzero_warnv_p): Likewise.
809         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
810         ssa_name_nonnegative_p.
811         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
812         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
813         not tree_expr_nonzero_warnv_p.
814
815         PR tree-optimization/36262
816         Revert
817         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
818
819         PR tree-optimization/34244
820         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
821         (record_numbers_of_iterations): New function.
822         (execute_vrp): Cache the numbers of iterations of loops.
823         * tree-scalar-evolution.c (scev_reset_except_niters):
824         New function.
825         (scev_reset): Use scev_reset_except_niters.
826         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
827
828 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
829
830         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
831         __WORKAROUND_RETS when appropriate.
832
833 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
834
835         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
836         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
837         mode iterator.
838         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
839         *fop_df_comm_sse insn patterns using MODEF mode iterator.
840         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
841         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
842         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
843         *fop_df_1_mixed insn patterns using MODEF mode iterator.
844         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
845         *fop_df_1_sse insn patterns using MODEF mode iterator.
846         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
847         *fop_df_1_i387 insn patterns using MODEF mode iterator.
848         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
849         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
850         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
851         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
852         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
853         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
854         (*fop_xf_4_i387): Use <MODE> for mode attribute.
855         (*fop_xf_5_i387): Ditto.
856         (*fop_xf_6_i387): Ditto.
857
858 2008-05-30  Richard Guenther  <rguenther@suse.de>
859
860         * builtins.c (build_string_literal): Avoid generating
861         a non-gimple_val result.
862
863 2008-05-30  DJ Delorie  <dj@redhat.com>
864
865         * exec-tool.in: Use an environment variable (private) instead of a
866         file (shared) as a semaphore, so as to not break parallel builds.
867
868 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
869
870         * optabs.c (maybe_encapsulate_block): Remove.
871         (emit_libcall_block): Adjust accordingly.
872         * optabs.h (maybe_encapsulate_block): Remove prototype.
873
874         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
875         Don't use maybe_encapsulate_block.
876
877 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
878
879         * config/rs6000/rs6000.c (rs6000_legitimize_address,
880         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
881         rtx is a SYMBOL_REF before calling get_pool_constant.
882
883 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
884
885         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
886
887 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
888
889         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
890         rather than OS names to choose INO_T_EQ definition.
891         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
892         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
893
894 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
895
896         PR target/36348
897         * config/darwin-f.c: New.
898         * config/t-darwin: Added rule to build darwin-f.o.
899         * config.gcc: Defined new variable, fortran_target_objs.
900         (*-*-darwin*): Set fortran_target_objs.
901         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
902         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
903         * configure: Regenerated.
904
905 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
906
907         PR target/35771
908         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
909         canonical type if needed.
910
911 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
912
913         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
914
915 2008-05-29  Richard Guenther  <rguenther@suse.de>
916
917         PR tree-optimization/36343
918         PR tree-optimization/36346
919         PR tree-optimization/36347
920         * tree-flow.h (clobber_what_p_points_to): Declare.
921         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
922         pointed-to variable is dereferenced is irrelevant to whether
923         the pointer can access the pointed-to variable.
924         (clobber_what_p_points_to): New function.
925         * tree-ssa-alias.c (set_initial_properties): Use it.
926         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
927         call clobber check for NMTs.
928
929 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
930         
931         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
932         for printing gcov_type.
933
934 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
935
936         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
937         and the eh region information.
938         * value-prof.c (gimple_move_stmt_histograms): New function.
939         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
940
941 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
942
943         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
944
945 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
946
947         * value-prof.c (tree_ic_transform): Print counts.
948         * tree-profile.c (tree_gen_ic_func_profiler):
949         Clear __gcov_indreict_call_callee variable to avoid misattribution
950         of the profile.
951
952 2008-05-28  Rafael Espindola  <espindola@google.com>
953
954         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
955         invalid sharing.
956
957 2008-05-28  Richard Guenther  <rguenther@suse.de>
958
959         PR tree-optimization/36339
960         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
961         and clobbering code out of the loop.
962
963 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
964
965         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
966         letters defined.
967
968         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
969         s390_contiguous_bitmask_p, s390_symref_operand_p,
970         s390_check_symref_alignment, s390_reload_larl_operand,
971         s390_reload_symref_address): New functions.
972         (s390_branch_condition_mnemonic): Support compare and branch
973         instructions.
974         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
975         and 'W' constraints.
976         (s390_secondary_reload): Add secondary reloads for unaligned
977         symbol refs or symbol refs to floating point or QI/TI mode
978         integer values.
979         (legitimate_address_p): Accept symbol references as addresses.
980         (s390_expand_insv): Use rotate and insert selected bits
981         instruction for insv when building for z10.
982         (print_operand_address): Handle symbol ref addresses.
983         (print_operand): Output modifier 'c' added for signed byte values.
984         (s390_encode_section_info): Mark symbol refs with
985         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
986
987         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
988         (length attribute): RRF, RRR have 4 byte length.
989         (FPALL, INTALL): New mode iterators added.
990         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
991         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
992         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
993         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
994         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
995         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
996         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
997         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
998         instructions.
999         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1000         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1001         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1002         reload<INTALL:mode><P:mode>_toreg_z10,
1003         reload<FPALL:mode><P:mode>_tomem_z10,
1004         reload<FPALL:mode><P:mode>_toreg_z10,
1005         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1006         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1007         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1008         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1009         definition.
1010         (movmem, clrmem, cmpmem): New splitters added.
1011
1012         * config/s390/predicates.md (larl_operand): Use
1013         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1014         SYMBOL_REF_ALIGN1_P.
1015         (s390_signed_integer_comparison,
1016         s390_unsigned_integer_comparison): New predicates.
1017
1018         * config/s390/s390-protos.h (s390_check_symref_alignment,
1019         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1020         s390_reload_symref_address,
1021         s390_compare_and_branch_condition_mask): Prototypes added.
1022
1023         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1024         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1025         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1026
1027 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1028
1029         * config/s390/s390.c (z10_cost): New cost function for z10.
1030         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1031         (s390_issue_rate): Adjust issue rate for z10.
1032         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1033         (processor_flags): Add PF_Z10.
1034         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1035         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1036         * gcc/config.gcc: Add z10.
1037
1038 2008-05-28  Richard Guenther  <rguenther@suse.de>
1039
1040         PR tree-optimization/36291
1041         * tree-flow. h (struct gimple_df): Remove var_anns member.
1042         * tree-flow-inline.h (gimple_var_anns): Remove.
1043         (var_ann): Simplify.
1044         * tree-dfa.c (create_var_ann): Simplify.
1045         (remove_referenced_var): Clear alias info from var_anns of globals.
1046         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1047         (delete_tree_ssa): Clear alias info from var_anns of globals.
1048         Do not free var_anns.
1049         (var_ann_eq): Remove.
1050         (var_ann_hash): Likewise.
1051
1052 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1053
1054         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1055         and loongson2f entries.
1056         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1057         * config/mips/mips.h (processor_type): Add Loongson-2E
1058         and Loongson-2F entries.
1059         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1060         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1061         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1062         * doc/invoke.texi (MIPS Options): Document loongson2e
1063         and loongson2f processor names.
1064
1065 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1066
1067         PR target/35767
1068         PR target/35771
1069         * config/i386/i386.c (ix86_function_arg_boundary): Use
1070         alignment of canonical type.
1071         (ix86_expand_vector_move): Check unaligned memory access for
1072         all SSE modes.
1073
1074 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1075
1076         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1077         Moved to the front of file.
1078
1079 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1080             H.J. Lu  <hongjiu.lu@intel.com>
1081
1082         * dwarf2out.c (current_fde): New.
1083         (add_cfi): Use it.
1084         (lookup_cfa:): Likewise.
1085         (dwarf2out_end_epilogue): Likewise.
1086         (dwarf2out_note_section_used): Likewise.
1087
1088 2008-05-27  Michael Matz  <matz@suse.de>
1089
1090         PR c++/27975
1091         * c.opt (Wenum-compare): New warning option.
1092         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1093
1094 2008-05-27  Michael Matz  <matz@suse.de>
1095
1096         PR middle-end/36326
1097         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1098         non-BLKmode types.
1099         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1100         into memory as tail calls.
1101
1102 2008-05-27  Richard Guenther  <rguenther@suse.de>
1103
1104         PR tree-optimization/36339
1105         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1106         pointers cause all addressable variables to be call clobbered.
1107
1108 2008-05-27  Richard Guenther  <rguenther@suse.de>
1109
1110         PR tree-optimization/36245
1111         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1112
1113 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1114
1115         * config/s390/s390.md: Replace all occurences of the 'm'
1116         constraint with 'RT'.
1117
1118 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1119
1120         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1121         definitions added.
1122         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1123         "*movdi_64".
1124         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1125         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1126         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1127
1128 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1129
1130         * reload.c: (find_reloads): Skip alternatives according to the
1131         "enabled" attribute. Constify the constraint variable.
1132         * recog.c (get_attr_enabled): Add default implementation.
1133         (extract_insn): Set the alternative_enabled_p array
1134         in the recog_data struct.
1135         (preprocess_constraints, constrain_operands): Skip
1136         alternatives according to the "enabled" attribute
1137         * recog.h (struct recog_data): New field alternative_enabled_p.
1138         (skip_alternative): New inline function.
1139         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1140         (record_reg_classes): Skip alternative according to the
1141         "enabled" attribute.
1142
1143         * doc/md.texi: Add documention for the "enabled" attribute.
1144
1145 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1146
1147         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1148         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1149         constraint with TARGET_MEM_CONSTRAINT.
1150         * recog.c (asm_operand_ok, preprocess_constraints,
1151         constrain_operands): Likewise.
1152         * regclass.c (record_reg_classes): Likewise.
1153         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1154         * reload1.c (maybe_fix_stack_asms): Likewise.
1155         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1156         * recog.h: Adjust comment.
1157         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1158         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1159         * doc/md.texi: Add a note to description of 'm' constraint.
1160         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1161
1162 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1163
1164         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1165         that the bitfield is of integral type before testing its precision.
1166
1167 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1168             Sa Liu  <saliu@de.ibm.com> 
1169
1170         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1171         __modti3, __udivti3, __umodti3 and __udivmodti4.
1172         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1173         that implement TImode mul and div functions.
1174         * config/spu/multi3.c: New. Implement __multi3.
1175         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1176         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1177         functions on SPU.
1178
1179 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1180
1181         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1182         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1183         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1184         tls_sysv_suffix): New mode and mode attribute iterators.
1185         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1186         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1187         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1188         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1189         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1190         iterators.
1191
1192 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1193
1194         PR tree-optimization/36329
1195         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1196         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1197         * cgraphbuild.c (initialize_inline_failed): Use the latter
1198         macro in lieu of the former.
1199         * ipa-inline.c (cgraph_mark_inline): Likewise.
1200         (cgraph_decide_inlining_of_small_function): Likewise.
1201         (cgraph_decide_inlining): Likewise.
1202         (cgraph_decide_inlining_incrementally): Likewise.
1203
1204 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1205             Anatoly Sokolov  <aesok@post.ru>
1206
1207         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1208         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1209         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1210         optimization for 'avr6' architecture.
1211
1212 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1213
1214         PR target/34932
1215         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1216
1217 2008-05-26  Richard Guenther  <rguenther@suse.de>
1218
1219         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1220         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1221
1222 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1223
1224         PR middle-end/36253
1225         * caller-save.c (insert_restore): Verify alignment of spill space.
1226         (insert_save): Likewise.
1227         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1228         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1229         (STACK_SLOT_ALIGNMENT): Likewise.
1230         * function.c (LOCAL_ALIGNMENT): Removed.
1231         (get_stack_local_alignment): New.
1232         (assign_stack_local): Use it.  Set alignment on stack slot.
1233         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1234         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1235         (STACK_SLOT_ALIGNMENT): New.
1236         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1237         stack slot in XFmode.
1238
1239         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1240
1241 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1242
1243         PR/36321
1244         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1245         argument operand in rax isn't removed.
1246
1247 2008-05-26  Richard Guenther  <rguenther@suse.de>
1248
1249         PR middle-end/36300
1250         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1251         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1252
1253 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1254
1255         PR bootstrap/36331
1256         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1257
1258 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1259
1260         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1261         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1262
1263 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1264
1265         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1266         build a trampoline if we don't want one.
1267         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1268         return zero for nested functions if we don't want a trampoline.
1269
1270 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1271
1272         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1273
1274 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1275
1276         PR fortran/18428
1277         * c.opt: Removed undocumented option '-lang-fortran'.
1278         * c-common.h: Removed global variable 'lang_fortran'.
1279         * c-opts.c (c_common_handle_option): Removed code to handle
1280         option '-lang-fortran'. Updated includes.
1281         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1282         definition of '__GFORTRAN__'.
1283         (define__GNUC__): Reimplemented to use BASEVER and
1284         cpp_define_formatted.
1285         (builtin_define_with_value_n): Removed.
1286         * c-incpath.h: Renamed to ...
1287         * incpath.h: ... this.
1288         * c-incpath.c: Renamed to ...
1289         * incpath.c: ... this. Updated includes.
1290         * fix-header.c: Updated includes.
1291         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1292         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1293         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1294
1295 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1296
1297         * tree.h: Update the table of flags used on tree nodes.
1298         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1299         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1300         (FORCED_LABEL): Add access check.
1301         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1302         (ASM_INPUT_P): Likewise.
1303         (ASM_VOLATILE_P): Likewise.
1304         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1305         (OMP_SECTION_LAST): Access private_flag directly.
1306         (OMP_RETURN_NOWAIT): Likewise.
1307         (OMP_PARALLEL_COMBINED): Likewise.
1308         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1309         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1310         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1311         deprecated_flag directly.
1312
1313 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1314
1315         * final.c (frame_pointer_needed): Removed.
1316         * flags.h (frame_pointer_needed): Likewise.
1317
1318         * function.h (rtl_data): Add frame_pointer_needed.
1319         (frame_pointer_needed): New.
1320
1321 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
1322
1323         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1324
1325 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
1326
1327         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1328         SRC is a REG.
1329
1330 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
1331
1332         * c-common.c (strip_array_types): Move function to..
1333         * tree.c: ..here.
1334         (get_inner_array_type): Delete.
1335         * c-common.h (strip_array_types): Move declaration to..
1336         * tree.h: ..here.
1337         (get_inner_array_type): Delete.
1338         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1339         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1340         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1341         * config/pa/pa.c (emit_move_sequence): Likewise.
1342
1343 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1344
1345         * config/i386/i386.md (*sse_prologue_save_insn): Set length
1346         attribute to 34.
1347
1348 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
1349
1350         * function.c: Include target hook for nonlocal_goto frame value.
1351
1352 2008-05-24  Richard Guenther  <rguenther@suse.de>
1353
1354         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1355         variable can be only accessed through a pointer or a union.
1356
1357 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1358
1359         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1360         * doc/extend.texi: Likewise.
1361
1362 2008-05-23  DJ Delorie  <dj@redhat.com>
1363
1364         * config/m32c/jump.md (untyped_call): Add.
1365
1366         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1367         for A24 to PSImode.
1368         (m32c_address_cost): Detail costs for indirect offsets.
1369
1370 2008-05-23  Rafael Espindola  <espindola@google.com>
1371
1372         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
1373         if a node is a SUBREG.
1374         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
1375         is a SUBREG.
1376
1377 2008-05-23  Paul Brook  <paul@codesourcery.com>
1378             Carlos O'Donell  <carlos@codesourcery.com>
1379
1380         * doc/extend.texi: Clarify use of __attribute__((naked)).
1381         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1382         * target.h (gcc_target): Add allocate_stack_slots_for_args.
1383         * function.c (use_register_for_decl): Use
1384         targetm.calls.allocate_stack_slots_for_args.
1385         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
1386         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
1387         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1388
1389 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1390
1391         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
1392
1393 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
1394
1395         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
1396         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
1397         is only rounded once.
1398
1399 2008-05-23  Richard Guenther  <rguenther@suse.de>
1400
1401         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
1402
1403 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
1404             Jakub Jelinek  <jakub@redhat.com>
1405
1406         PR target/36079
1407         * configure.ac: Handle --enable-cld.
1408         * configure: Regenerated.
1409         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
1410         * config/i386/i386.h (struct machine_function): Add needs_cld field.
1411         (ix86_current_function_needs_cld): New define.
1412         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
1413         (cld): New isns pattern.
1414         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
1415         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
1416         * config/i386/i386.opt (mcld): New option.
1417         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
1418         TARGET_CLD and ix86_current_function_needs_cld.
1419         (override_options): Use -mcld by default for 32-bit code if
1420         USE_IX86_CLD.
1421
1422         * doc/install.texi (Options specification): Document --enable-cld.
1423         * doc/invoke.texi (Machine Dependent Options)
1424         [i386 and x86-64 Options]: Add -mcld option.
1425         (Intel 386 and AMD x86-64 Options): Document -mcld option.
1426
1427 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
1428         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
1429         (return_in_memory_64): Likewise.
1430         (return_in_memory_ms_64): Likewise.
1431
1432 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1433
1434         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
1435         * builtins.c (fold_builtin_fpclassify): New.
1436         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
1437         * builtins.def (BUILT_IN_FPCLASSIFY): New.
1438         * c-common.c (handle_type_generic_attribute): Adjust to accept
1439         fixed arguments before an elipsis.
1440         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
1441         * doc/extend.texi: Document __builtin_fpclassify.
1442
1443 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1444
1445         * omp-low.c (gate_expand_omp_ssa): Remove.
1446         (pass_expand_omp_ssa): Remove.
1447         (gate_expand_omp): Do not check for flag_openmp_ssa.
1448         * common.opt (-fopenmp-ssa): Remove.
1449         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
1450
1451 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1452
1453         * config/sh/sh.opt (mfixed-range): New option.
1454         * config/sh/sh-protos.h (sh_fix_range): Declare.
1455         * config/sh/sh.c (sh_fix_range): New function.
1456         * config/sh/sh.h (sh_fixed_range_str): Declare.
1457         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
1458         is not empty.
1459         * doc/invoke.texi (SH Options): Document -mfixed-range.
1460
1461 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
1462
1463         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
1464         it before the redeclaration.
1465
1466 2008-05-22  Anatoly Sokolov <aesok@post.ru>
1467
1468         * config/avr/avr.c (get_sequence_length): Add new function.
1469         (expand_prologue, expand_epilogue): Remove duplicate code.
1470
1471 2008-05-22  Rafael Espindola  <espindola@google.com>
1472
1473         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
1474         sharing.
1475
1476 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
1477
1478         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
1479         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
1480
1481         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
1482         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
1483         (vect_update_misalignment_for_peel): Likewise.
1484         (vector_alignment_reachable_p): Likewise.
1485         * tree-vect-transform.c (vectorizable_load): Likewise.
1486         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1487         (get_vectype_for_scalar_type): Pass mode of scalar_type
1488         to UNITS_PER_SIMD_WORD.
1489
1490         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
1491         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
1492         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
1493         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
1494         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
1495
1496 2008-05-22  Ira Rosen  <irar@il.ibm.com>
1497
1498         PR tree-optimization/36293
1499         * tree-vect-transform.c (vect_transform_strided_load): Don't check
1500         if the first load must be skipped because of a gap.
1501
1502 2008-05-22  Richard Guenther  <rguenther@suse.de>
1503
1504         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
1505         more cases of offset disambiguation that is possible if
1506         strict-aliasing rules apply.
1507         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
1508         for basic offset and type-based disambiguation.
1509
1510 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1511
1512         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
1513         ix86_expand_vector_set on V16QImode for SSE4.1.
1514
1515 2008-05-21  Tom Tromey  <tromey@redhat.com>
1516
1517         * c.opt (Wimport): Mark as undocumented.
1518         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
1519         -Wno-import.
1520         (Warning Options): Likewise.
1521         * doc/cppopts.texi: Don't mention -Wimport.
1522
1523 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
1524
1525         PR tree-optimization/36287
1526         PR tree-optimization/36286
1527         * lambda-code.c (build_access_matrix): Do not use the loop->num
1528         for computing the number of induction variables: use the loop depth
1529         instead.
1530
1531 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
1532
1533         PR/36280
1534         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
1535         option -f(no-)leading-underscore.
1536
1537 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1538
1539         * config/i386/i386.c (ix86_expand_vector_init_general): Use
1540         GET_MODE_NUNITS (mode).
1541
1542 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
1543
1544         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
1545         (-mmulhw): Add 464 to description.
1546         (-mdlmzb): Likewise.
1547         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
1548         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
1549         464fp entries.
1550         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
1551         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
1552         * config/rs6000/rs6000.md: Update comments for 464.
1553
1554 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
1555
1556         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
1557
1558 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1559
1560         * config/i386/sse.md (vec_extractv4sf): Removed.
1561         (vec_extractv2df): Likewise.
1562         (vec_extractv2di): Likewise.
1563         (vec_extractv4si): Likewise.
1564         (vec_extractv8hi): Likewise.
1565         (vec_extractv16qi): Likewise.
1566         (vec_extract<mode>): New.
1567
1568 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1569
1570         * config/i386/sse.md (vec_setv4sf): Removed.
1571         (vec_setv2df): Likewise.
1572         (vec_setv2di): Likewise.
1573         (vec_setv4si): Likewise.
1574         (vec_setv8hi): Likewise.
1575         (vec_setv16qi): Likewise.
1576         (vec_set<mode>): New.
1577
1578 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1579
1580         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
1581         goto for vec_concat and vec_interleave.
1582
1583 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1584
1585         * config/i386/sse.md (vec_initv4sf): Removed.
1586         (vec_initv2df): Likewise.
1587         (vec_initv2di): Likewise.
1588         (vec_initv4si): Likewise.
1589         (vec_initv8hi): Likewise.
1590         (vec_initv16qi): Likewise.
1591         (vec_init<mode>): New.
1592
1593 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
1594
1595         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
1596
1597 2008-05-21  Tom Tromey  <tromey@redhat.com>
1598
1599         * ggc-zone.c (lookup_page_table_if_allocated): New function.
1600         (zone_find_object_offset): Likewise.
1601         (gt_ggc_m_S): Likewise.
1602         (highest_bit): Likewise.
1603         * ggc-page.c (gt_ggc_m_S): New function.
1604         * stringpool.c (string_stack): Remove.
1605         (init_stringpool): Update.
1606         (ggc_alloc_string): Use ggc_alloc.
1607         (maybe_delete_ident): New function.
1608         (ggc_purge_stringpool): Likewise.
1609         (gt_ggc_m_S): Remove.
1610         * ggc-common.c (ggc_protect_identifiers): New global.
1611         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
1612         ggc_protect_identifiers.
1613         * ggc.h (ggc_protect_identifiers): Declare.
1614         (gt_ggc_m_S): Update.
1615         (ggc_purge_stringpool): Declare.
1616         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
1617         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
1618         special case.
1619         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
1620
1621 2008-05-21  David S. Miller  <davem@davemloft.net>
1622
1623         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
1624         tmake_file.
1625
1626 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1627
1628         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
1629         once finished.
1630
1631 2008-05-20  David Daney  <ddaney@avtrex.com>
1632
1633         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
1634         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
1635         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
1636         UNSPEC_UPDATE_GOT_VERSION): Renumber.
1637         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
1638         (atomic_hiqi_op): New define_code_iterator.
1639         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
1640         mips_expand_compare_and_swap_12.
1641         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
1642         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
1643         (sync_<optab><mode>, sync_old_<optab><mode>,
1644         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1645         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
1646         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
1647         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
1648         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
1649         (test_and_set_12): New insn.
1650         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
1651         sync_new_<optab><mode>, sync_old_nand<mode>,
1652         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
1653         clobber to operand 0 for SI and DI mode insns.
1654         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
1655         mips_gen_fn_4): New typedefs.
1656         (mips_gen_fn_ptrs): Define new union type.
1657         (mips_expand_compare_and_swap_12): Remove declaration.
1658         (mips_expand_atomic_qihi): Declare function.
1659         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
1660         (mips_expand_atomic_qihi): ... this.  Use new generator function
1661         parameter.
1662         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
1663         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
1664         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
1665         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
1666         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
1667         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
1668         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
1669         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
1670         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
1671         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
1672         New macros.
1673
1674 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1675
1676         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
1677         the missing break.
1678
1679 2008-05-20  Anatoly Sokolov <aesok@post.ru>
1680
1681         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
1682         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
1683         (avr_attribute_table): Add 'OS_main' function attribute.
1684         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
1685         functions with 'OS_main' attribute.
1686
1687 2008-05-20  Richard Guenther  <rguenther@suse.de>
1688
1689         PR tree-optimization/35204
1690         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
1691         helper, split out from ...
1692         (DFS): ... here.  Make the DFS walk non-recursive.
1693
1694 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
1695             Jan Sjodin  <jan.sjodin@amd.com>
1696
1697         PR tree-optimization/36181
1698         * tree-parloops.c (loop_has_vector_phi_nodes): New.
1699         (parallelize_loops): Don't parallelize when the loop has vector
1700         phi nodes.
1701
1702 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1703             Sebastian Pop  <sebastian.pop@amd.com>
1704
1705         * tree-loop-linear.c (gather_interchange_stats): Look in the access
1706         matrix, and never look at the tree representation of the memory
1707         accesses.
1708         (linear_transform_loops): Computes parameters and access matrices.
1709         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
1710         when fails.
1711         (access_matrix_get_index_for_parameter): New.
1712         * tree-data-ref.h (struct access_matrix): New.
1713         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
1714         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
1715         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
1716         am_vector_index_for_loop): New.
1717         (struct data_reference): Add field access_matrix.
1718         (DR_ACCESS_MATRIX): New.
1719         (compute_data_dependences_for_loop): Update declaration.
1720         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
1721         * lambda.h (lambda_vector_vec_p): Declared.
1722         * lambda-code.c: Depend on pointer-set.h.
1723         (lambda_collect_parameters_from_af, lambda_collect_parameters,
1724         av_for_af_base, av_for_af, build_access_matrix,
1725         lambda_compute_access_matrices): New.
1726         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1727
1728 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
1729
1730         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1731         $SOURCEDIR/include.
1732
1733 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1734             Sebastian Pop  <sebastian.pop@amd.com>
1735
1736         PR tree-optimization/36206
1737         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1738         FOLD_CONVERSIONS.
1739         (instantiate_scev_1): Rename flags to fold_conversions.
1740         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1741         outeside instantiation_loop.
1742         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1743         (evolution_function_is_affine_or_constant_p): Removed.
1744         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1745         instantiate_scev.
1746         (analyze_siv_subscript): Pass in the loop nest number.
1747         Call evolution_function_is_affine_in_loop instead of 
1748         evolution_function_is_affine_p.
1749         (analyze_overlapping_iterations): Pass in the loop nest number.
1750
1751 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
1752             Sebastian Pop  <sebastian.pop@amd.com>
1753
1754         PR tree-optimization/36206
1755         * tree-chrec.h (chrec_fold_op): New.
1756         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1757         and other trees.
1758
1759 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
1760
1761         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1762         (DIRS_EQ): New.
1763         (remove_duplicates): Do not set inode on non-inode systems.
1764         Use DIRS_EQ.
1765
1766 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1767
1768         * config.gcc (tm_file): Update comments about relative pathnames.
1769
1770 2008-05-20  Richard Guenther  <rguenther@suse.de>
1771
1772         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1773         * tree-ssa-sccvn.c (process_scc): Likewise.
1774         * tree-ssa-sink.c (execute_sink_code): Likewise.
1775         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1776         * tree-vrp.c (process_assert_insertions): Likewise.
1777         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1778         (perform_tree_ssa_dce): Likewise.
1779         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1780         (dump_dominator_optimization_stats): Likewise.
1781         * tree-vectorizer.c (vectorize_loops): Likewise.
1782
1783 2008-05-20  Richard Guenther  <rguenther@suse.de>
1784
1785         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1786
1787 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
1788
1789         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1790         (ix86_i386elf_return_in_memory): Likewise.
1791         (ix86_i386interix_return_in_memory): Likewise.
1792         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1793         (SUBTARGET_RETURN_IN_MEMORY): New.
1794         * config/i386/i386elf.h: Likewise.
1795         * config/i386/ptx4-i.h: Likewise.
1796         * config/i386/sol2-10.h: Likewise.
1797         * config/i386/sysv4.h: Likewise.
1798         * config/i386/vx-common.h: Likewise.
1799         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1800         * config/i386/i386.c (ix86_return_in_memory): Made static and
1801         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1802         (ix86_i386elf_return_in_memory): Removed.
1803         (ix86_i386interix_return_in_memory): Removed.
1804         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1805         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1806
1807 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
1808
1809         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1810
1811 2008-05-19  Xinliang David Li  <davidxl@google.com>
1812
1813         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
1814         * opts.c: Ditto.
1815         * common.opt: Ditto.
1816         * doc/invoke.texi: Ditto.
1817
1818 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1819
1820         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1821         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1822
1823 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1824
1825         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1826         sizes of operand array from 8/4 to 4/2.
1827         (ix86_expand_vector_init_general): Change size of operand array
1828         from 32 to 16.  Remove op0, op1 and half_mode.
1829
1830 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1831
1832         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1833         (ix86_expand_vector_init_interleave): Likewise.
1834         (ix86_expand_vector_init_general): Use them.  Assert
1835         word_mode == SImode when n_words == 4.
1836
1837 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
1838
1839         * config/i386/i386.c (ix86_secondary_reload): New static function.
1840         (TARGET_SECONDARY_RELOAD): New define.
1841         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1842         * config/i386/i386.md (reload_outqi): Remove.
1843
1844 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1845
1846         PR middle-end/35509
1847         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1848         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
1849         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1850         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1851         (fold_builtin_1): Likewise.
1852         * builtins.def (BUILT_IN_ISINF_SIGN): New.
1853         c-common.c (check_builtin_function_arguments): Handle
1854         BUILT_IN_ISINF_SIGN.
1855         * doc/extend.texi: Document __builtin_isinf_sign.
1856         * fold-const.c (operand_equal_p): Handle COND_EXPR.
1857
1858 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
1859
1860         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1861         EH cleanup at the end of the pass, search for those that have been
1862         turned into forwarder blocks and do the cleanup on their successor.
1863
1864 2008-05-18  Richard Guenther  <rguenther@suse.de>
1865
1866         * tree-cfg.c (verify_gimple_expr): Allow conversions from
1867         pointers to sizetype and vice versa.
1868
1869 2008-05-18 Xinliang David Li   <davidxl@google.com>
1870
1871         * gcc/tree-ssa-dce.c: Coding style fix.
1872         (check_pow): Documentation comment. 
1873         (check_log): Documenation comment. Coding style fix.
1874         (is_unnecessary_except_errno_call): Ditto.
1875         (gen_conditions_for_pow): Ditto.
1876         (gen_conditions_for_log): Ditto.
1877         (gen_shrink_wrap_conditions): Ditto.
1878         (shrink_wrap_one_built_in_calls): Ditto.
1879         * gcc/doc/invoke.texi: Better documentation string.
1880         * ChangeLog: Fix wrong change log entries from 
1881         May 17 checkin on function call DCE.
1882
1883 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
1884
1885         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1886
1887 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1888
1889         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1890         * df-problems.c (simulation routines): Fixed block comment to
1891         properly say how to add forwards scanning functions.
1892         
1893 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1894
1895         * tree-inline.c (setup_one_parameter): Remove dead code.
1896
1897 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1898
1899         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1900         a BIT_AND_EXPR only for an INTEGER_TYPE.
1901
1902 2008-05-17 Xinliang David Li   <davidxl@google.com>
1903
1904         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1905         (check_pow, check_log, is_unnecessary_except_errno_call): New 
1906         functions to check for eliminating math functions that are pure 
1907         except for setting errno.
1908         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1909         general condition expressions for shrink-wrapping pow/log calls.
1910         (gen_shrink_wrap_conditions): Ditto.
1911         (shrink_wrap_one_built_in_call): Ditto.
1912         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1913         (mark_operand_necessary): If debugging, output if OP is necessary.
1914         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1915         unnecessary.
1916         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1917         opt level >= 2.
1918         * gcc/common.opt: New user flag -ftree-builtin-dce.
1919         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1920
1921 2008-05-16  David S. Miller  <davem@davemloft.net>
1922
1923         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1924         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1925
1926 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
1927
1928         PR target/36246
1929         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1930
1931 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1932
1933         * ifcvt.c (dead_or_predicable): Rename
1934         df_simulate_one_insn_backwards to df_simulate_one_insn.
1935         * recog.c (peephole2_optimize): Ditto.
1936         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1937         Ditto.
1938         * df.h: Rename df_simulate_one_insn_backwards to
1939         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
1940         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1941         scanning of defs and uses.
1942         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1943         (df_simulate_one_insn_forwards): Removed.
1944
1945 2008-05-16  Doug Kwan  <dougkwan@google.com>
1946
1947         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1948         QNaN & SNaN.
1949         (real_from_string): Handle NaNs and Inf as approriate.
1950
1951 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1952
1953         * doc/gty.texi (Source Files Containing Type Information): Note
1954         that headers should appear first in the gtfiles list.
1955
1956 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1957
1958         * tree.def (COND_EXEC): Properly documented this code.
1959
1960 2008-05-16  Diego Novillo  <dnovillo@google.com>
1961
1962         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1963         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1964         the new field.
1965
1966 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1967
1968         * tree-ssa-dse (max_stmt_uid): Removed.
1969         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
1970         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1971         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1972         * function.h (cfun.last_stmt_uid): New field.
1973         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1974         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1975         New functions.
1976         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1977         (create_stmt_ann): Initialize the ann->uid field.
1978         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1979         with new calls.
1980         * tree-flow.h (renumber_gimple_stmt_uids): New function.
1981
1982 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
1983
1984         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1985         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1986         (init_empty_tree_cfg): Call it.
1987
1988 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1989
1990         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
1991         Update all users.
1992
1993 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
1994
1995         * doc/invoke.text (-fdump-tree-*-verbose): New option.
1996         * tree-dump.c (dump_options): New verbose option.
1997         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1998         Add verbose dump.
1999         * tree-pass.h (TDF_VERBOSE): New dump flag.
2000         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2001         (tree-flow.h): Added include.
2002         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2003
2004 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2005
2006         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2007
2008         From Jie Zhang  <jie.zhang@analog.com>
2009         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2010         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2011         mcpu=bf561-none and mcpu=bf561-0.2.
2012         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2013         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2014         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2015         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2016         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2017         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2018         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2019         option.
2020         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2021         (cputype_selected): Remove.
2022         (bfin_handle_option): Don't use cputype_selected.
2023         (override_options): When no mcpu option, enable all workarounds.
2024         Don't use bfin_workarounds.
2025         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2026         processor type.
2027         (DEFAULT_CPU_TYPE): Don't define.
2028
2029 2008-05-16  Richard Guenther  <rguenther@suse.de>
2030
2031         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2032         on deletion of the last stmt.
2033
2034 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2035
2036         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2037         V8HImode for SSE2 and V16QImode for SSE4.1.
2038
2039 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2040
2041         * cgraph.h (compute_inline_parameters): Made public.
2042         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2043         variable_generate_summary, function_write_summary,
2044         variable_write_summary, variable_read_summary.  Added generate_summary,
2045         write_summary, read_summary.
2046         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2047         pass_ipa_inline.function_generate_summary, to
2048         compute_inline_parameters. 
2049         * ipa-inline.c (compute_inline_parameters): Made public and added
2050         node parameter.
2051         (compute_inline_parameters_for_current): New function.
2052         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2053         (inline_generate_summary): Removed parameter and made to loop over
2054         all cgraph nodes.
2055         (pass_ipa_inline): Updated for new IPA_PASS structure.
2056         * passes.c (execute_ipa_summary_passes): Now is called once per
2057         pass rather than once per node*pass.
2058         
2059 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2060
2061         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2062         avr_have_mul_p, avr_asm_only_p): Remove variables.
2063         (avr_override_options): Remove initialization of removed variables.
2064         (avr_file_start):  Convert removed variables to fields of 
2065         'struct base_arch_s *avr_current_arch'. 
2066         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2067         (AVR_HAVE_MUL): (Ditto.).
2068         (AVR_HAVE_MOVW): (Ditto.).
2069         (AVR_HAVE_LPMX): (Ditto.). 
2070         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2071         avr_asm_only_p): Remove declaration.
2072
2073 2008-05-15  Diego Novillo  <dnovillo@google.com>
2074
2075         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2076         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2077
2078 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2079
2080         PR middle-end/36194
2081         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2082         Don't call record_truncated_value from here.
2083         (record_truncated_value): Turn it into a for_each_rtx callback.
2084         (record_truncated_values): New function.
2085         (combine_instructions): Call note_uses with record_truncated_values.
2086         Change name of check_conversion to check_promoted_subreg. 
2087
2088 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2089
2090         * doc/sourcebuild.texi: Document support for torture tests.
2091
2092 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2093
2094         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2095         to alternative 4 of operand 2.
2096
2097 2008-05-15  Richard Guenther  <rguenther@suse.de>
2098
2099         * tree-pass.h (current_pass): Declare.
2100         (get_pass_for_id): Likewise.
2101         * passes.c (passes_by_id, passes_by_id_size): New globals.
2102         (set_pass_for_id): New function.
2103         (get_pass_for_id): Likewise.
2104         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2105         (execute_function_todo): Flush per function statistics.
2106         * toplev.c (compile_file): Init statistics.
2107         (general_init): Do early statistics initialization.
2108         (finalize): Finish statistics.
2109         * statistics.h (statistics_early_init): Declare.
2110         (statistics_init): Likewise.
2111         (statistics_fini): Likewise.
2112         (statistics_fini_pass): Likewise.
2113         (statistics_counter_event): Likewise.
2114         (statistics_histogram_event): Likewise.
2115         * statistics.c: New file.
2116         * Makefile.in (OBJS-common): Add statistics.o.
2117         (statistics.o): Add dependencies.
2118         * doc/invoke.texi (-fdump-statistics): Document.
2119
2120         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2121         (insert): Likewise.
2122         (execute_pre): Use statistics_counter_event.
2123         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2124         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2125
2126 2008-05-15  Diego Novillo  <dnovillo@google.com>
2127
2128         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2129
2130         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2131         * tree-ssa-alias.c (new_type_alias): Remove references to
2132         sub-variables from comment.
2133         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2134
2135 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2136
2137         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2138         attribute to 1 only for insertps alternative.
2139
2140 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2141
2142         * config/bfin/bfin.md (loadbytes): New pattern.
2143         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2144         (bfin_init_builtins): Initialize it.
2145         (bdesc_1arg): Add it.
2146
2147 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2148
2149         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2150         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2151         * testsuite/lib/target-supports.exp: Add
2152         check_effective_target_fortran_integer_16.
2153
2154 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2155
2156         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2157         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2158         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2159         (TARGET_RETURN_IN_MEMORY): Define.
2160
2161 2008-05-15  Richard Guenther  <rguenther@suse.de>
2162
2163         PR middle-end/36244
2164         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2165         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2166         represent unmodifiable vars.
2167
2168 2008-05-15  Richard Guenther  <rguenther@suse.de>
2169
2170         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2171         INDIRECT_REF and TARGET_MEM_REF.
2172         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2173         TARGET_MEM_REF.
2174
2175 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2176             H.J. Lu  <hongjiu.lu@intel.com>
2177
2178         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2179         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2180         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2181         insn alternatives.  Add missing alternatives.
2182         (*vec_concatv2di_rex64_sse4_1): Likewise.
2183         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2184         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2185         Require TARGET_SSE.
2186
2187 2008-05-15  Richard Guenther  <rguenther@suse.de>
2188
2189         PR tree-optimization/36009
2190         PR tree-optimization/36204
2191         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2192         (determine_invariantness_stmt): Record the loop a store is
2193         always executed in.
2194         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2195         dependency.
2196
2197 2008-05-15  Richard Guenther  <rguenther@suse.de>
2198
2199         PR tree-optimization/34330
2200         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2201         through the pointer will alias the SMT.
2202
2203 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2204
2205         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2206
2207 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2208
2209         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2210
2211 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2212             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2213
2214         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2215         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2216         (vashl_optab): New optab for vector/vector shifts.
2217         (vashr_optab): Ditto.
2218         (vlshr_optab): Ditto.
2219         (vrotl_optab): Ditto.
2220         (vrotr_optab): Ditto.
2221         (optab_subtype): New enum for optab_for_tree_code call.
2222         (optab_for_tree_code): Add enum optab_subtype argument.
2223
2224         * optabs.c (optab_for_tree_code): Take an additional argument to
2225         distinguish between a vector shift by a scalar and vector shift by
2226         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2227         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2228         vector shift by a vector.
2229         (expand_widen_pattern_expr): Pass additional argument to
2230         optab_for_tree_code.
2231
2232         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2233         vrotl_optab, vrotr_optab.
2234
2235         * expr.c (expand_expr_real_1): Update calls to
2236         optab_for_tree_code to distinguish between vector shifted by a
2237         scalar and vector shifted by a vector.
2238         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2239         (supportable_narrowing_operation): Ditto.
2240         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2241         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2242         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2243         (vect_create_epilog_for_reduction): Ditto.
2244         (vectorizable_reduction): Ditto.
2245         (vectorizable_operation): Ditto.
2246         (vect_strided_store_supported): Ditto.
2247         (vect_strided_load_supported): Ditto.
2248         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2249         * expmed.c (expand_shift): Ditto.
2250
2251         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2252         scalar type.
2253         (ashr@var{m}3): Ditto.
2254         (vashl@var{m}3): Document new vector/vector shift standard name.
2255         (vashr@var{m}3): Ditto.
2256         (vlshr@var{m}3): Ditto.
2257         (vrotl@var{m}3): Ditto.
2258         (vrotr@var{m}3): Ditto.
2259
2260         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2261         (PPERM_INVERT): Ditto.
2262         (PPERM_REVERSE): Ditto.
2263         (PPERM_REV_INV): Ditto.
2264         (PPERM_ZERO): Ditto.
2265         (PPERM_ONES): Ditto.
2266         (PPERM_SIGN): Ditto.
2267         (PPERM_INV_SIGN): Ditto.
2268         (PPERM_SRC1): Ditto.
2269         (PPERM_SRC2): Ditto.
2270
2271         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2272         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2273         allows a memory operand to be the value being added, and split it
2274         to improve vectorization.
2275         (sse5_pmacsdqh_mem): Ditto.
2276         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2277         (sse5_mulv2div2di3_high): Ditto.
2278         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2279         (vec_pack_trunc_v4si): Ditto.
2280         (vec_pack_trunc_v2di): Ditto.
2281         (sse5_pcmov_<mode>): Remove code that tried to use use
2282         andps/andnps instead of pcmov.
2283         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2284         pmacsdqh instructions.
2285         (vec_widen_smult_lo_v4si): Ditto.
2286
2287         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2288         (PPERM_INVERT): Ditto.
2289         (PPERM_REVERSE): Ditto.
2290         (PPERM_REV_INV): Ditto.
2291         (PPERM_ZERO): Ditto.
2292         (PPERM_ONES): Ditto.
2293         (PPERM_SIGN): Ditto.
2294         (PPERM_INV_SIGN): Ditto.
2295         (PPERM_SRC1): Ditto.
2296         (PPERM_SRC2): Ditto.
2297         (ix86_expand_sse_movcc): Move the SSE5 test after the if
2298         true/false tests.
2299         (ix86_expand_int_vcond): If SSE5 generate all possible integer
2300         comparisons.
2301         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2302         says ignore whether the last reference is a memory operand.
2303
2304 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2305             Paolo Bonzini <bonzini at gnu dot org>
2306
2307         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2308         shift patterns.
2309
2310         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
2311         (vlshr<mode>3): Rename from vlshr<mode>3.
2312         (vashr<mode>3): Rename from vashr<mode>3.
2313         (mulv4sf3): Change the names of vector shift patterns.
2314         (mulv4si3): Ditto.
2315         (negv4sf2): Ditt.
2316
2317         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2318         shift insns.
2319
2320         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
2321         (SI_SHLHI): Ditto.
2322         (SI_SHL): Ditto.
2323         (SI_SHLI): Ditto.
2324         (SI_ROTH): Ditto.
2325         (SI_ROTHI): Ditto.
2326         (SI_ROT): Ditto.
2327         (SI_ROTI): Ditto.
2328         (SPU_RL_0): Ditto.
2329         (SPU_RL_1): Ditto.
2330         (SPU_RL_2): Ditto.
2331         (SPU_RL_3): Ditto.
2332         (SPU_RL_4): Ditto.
2333         (SPU_RL_5): Ditto.
2334         (SPU_RL_6): Ditto.
2335         (SPU_RL_7): Ditto.
2336         (SPU_SL_0): Ditto.
2337         (SPU_SL_1): Ditto.
2338         (SPU_SL_2): Ditto.
2339         (SPU_SL_3): Ditto.
2340         (SPU_SL_4): Ditto.
2341         (SPU_SL_5): Ditto.
2342         (SPU_SL_6): Ditto.
2343         (SPU_SL_7): Ditto.
2344
2345         * config/spu/spu.md (v): New iterator macro to add v for vector types.
2346         (floatunssidf2_internal): Change vector/vector shift names.
2347         (floatunsdidf2_internal): Ditto.
2348         (mulv8hi3): Ditto.
2349         (ashrdi3): Ditto.
2350         (ashrti3): Ditto.
2351         (cgt_df): Ditto.
2352         (cgt_v2df): Ditto.
2353         (dftsv): Ditto.
2354         (vashl<mode>3): Rename from ashl<mode>3.
2355         (vashr<mode>3): Rename from ashr<mode>3.
2356         (vlshr<mode>3): Rename from lshr<mode>3.
2357         (vrotl<mode>3): Rename from rotl<mode>3.
2358
2359 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2360
2361         PR target/36224
2362         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2363         multiply gives the wrong value when doing widening multiplies.
2364         (vec_widen_smult_lo_v4si): Ditto.
2365
2366 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2367
2368         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2369         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2370         emit_library_call_value. 
2371         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2372         * tree.h (ECF_LIBCALL_BLOCK): Removed.
2373         * calls.c (initialize_argument_information, precompute_arguments, 
2374         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
2375         (precompute_arguments): Removed flags parameter.
2376         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
2377         
2378 2008-05-14  Richard Guenther  <rguenther@suse.de>
2379
2380         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
2381         Make sure to register the store if the use is a PHI_NODE.
2382
2383 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2384
2385         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2386         memory if the component is to be referenced in BLKmode according
2387         to get_inner_reference.
2388
2389 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
2390
2391         * calls.c (emit_library_call_value_1): Restore code clearing
2392         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
2393
2394 2008-05-14  Olivier Hainque  <hainque@adacore.com>
2395             Nicolas Roche  <roche@adacore.com>
2396
2397         * configure.ac: Add support for a "gcc_subdir" variable in
2398         config-lang.in, to denote a subdirectory where the language/GCC
2399         integration files are to be found.
2400         * configure: Regenerate.
2401
2402 2008-05-14  Ira Rosen  <irar@il.ibm.com>
2403
2404         PR tree-optimization/36098
2405         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
2406         value for the first load in the group in case of a gap.
2407         (vect_build_slp_tree): Check that there are no gaps in loads.
2408
2409 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
2410
2411         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
2412         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
2413         expand_copysign_bit, ): Change call to emit_no_conflict_block to
2414         emit_insn and remove unneeded code to construct extra args.
2415         (emit_no_conflict_block): Removed.
2416         * optabls.h: (emit_no_conflict_block): Removed.
2417         * cse.c (cse_extended_basic_block): Remove search for
2418         REG_NO_CONFLICT note.
2419         * global.c: Removed incorrect comment added in revision 117.
2420         * expr.c (convert_move): Change call to emit_no_conflict_block to
2421         emit_insn.
2422         * recog.c: Change comments so that they do not mention
2423         REG_NO_CONFLICT.
2424         * local_alloc.c (combine_regs): Removed last parameter.
2425         (no_conflict_p): Removed.
2426         (block_alloc): Removed note, no_conflict_combined_regno and set
2427         local vars. Removed all code to process REG_NO_CONFLICT blocks.
2428         (combine_regs): Removed already_dead and code to look for
2429         REG_NO_CONFLICT notes.
2430         * lower_subreg (remove_retval_note): Removed code to look for
2431         REG_NO_CONFLICT block.
2432         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
2433         (resolve_clobber): Remove code to process libcalls that have
2434         REG_NO_CONFLICT notes.
2435         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
2436         case.
2437         * combine.c (can_combine_p, distribute_notes):  Removed
2438         REG_NO_CONFLICT case.
2439         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
2440         to emit_insns.
2441         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
2442         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
2443         Ditto.
2444         * reg-notes.def (NO_CONFLICT): Removed.
2445
2446 2008-05-14  David S. Miller  <davem@davemloft.net>
2447
2448         * config/sparc/sparc.c (sparc_profile_hook): If
2449         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
2450         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
2451         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2452
2453 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2454
2455         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
2456
2457 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
2458
2459         PR target/36222
2460         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
2461         and op1 expansion before vector concat to have less live pseudos.
2462
2463 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2464
2465         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2466         ix86_expand_vector_set if supported.
2467
2468 2008-05-13  Diego Novillo  <dnovillo@google.com>
2469             Kenneth Zadeck  <zadeck@naturalbridge.com>
2470
2471         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
2472
2473         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
2474         phinodes_print_statistics, init_ssanames, fini_ssanames,
2475         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
2476         release_ssa_name, release_defs, replace_ssa_name_symbol,
2477         ssanames_print_statistics): Move ...
2478         * tree-flow.h: ... here.
2479         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
2480         Use FN instead of cfun.
2481         (make_ssa_name_fn): Rename from make_ssa_name.
2482         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
2483         * tree-flow-inline.h (make_ssa_name): Move from
2484         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
2485         * omp-low.c (expand_omp_parallel):
2486         * tree-flow-inline.h (redirect_edge_var_map_result):
2487         * tree-ssa.c (init_tree_ssa): Add argument FN.
2488         Use it instead of cfun.  Update all users.
2489
2490 2008-05-13  Tom Tromey  <tromey@redhat.com>
2491
2492         PR preprocessor/22168:
2493         * doc/cpp.texi (Top): Update menu.
2494         (Alternatives to Wrapper #ifndef): New node.
2495         (Other Directives): Document deprecation.
2496         (Obsolete Features): Remove menu.
2497         (Assertions): Merge node into Obsolete Features.
2498         (Obsolete once-only headers): Move earlier; rename to Alternatives
2499         to Wrapper #ifndef.
2500         * doc/cppopts.texi: Update.
2501         * c.opt (Wdeprecated): Enable for C and ObjC.
2502         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
2503         (C++ Dialect Options): Move -Wno-deprecated from here to...
2504         (Warning Options): ... here.
2505
2506 2008-05-13  Richard Guenther  <rguenther@suse.de>
2507
2508         PR middle-end/36227
2509         * fold-const.c (fold_sign_changed_comparison): Do not allow
2510         changes in pointer-ness.
2511
2512 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2513
2514         PR target/24713
2515         * config/sh/sh.c (sh_expand_prologue): Don't clear
2516         RTX_FRAME_RELATED_P for push insns.
2517
2518 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
2519
2520         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
2521
2522 2008-05-12  Anatoly Sokolov <aesok@post.ru>
2523
2524         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
2525         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
2526         Use 'machine->is_leaf' instead of 'leaf_func_p'.
2527
2528 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2529
2530         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
2531         (*vec_concatv4sf_sse): This.
2532         (*sse2_concatv2si): Renamed to ...
2533         (*vec_concatv2si_sse2): This.
2534         (*sse1_concatv2si): Renamed to ...
2535         (*vec_concatv2si_sse): This.
2536         (*vec_concatv2di_rex): Renamed to ...
2537         (*vec_concatv2di_rex64): This.
2538         (*vec_concatv2si_sse4_1): New.
2539         (*vec_concatv2di_rex64_sse4_1): Likewise.
2540
2541 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
2542
2543         PR rtl-optimization/36111
2544         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
2545         that was created for swappable operands.
2546
2547 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
2548
2549         PR ada/36001
2550         * Makefile.in: Substitute GNATMAKE and GNATBIND.
2551         * configure.ac: Add call to ACX_PROG_GNAT.
2552
2553 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
2554
2555         * optc-gen.awk: Fix comment typo.
2556
2557 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2558
2559         * pretty-print.c (pp_integer_with_precision): Use
2560         HOST_LONG_LONG_FORMAT.
2561
2562 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
2563
2564         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
2565                 
2566 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2567
2568         * config/i386/i386.c (bdesc_ptest): Removed.
2569         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
2570         (bdesc_args): Add __builtin_ia32_ptestz128,
2571         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
2572         (ix86_init_mmx_sse_builtins): Updated.
2573         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
2574         (ix86_expand_builtin): Updated.
2575
2576 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
2577
2578         * tree-cfg.c (valid_fixed_convert_types_p): New function.
2579         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
2580
2581 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
2582
2583         * value-prof.c (interesting_stringop_to_profile): Do not
2584         return early for BUILT_IN_MEMPCPY.
2585
2586 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2587
2588         * calls.c (expand_call): Don't use callgraph to increase
2589         preferred_stack_boundary.
2590
2591         * cgraph.h (cgraph_rtl_info): Use unsigned on
2592         preferred_incoming_stack_boundary.
2593
2594         * final.c (rest_of_clean_state): Use unsigned on
2595         preferred_stack_boundary.
2596
2597 2008-05-09  Tom Tromey  <tromey@redhat.com>
2598
2599         PR preprocessor/22231:
2600         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
2601         proceeding.
2602
2603 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
2604
2605         PR tree-optimization/36129
2606         * tree-ssa-ccp.c: Include value-prof.h.
2607         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
2608         built-in function was folded to a constant.
2609         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
2610
2611 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
2612             Sebastian Pop  <sebastian.pop@amd.com>
2613
2614         * tree-scalar-evolution.c: Document instantiate_scev.
2615         (instantiate_parameters_1): Renamed instantiate_scev_1.
2616         Don't use the same loop for instantiation_loop and evolution_loop.
2617         (instantiate_scev): New.
2618         (instantiate_parameters): Moved...
2619         (resolve_mixers): Update call to instantiate_scev_1 to pass the
2620         same loop twice.  Maintains the semantics for this function.
2621         * tree-scalar-evolution.h (instantiate_scev): Declare.
2622         (instantiate_parameters): ...here.  Now static inline.
2623         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
2624         instead of resolve_mixers.
2625
2626 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2627
2628         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
2629
2630 2008-05-09  Tomas Bily  <tbily@suse.cz>
2631
2632         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
2633         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
2634         * tree-ssa-structalias.c (get_constraint_for): Likewise.
2635         * c-common.c (c_common_truthvalue_conversion): Likewise.
2636         * tree-object-size.c (compute_object_offset): Likewise.
2637         * tree-inline.c (estimate_num_insns_1): Likewise.
2638         * varasm.c (const_hash_1, compare_constant, copy_constant)
2639         (compute_reloc_for_constant, output_addressed_constants)
2640         (initializer_constant_valid_p): Likewise.
2641         * c-omp.c (check_omp_for_incr_expr): Likewise.
2642         * gimplify.c (gimplify_expr): Likewise.
2643         * c-typeck.c (c_finish_return): Likewise.
2644         * tree-vectorizer.c (supportable_widening_operation)
2645         (supportable_narrowing_operation): Likewise.
2646         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
2647         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
2648         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
2649         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
2650         (descr_info_loc): Likewise.
2651         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2652         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
2653         (fold_unary): Likewise.
2654         * builtins.c (get_pointer_alignment): Likewise.
2655         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
2656         (instantiate_parameters_1): Likewise.
2657         * tree.c (expr_align, stabilize_reference): Likewise.
2658         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2659         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
2660         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
2661         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2662         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
2663         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
2664         Likewise.
2665         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
2666         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
2667         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2668         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
2669         (forward_propagate_comparison)
2670         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2671         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
2672         * emit-rtl.c (component_ref_for_mem_expr)
2673         (set_mem_attributes_minus_bitpos): Likewise.
2674         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
2675         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
2676         Likewise.
2677         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
2678         (build_function_call, pointer_diff, build_compound_expr)
2679         (c_finish_return): Likewise.
2680         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
2681         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
2682         Likewise.
2683         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
2684         * expr.c (is_aligning_offset): Likewise.
2685         * tree-ssa-alias.c (is_escape_site): Likewise.
2686         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
2687         (check_all_va_list_escapes): Likewise.
2688         * tree-ssa-loop-ivopts.c (determine_base_object)
2689         (determine_common_wider_type): Likewise.
2690         * dojump.c (do_jump): Likewise.
2691         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
2692         * tree-gimple.c (is_gimple_cast): Likewise.
2693         * fold-const.c (decode_field_reference, )
2694         (fold_sign_changed_comparison, fold_unary, fold_comparison)
2695         (fold_binary): Likewise.
2696         * tree-ssa-alias-warnings.c (find_alias_site_helper)
2697         (already_warned_in_frontend_p): Likewise.
2698         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
2699         * tree.c (really_constant_p, get_unwidened): Likewise.
2700         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2701         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2702         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
2703         Likewise.
2704         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
2705         CONVERT_EXPR_P.
2706         (CONVERT_EXPR_P): Define.
2707         (CASE_CONVERT): Define.
2708         
2709 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
2710
2711         PR middle-end/36117
2712         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
2713         (delete_unmarked_insns): When deleting a call, call
2714         delete_unreachable_blocks.
2715         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2716         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
2717
2718 2008-05-08  Richard Guenther  <rguenther@suse.de>
2719
2720         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
2721         (-ftree-salias): Likewise.
2722         (salias-max-implicit-fields): Remove param documentation.
2723         (salias-max-array-elements): Likewise.
2724         * tree-pass.h (pass_create_structure_vars): Remove.
2725         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2726         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2727         * tree-ssa-alias.c (create_structure_vars): Remove.
2728         (gate_structure_vars): Likewise.
2729         (pass_create_structure_vars): Likewise.
2730         (gate_build_alias): Likewise.
2731         (pass_build_alias): Adjust to run always and dump the function.
2732         * common.opt (ftree-salias): Hide.
2733         * passes.c (init_optimization_passes): Remove
2734         pass_create_structure_vars, adjust comment.
2735         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2736         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2737         * opts.c (decode_options): Do not set flag_tree_salias.
2738         (common_handle_option): Add OPT_ftree_salias to the backward
2739         compatibility section.
2740
2741 2008-05-08  Richard Guenther  <rguenther@suse.de>
2742
2743         * tree-flow-inline.h (var_can_have_subvars): Move ...
2744         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2745         * tree-flow.h (var_can_have_subvars): Remove.
2746         (push_fields_onto_fieldstack): Remove.
2747         (sort_fieldstack): Likewise.
2748         (struct fieldoff): Move ...
2749         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
2750         alias_set and base_for_components fields.
2751         (sort_fieldstack): Make static.
2752         (push_fields_onto_fieldstack): Likewise.  Remove code that
2753         handles anything but RECORD_TYPEs.  Remove alias_set and
2754         base_for_components handling.
2755         (create_variable_info_for): Adjust.
2756
2757 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
2758
2759         * common.opt (Wframe-larger-than=): Shorten the help message
2760         to one line.
2761         * doc/invoke.texi (Wframe-larger-than=): Add more description.
2762
2763 2008-05-08  Rafael Espindola  <espindola@google.com>
2764
2765         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2766         trap.
2767         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2768         trap and that both operands are gimple values.
2769         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2770         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2771         is a fp operation.
2772
2773 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2774
2775         * read-rtl.c (join_c_conditions): Return the first string if the
2776         two strings are equal.
2777
2778 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
2779
2780         * gensupport.h (pred_data): Add a "num_codes" field.
2781         (add_predicate_code): Declare.
2782         * gensupport.c (add_predicate_code): New function.
2783         (std_pred_table): Add an "allows_const_p" field.
2784         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2785         Remove the (incomplete) list of such codes from the codes field.
2786         (init_predicate_table): Use add_predicate_code.  Add all
2787         RTX_CONST_OBJs if allows_const_p is true.
2788         * genrecog.c (process_define_predicate): Use add_predicate_code.
2789
2790 2008-05-08  David Daney  <ddaney@avtrex.com>
2791             Richard Sandiford  <rsandifo@nildram.co.uk>
2792         
2793         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2794         special case of constant zero operands.
2795         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2796         old and new values.  Special case constant zero values.
2797         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2798         fails.
2799         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2800         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2801
2802 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
2803
2804         PR target/36090
2805         * simplify-rtx.c (simplify_plus_minus): Create CONST of
2806         similar RTX_CONST_OBJ before CONST_INT.
2807
2808 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
2809
2810         * stmt.c (expand_stack_restore): Change sa mode if needed.
2811
2812 2008-05-08  Richard Guenther  <rguenther@suse.de>
2813
2814         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2815         return type to bool.
2816         (ix86_sol10_return_in_memory): Likewise.
2817         (ix86_i386elf_return_in_memory): Likewise.
2818         (ix86_i386interix_return_in_memory): Likewise.
2819         * config/i386/i386.c (ix86_return_in_memory): Likewise.
2820         (ix86_sol10_return_in_memory): Likewise.
2821         (ix86_i386elf_return_in_memory): Likewise.
2822         (ix86_i386interix_return_in_memory): Likewise.
2823
2824 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2825
2826         PR bootstrap/36180
2827         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2828         fndecl argument.
2829         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2830         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2831         declared in front.
2832
2833 2008-05-08  Richard Guenther  <rguenther@suse.de>
2834
2835         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2836         * tree-data-ref.h (struct dr_alias): Remove subvars field.
2837         (DR_SUBVARS): Remove.
2838         * tree-dfa.c (dump_subvars_for): Remove.
2839         (debug_subvars_for): Likewise.
2840         (dump_variable): Do not dump subvars.
2841         (remove_referenced_var): Do not remove subvars.
2842         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2843         (lookup_subvars_for_var): Remove.
2844         (get_subvars_for_var): Likewise.
2845         (get_subvars_at): Likewise.
2846         (get_first_overlapping_subvar): Likewise.
2847         (overlap_subvar): Likewise.
2848         * tree-flow.h (subvar_t): Remove.
2849         (struct var_ann_d): Remove subvars field.
2850         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2851         argument.  Remove special handling of SFTs.
2852         (compute_tag_properties): Likewise.
2853         (set_initial_properties): Likewise.
2854         (compute_call_clobbered): Likewise.
2855         (count_mem_refs): Likewise.
2856         (compute_memory_partitions): Likewise.
2857         (compute_flow_insensitive_aliasing): Likewise.
2858         (setup_pointers_and_addressables): Likewise.
2859         (new_type_alias): Likewise.
2860         (struct used_part): Remove.
2861         (used_portions): Likewise.
2862         (struct used_part_map): Likewise.
2863         (used_part_map_eq): Likewise.
2864         (used_part_map_hash): Likewise.
2865         (free_used_part_map): Likewise.
2866         (up_lookup): Likewise.
2867         (up_insert): Likewise.
2868         (get_or_create_used_part_for): Likewise.
2869         (create_sft): Likewise.
2870         (create_overlap_variables_for): Likewise.
2871         (find_used_portions): Likewise.
2872         (create_structure_vars): Likewise.
2873         * tree.def (STRUCT_FIELD_TAG): Remove.
2874         * tree.h (MTAG_P): Adjust.
2875         (struct tree_memory_tag): Remove base_for_components and
2876         unpartitionable flags.
2877         (struct tree_struct_field_tag): Remove.
2878         (SFT_PARENT_VAR): Likewise.
2879         (SFT_OFFSET): Likewise.
2880         (SFT_SIZE): Likewise.
2881         (SFT_NONADDRESSABLE_P): Likewise.
2882         (SFT_ALIAS_SET): Likewise.
2883         (SFT_UNPARTITIONABLE_P): Likewise.
2884         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2885         (union tree_node): Remove sft field.
2886         * alias.c (get_alias_set): Remove special handling of SFTs.
2887         * print-tree.c (print_node): Remove handling of SFTs.
2888         * tree-dump.c (dequeue_and_dump): Likewise.
2889         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2890         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2891         * tree-predcom.c (set_alias_info): Do not set subvars.
2892         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2893         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2894         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2895         (add_vars_for_offset): Remove.
2896         (add_virtual_operand): Remove special handling of SFTs.
2897         (add_call_clobber_ops): Likewise.
2898         (add_call_read_ops): Likewise.
2899         (get_asm_expr_operands): Likewise.
2900         (get_modify_stmt_operands): Likewise.
2901         (get_expr_operands): Likewise.
2902         (add_to_addressable_set): Likewise.
2903         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2904         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2905         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2906         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2907         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2908         (tree_node_structure): Likewise.
2909         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2910         handling of SFTs.
2911         (find_what_p_points_to): Likewise.
2912
2913 2008-05-08  Sa Liu  <saliu@de.ibm.com>
2914
2915         * config/spu/spu.md: Fixed subti3 pattern.
2916
2917 2008-05-08  Richard Guenther  <rguenther@suse.de>
2918
2919         PR middle-end/36154
2920         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2921         sure to create a representative for trailing arrays for PTA.
2922
2923 2008-05-08  Richard Guenther  <rguenther@suse.de>
2924
2925         PR middle-end/36172
2926         * fold-const.c (operand_equal_p): Two objects which types
2927         differ in pointerness are not equal.
2928
2929 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
2930
2931         * calls.c (compute_argument_block_size): Add argument tree fndecl.
2932         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2933         (emit_library_call_value_1): Add new variable fndecl initialized by
2934         NULL_TREE. It should be the decl type of orgfun, but this information
2935         seems not to be available here, so it uses the default calling abi.
2936         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2937         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2938         by TARGET_RETURN_IN_MEMORY.
2939         * config/i386/i386-interix.h: Likewise.
2940         * config/i386/i386.h: Likewise.
2941         * config/i386/i386elf.h: Likewise.
2942         * config/i386/ptx4-i.h: Likewise.
2943         * config/i386/sol2-10.h: Likewise.
2944         * config/i386/sysv4.h: Likewise.
2945         * config/i386/vx-common.h: Likewise.
2946         * config/cris/cris.h: Removed #if 0 clause.
2947         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2948         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2949         argument.
2950         (ix86_sol10_return_in_memory): Likewise.
2951         (ix86_i386elf_return_in_memory): New.
2952         (ix86_i386interix_return_in_memory): New.
2953         * config/mt/mt-protos.h (mt_return_in_memory): New.
2954         * config/mt/mt.c: Likewise.
2955         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2956         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
2957         * config/bfin/bfin.h: Likewise.
2958         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2959         argument.
2960         * config/bfin/bfin.c: Likewise.
2961         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2962         * config/alpha/unicosmk.h: Likewise.
2963         * config/i386/cygming.h: Likewise.
2964         * config/iq2000/iq2000.h: Likewise.
2965         * config/mips/mips.h: Likewise.
2966         * config/mn10300/mn10300.h: Likewise.
2967         * config/rs6000/rs6000.h: Likewise.
2968         * config/score/score.h: Likewise.
2969         * config/spu/spu.h: Likewise.
2970         * config/v850/v850.h: Likewise.
2971         * defaults.h: Likewise.
2972         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2973         * expr.c (emit_block_move): Adjust use of
2974         OUTGOING_REG_PARM_STACK_SPACE.
2975         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2976         OUTGOING_REG_PARM_STACK_SPACE.
2977         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2978
2979 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
2980
2981         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2982         on OMP_RETURN for OMP_FOR.
2983
2984         PR debug/35896
2985         * dwarf2out.c (dw_expand_expr, common_check): Removed.
2986         (fortran_common): New function.
2987         (gen_variable_die): Call fortran_common instead of common_check,
2988         adjust for it returning tree instead of rtx.  Formatting.
2989
2990 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
2991
2992         PR rtl/7335
2993         PR rtl/33826
2994         * see.c (see_copy_insn): Copy new pure const attributes for new call.
2995         * c-decl.c (merge_decls): Ditto.
2996         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2997         to RTL_CONST_OR_PURE_CALL_P.
2998         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2999         Initialized DECL_LOOPING_CONST_PURE.
3000         (process_call_operands): Set tree_side_effects properly.
3001         * tree.h (TREE_READONLY_DECL_P): Removed.
3002         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3003         (DECL_LOOPING_OR_CONST_P): New macro.
3004         (struct tree_function_decl): Added looping_const_or_pure_p.
3005         (ECF_*) Renumbered.
3006         (ECF_LOOPING_OR_CONST_P): New macro.
3007         * rtlanal.c (pure_const_p): Removed.
3008         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3009         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3010         to RTL_CONST_CALL_P.
3011         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3012         (check_decl, check_tree, check_call, scan_function): Initialize
3013         looping.
3014         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3015         (static_execute): Set looping true for recursive functions.
3016         Undo setting state to IPA_NEITHER for recursive functions.
3017         * cse.c (cse_insn): 
3018         * ifcvt.c (noce_can_store_speculate_p): Changed
3019         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3020         RTL_CONST_OR_PURE_CALL_P.
3021         * dse.c (scan_insn): Ditto.
3022         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3023         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3024         RTL_CONST_OR_PURE_CALL_P.
3025         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3026         pure_call_p to RTL_CONST_CALL_P.
3027         * gimplify.c (gimplify_call_expr): Clear side effects for
3028         non-looping pure and constant calls.
3029         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3030         (flags_from_decl_or_type): Set ecf flags from decl flags.
3031         (initialize_argument_information): Turn off
3032         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3033         Change const to pure if callee_copies is true rather than just
3034         turning off const.
3035         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3036         way of marking pure calls.
3037         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3038         Remove hack that was supposed to fix pr7335 and remove old
3039         way of marking pure calls.
3040         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3041         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3042         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3043         RTL_CONST_OR_PURE_CALL_P.
3044         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3045         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3046         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3047         * sched-deps.c (schedule_analyze): Ditto.
3048         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3049         return_val field of calls to represent pure and const function info.
3050         (CONST_OR_PURE_CALL_P): Deleted macro.
3051         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3052         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3053         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3054         TREE_READONLY.
3055         * tree-optimize.c (execute_fixup_cfg): Added test for
3056         ECF_LOOPING_CONST_OR_PURE.
3057         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3058         DECL_PURE_P.
3059         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3060         effects for looping pure or const calls.
3061         (verify_gimple_expr): Added verification code. 
3062         * config/alpha/alpha.c (alpha_legitimize_address,
3063         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3064         RTL_CONST_CALL_P.
3065         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3066         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3067         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3068         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3069         RTL_CONST_OR_PURE_CALL_P.
3070         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3071         and const calls to be deleted.
3072
3073 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3074
3075         PR target/35714
3076         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3077         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3078         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3079         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3080         to handle nonimmediate operands.
3081         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3082         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3083         to handle nonimmediate operands.
3084         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3085         (mmx_pmulhrwv4hi3): New expander.  Use
3086         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3087         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3088         (sse2_umulv1siv1di3): New expander.  Use
3089         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3090         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3091         (mmx_eq<mode>3): New expander.  Use
3092         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3093         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3094         (mmx_uavgv8qi3): New expander.  Use
3095         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3096         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3097         (mmx_uavgv4hi3): New expander.  Use
3098         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3099
3100         * config/i386/sse.md
3101         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3102         to handle nonimmediate operands.
3103         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3104         to handle nonimmediate operands.
3105         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3106         to handle nonimmediate operands.
3107         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3108         to handle nonimmediate operands.
3109         (sse2_unpckhpd_exp): New expander.  Use
3110         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3111         (sse2_unpcklpd_exp): New expander.  Use
3112         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3113         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3114         to handle nonimmediate operands.
3115         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3116         to handle nonimmediate operands.
3117         (*sse2_<plusminus_insn><mode>3): Rename from
3118         sse2_<plusminus_insn><mode>3 insn pattern.
3119         (sse2_<plusminus_insn><mode>3): New expander.  Use
3120         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3121         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3122         (sse2_umulv2siv2di3): New expander.  Use
3123         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3124         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3125         (sse4_1_mulv2siv2di3): New expander.  Use
3126         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3127         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3128         (sse2_pmaddwd): New expander.  Use
3129         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3130         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3131         (sse2_eq<mode>3): New expander.  Use
3132         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3133         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3134         (sse4_1_eqv2di3): New expander.  Use
3135         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3136         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3137         (sse2_uavgv16qi3): New expander.  Use
3138         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3139         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3140         (sse2_uavgv16qi3): New expander.  Use
3141         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3142         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3143         (sse2_uavgv8hi3): New expander.  Use
3144         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3145         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3146         (ssse3_pmulhrswv8hi3): New expander.  Use
3147         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3148         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3149         (ssse3_pmulhrswv4hi3): New expander.  Use
3150         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3151
3152         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3153         (<sse>_vmmul<mode>3): Ditto.
3154         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3155         (divv2df3): Ditto.
3156         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3157         (ssse3_pmaddubsw): Ditto.
3158
3159         * config/i386/i386.c (struct_builtin_description)
3160         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3161         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3162         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3163         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3164         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3165         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3166         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3167         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3168         (ix86_fixup_binary_operands): Assert that src1
3169         and src2 must have the same mode when swapped.
3170         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3171         and ix86_binary_operator_ok.  Do not force operands in registers
3172         when optimizing.
3173
3174 2008-05-07  Jan Hubicka  <jh@suse.cz>
3175
3176         * cgraph.c (dump_cgraph_node): Update.
3177         * cgraph.h (cgraph_local_info): Break out inline summary.
3178         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3179         hook.
3180         * ipa-inline (inline_summary): New accestor function.
3181         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3182         cgraph_decide_inlining, compute_inline_parameters): Update.
3183         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3184
3185 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3186
3187         Cleanup ColdFire scheduling support and add V4 pipeline model.
3188
3189         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3190         (define_attr cpu): Add cfv4 value.
3191         (define_attr type, define_attr type1): Merge into a single 'type'
3192         attribute.  Update all uses.
3193         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3194         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3195         Update all uses.
3196         (define_attr opx_mem, define_attr opy_mem): Remove.
3197         (define_attr op_mem): Clean up, update comment.
3198         (define_attr size): Use specific values instead of general int.
3199         (define_attr guess, define_attr split): Remove.  Update all uses.
3200         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3201         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3202         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3203         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3204         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3205         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3206         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3207         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3208         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3209         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3210         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3211         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3212         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3213         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3214         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3215         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3216         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3217         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3218         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3219         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3220         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3221         Update or set attributes.
3222         (stack_tie): New fake instruction.
3223
3224         * config/m68k/m68k.h (TUNE_CFV4): New macro.
3225         (m68k_sched_attr_size): Update declaration.
3226         (m68k_sched_attr_type2): Remove.
3227         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3228         Declare new bypass predicates.
3229
3230         * config/m68k/m68k.c (m68k_sched_issue_rate,
3231         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3232         implementations.
3233         (TARGET_SCHED_ISSUE_RATE,
3234         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3235         (override_options): Handle scheduling for ColdFire V4 core.
3236         (m68k_expand_prologue): Emit stack_tie.
3237         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3238         'OP_TYPE_FPN'.  Update all uses.
3239         (sched_guess_p): Remove.
3240         (sched_address_type): Handle symbolic addresses.
3241         (sched_get_operand): New static function.
3242         (sched_operand_type): Merge into sched_attr_op_type.
3243         (sched_attr_op_type): Handle FP registers, handle quick constants,
3244         update.
3245         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3246         (m68k_sched_attr_size): Update.  Move logic to ...
3247         (sched_get_attr_size_int): New static function.
3248         (sched_get_opxy_mem_type): New static function.
3249         (m68k_sched_attr_op_mem): Update.
3250         (m68k_sched_attr_type2): Remove.
3251         (sched_cfv4_bypass_data): New static variable.
3252         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3253         (m68k_sched_issue_rate): Implement scheduler hook.
3254         (struct _sched_ib: enabled_p): New field.
3255         (m68k_sched_variable_issue): Update.  Handle V4.
3256         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3257         sched_dump_class_func_t, sched_dump_split_class,
3258         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3259         sched_dump_dfa_class, m68k_sched_dump): Remove.
3260         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3261         hook.
3262         (m68k_sched_init_global): Remove statisctics dumping, introduce
3263         sanity check that all instructions have pipeline reservations.  Handle
3264         ColdFire V4 core.
3265         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3266         Handle ColdFire V4 core.
3267         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3268         New static functions.
3269         (m68k_sched_address_bypass_p): New bypass predicate.
3270         (sched_get_indexed_address_scale): New static function.
3271         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3272
3273         * cf.md: Update comments.
3274         (define_attr type2): Remove.  Use 'type' attribute instead.
3275         Update all uses.
3276         (cf_ib): Rename to cfv123_ib.  Update all uses.
3277         (cf_oep): Rename to cfv123_oep.  Update all uses.
3278         (cf_chr): Rename to cfv123_chr.  Update all uses.
3279         (cf_mem): Rename to cfv123_mem.  Update all uses.
3280         (cf_mac): Move to more appropriate place.
3281         (cfv123_guess): New automaton and cpu_unit.
3282         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3283         Update uses of 'size' attribute.  Handle before reload scheduling.
3284         (cfv123_guess): New dummy reservation for unhandled instructions.
3285         (cfv4_*): Pipeline description of ColdFire V4 core.
3286         (ignore): New reservation to handle 'ignore' type.
3287
3288 2008-05-07  Ian Lance Taylor  <iant@google.com>
3289
3290         PR middle-end/36013
3291         * gimplify.c (find_single_pointer_decl_1): Don't look through
3292         indirections.
3293         (find_single_pointer_decl): Adjust comments.
3294
3295 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3296
3297         PR middle-end/36137
3298         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3299         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3300
3301         PR middle-end/36106
3302         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3303         integral type rather than floating point, then VIEW_CONVERT_EXPR
3304         to the floating point type.
3305
3306 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3307
3308         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3309         TFmode op0 to register.
3310
3311 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
3312
3313         * c-decl.c (grokdeclarator): Comment typo.
3314
3315 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
3316
3317         * tree-flow.h: Remove prototype for computed_goto_p.
3318         * tree-cfg.c (computed_goto_p): Make static.
3319
3320 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3321
3322         PR target/35657
3323         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
3324         (contains_aligned_value_p): This.  Handle _Decimal128.
3325         (ix86_function_arg_boundary): Only align _Decimal128 to its
3326         natural boundary and handle it properly.
3327
3328 2008-05-06  Martin Jambor  <mjambor@suse.cz>
3329
3330         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3331         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3332         (ipcp_method_set_orig_node): Removed.
3333         (ipcp_cval_get_cvalue_type): Removed.
3334         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3335         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3336         (ipcp_cval_set_cvalue_type): Removed.
3337         (ipcp_cval_get_cvalue): Removed.
3338         (ipcp_cval_set_cvalue): Removed.
3339         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3340         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3341         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3342         (ipcp_cval_meet): Renamed to ipa_lattice_meet
3343         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3344         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3345         (ipcp_get_ith_lattice): Changed parameters.
3346         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3347         (ipcp_lattice_from_jfunc): Changed parameters.
3348         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3349         (ipcp_method_cval_print): Added temporary variable info.
3350         (ipcp_redirect): Removed already unused local variable caller.
3351         (ipcp_redirect): New temporary variable orig_callee_info
3352         (ipcp_redirect): Removed newly unused local variable callee.
3353         (ipcp_redirect): Removed (a bit confusing) local variable type.
3354         (ipcp_insert_stage): Added local variable info.
3355         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
3356         renamed too
3357         (ipcp_formal_create): Removed.
3358         (ipcp_method_cval_set): Removed.
3359         (ipcp_propagate_stage): Renamed lattice variables.
3360         (ipcp_method_cval_set_cvalue_type): Removed.
3361         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3362         (ipcp_print_all_lattices): Changed printed strings to refer to 
3363         lattices rather than cvals.
3364         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3365         (ipcp_propagate_const): Changed formal parameters.
3366         (build_const_val): Changed formal parameters.
3367         (ipcp_insert_stage): Removed useless variable cvalue
3368         (build_const_val): Changed formal parameters.
3369         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3370         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3371         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3372         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
3373         (ipcp_print_func_profile_counts): Changed string from "method" to 
3374         "function"
3375         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
3376         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
3377         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
3378         (ipcp_structures_print): Renamed to ipcp_print_all_structures
3379         (ipcp_profile_print): Renamed to ipcp_print_profile_data
3380         (ipcp_lat_is_const): Changed parameters and made inline.
3381         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
3382         (ipcp_redirect): Renamed to ipcp_need_redirect_p
3383         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
3384         the predicate condition directly
3385         (ipcp_propagate_stage): Added local variable args. Removed local
3386         variable callee.  (Both are mere code simplifications.)
3387         (ipcp_method_dont_insert_const): Renamed to
3388         ipcp_node_not_modifiable_p.
3389         (ipcp_node_not_modifiable_p): Made inline.
3390         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
3391         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
3392         (ipcp_print_all_lattices): Removed variable cvalue
3393         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
3394         Updated comments.
3395
3396 2008-05-06  Olivier Hainque  <hainque@adacore.com>
3397
3398         * tree-sra.c (try_instantiate_multiple_fields): Early return
3399         if field has POINTER_TYPE.
3400
3401 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
3402
3403         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
3404         by using 'q' specifier for instruction.
3405         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
3406
3407 2008-05-06  Anatoly Sokolov <aesok@post.ru>
3408
3409         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3410         Change mode of zero_extract from QImode to HImode.
3411         (sign bit tests peepholes): (Ditto.).
3412
3413 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
3414
3415         * config/i386/mmx.md: Remove double backslashes from asm templates.
3416         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
3417         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3418         to handle nonimmediate operands.
3419         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
3420         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3421         to handle nonimmediate operands.
3422         (*mmx_<code>v2sf3_finite): New insn pattern.
3423         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
3424         (mmx_<code>v2sf3): New expander.  Use
3425         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3426         (mmx_<plusminus_insn><mode>3): New expander.  Use
3427         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3428         (*mmx_<plusminus_insn><mode>3): New insn pattern.
3429         (mmx_add<mode>3): Removed.
3430         (mmx_ssadd<mode>3): Ditto.
3431         (mmx_usadd<mode>3): Ditto.
3432         (mmx_sub<mode>3): Ditto.
3433         (mmx_sssub<mode>3): Ditto.
3434         (mmx_ussub<mode>3): Ditto.
3435         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
3436         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
3437         to handle nonimmediate operands.
3438         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
3439         insn pattern.
3440         (mmx_smulv4hi3_highpart): New expander.  Use
3441         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3442         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
3443         insn pattern.
3444         (mmx_umulv4hi3_highpart): New expander.  Use
3445         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3446         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
3447         (mmx_<code>v4hi3): New expander.  Use
3448         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3449         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
3450         (mmx_<code>v8qi3): New expander.  Use
3451         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3452         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
3453         (mmx_<code><mode>3): New expander.  Use
3454         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3455
3456 2008-05-05  Jan Hubicka  <jh@suse.cz>
3457
3458         PR tree-optimization/36118
3459         * passes.c (pass_init_dump_file): Fix dump header.
3460
3461 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3462
3463         PR middle-end/36141
3464         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
3465         VCE for function decls.
3466
3467 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3468
3469         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
3470
3471 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3472
3473         * config/i386/i386.md (sat_plusminus): New.
3474         (plusminus_insn): Likewise.
3475         (plusminus_mnemonic): Likewise.
3476         (addsub): Removed.
3477         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
3478         (*<addsub><mode>3_cc_overflow): Renamed to ...
3479         (*<plusminus_insn><mode>3_cc_overflow): This.
3480         (*<addsub>si3_zext_cc_overflow): Renamed to ...
3481         (*<plusminus_insn>si3_zext_cc_overflow): This.
3482
3483         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
3484         (<plusminus_insn><mode>3): This.
3485         (*<addsub><mode>3): Renamed to ...
3486         (*<plusminus_insn><mode>3): This.
3487         (<sse>_vm<addsub><mode>3): Renamed to ...
3488         (<sse>_vm<plusminus_insn><mode>3): This.
3489         (sse3_h<addsub>v4sf3): Renamed to ...
3490         (sse3_h<plusminus_insn>v4sf3): This.
3491         (sse3_h<addsub>v2df3): Renamed to ...
3492         (sse3_h<plusminus_insn>v2df3): This.
3493         (<plusminus_insn><mode>3): New.
3494         (*<plusminus_insn><mode>3): Likewise.
3495         (sse2_<plusminus_insn><mode>3): Likewise.
3496         (add<mode>): Removed.
3497         (*add<mode>3): Likewise.
3498         (sse2_ssadd<mode>3): Likewise.
3499         (sse2_usadd<mode>3): Likewise.
3500         (sub<mode>3): Likewise.
3501         (*sub<mode>3): Likewise.
3502         (sse2_sssub<mode>3): Likewise.
3503         (sse2_ussub<mode>3): Likewise.
3504
3505 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
3506
3507         * gthr-single.h: Add in required interface elements as per gthr.h.
3508         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
3509         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
3510         Generalize UNUSED macro. 
3511         (__gthread_once): Add.
3512         (__gthread_key_create): Add.
3513         (__gthread_key_delete): Add.
3514         (__gthread_getspecific): Add.
3515         (__gthread_setspecific): Add.
3516         
3517 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
3518
3519         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
3520         the same size types for the indirect reference on the rhs, then
3521         create a VCE.
3522
3523 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
3524
3525         * config/i386/i386.md
3526         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
3527         one insn template instead of template series.
3528         (*xordi_1_rex64): Ditto.
3529         (*xordi_2_rex64): Ditto.
3530
3531 2008-05-05  Ira Rosen  <irar@il.ibm.com>
3532
3533         PR tree-optimization/36119
3534         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
3535         in case of SLP.
3536
3537 2008-06-04  Jan Hubicka  <jh@suse.cz>
3538
3539         tree-optimization/36100
3540         * tree-pass.h (pass_O0_always_inline): Declare.
3541         * ipa-inline.c (inline_transform): Remove dead code.
3542         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3543         pass_O0_always_inline): New.
3544         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
3545
3546 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
3547
3548         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
3549         mnemonic in this_param move for TARGET_64BIT.
3550
3551 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
3552
3553         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
3554         (*strmovsi_rex_1): Ditto.
3555         (*strsetsi_1): Ditto.
3556         (*strsetsi_rex_1): Ditto.
3557
3558         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
3559         adddicc expanders using SWI mode iterator.
3560
3561 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3562
3563         PR target/36121
3564         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3565         argument handling.
3566
3567 2008-05-04  David S. Miller  <davem@davemloft.net>
3568
3569         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
3570         (sparc*-*-linux*): Use linux.h in tm_file.
3571         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
3572         compiler defaulting to 32-bit.
3573         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
3574         no longer needed.
3575         * config/sparc/linux.h: Remove definitions now obtained
3576         properly from linux.h
3577         * config/sparc/linux64.h: Likewise.
3578         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
3579         don't want this setting for 32-bit builds in a biarch compiler.
3580         * doc/install.texi: Add sparc-linux to list of targets
3581         supporting --enable-targets=all.
3582
3583 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
3584
3585         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
3586
3587 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
3588
3589         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
3590         after V4SI_FTYPE_V8HI.
3591         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
3592         case V4SI_FTYPE_V2DF.
3593
3594 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
3595
3596         * doc/invoke.texi (max-flow-memory-locations): Removed.
3597         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
3598         
3599 2008-05-03  Richard Guenther  <rguenther@suse.de>
3600
3601         PR middle-end/34973
3602         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
3603
3604 2008-05-02  David S. Miller  <davem@davemloft.net>
3605
3606         * config.gcc (need_64bit_hwint): Document libcpp dependency.
3607
3608 2008-05-02  Simon Baldwin <simonb@google.com>
3609
3610         PR bootstrap/36108
3611         * c-common.h (warn_array_subscript_range): Removed.
3612         * c-common.c (warn_array_subscript_range): Ditto.
3613         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
3614         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
3615
3616 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3617
3618         * config/i386/i386.c (ix86_special_builtin_type): New.
3619         (bdesc_special_args): Likewise.
3620         (ix86_expand_special_args_builtin): Likewise.
3621         (ix86_init_mmx_sse_builtins): Updated.
3622         (ix86_expand_builtin): Updated.
3623         (ix86_expand_store_builtin): Removed.
3624         (ix86_expand_unop_builtin): Likewise.
3625
3626         * config/i386/mm3dnow.h (__v2sf): Moved to ...
3627         * config/i386/mmintrin.h (__v2sf): Here.
3628
3629         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
3630         const __v2sf.
3631         (_mm_loadl_pi): Likewise.
3632         (_mm_storeh_pi): Replace __v2si with __v2sf.
3633         (_mm_storel_pi): Likewise.
3634
3635         * doc/extend.texi: Correct __builtin_ia32_loadhps,
3636         __builtin_ia32_loadlps, __builtin_ia32_storehps,
3637         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
3638         __builtin_ia32_loadlpd.
3639
3640 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
3641
3642         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
3643         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
3644         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
3645         (ix86_init_mmx_sse_builtins): Updated.
3646         (ix86_expand_args_builtin): Likewise.
3647         (ix86_expand_builtin): Likewise.
3648         (ix86_expand_unop1_builtin): Renamed to ...
3649         (ix86_expand_unop_vec_merge_builtin): This.
3650
3651 2008-05-01  Jan Hubicka  <jh@suse.cz>
3652
3653         PR bootstrap/36100
3654         * ipa-inline.c (inline_generate_summary): Make static.
3655         (inline_transform): Do not call inlining at -O0; make static.
3656         * passes.c (execute_todo): Add sanity check.
3657         (execute_one_ipa_transform_pass): Execute proper flags.
3658
3659 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
3660
3661         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
3662         (DECL_NONADDRESSABLE_P): Likewise.
3663         * alias.c (record_component_aliases): Fix comment.
3664
3665 2008-05-01  Simon Baldwin <simonb@google.com>
3666
3667         * c-common.h (warn_array_subscript_range): New function.
3668         * c-common.c (warn_array_subscript_range): Ditto.
3669         * tree-vrp.c (check_array_ref): Corrected code to agree with
3670         comment, ignoring only arrays of size 0 or size 1.
3671         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
3672
3673 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3674
3675         * config/i386/i386.c (ix86_builtin_type): Replace
3676         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
3677         (bdesc_args): Updated.
3678         (ix86_init_mmx_sse_builtins): Likewise.
3679         (ix86_expand_args_builtin): Likewise.
3680
3681         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
3682         with __v1di.
3683
3684         * doc/extend.texi: Correct __builtin_ia32_palignr.
3685
3686 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3687
3688         PR target/36095
3689         * config/i386/i386.c (bdesc_crc32): Removed.
3690         (ix86_expand_crc32): Likewise.
3691         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
3692         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
3693         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
3694         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
3695         UINT_FTYPE_UINT_UCHAR.
3696         (bdesc_args): Updated. Add crc32 builtins.
3697         (ix86_init_mmx_sse_builtins): Updated.
3698         (ix86_expand_args_builtin): Updated to support subreg.
3699
3700         * doc/extend.texi: Correct __builtin_ia32_crc32di.
3701
3702 2008-05-01  Jan Hubicka  <jh@suse.cz>
3703
3704         * tree-pass.h (opt_pass): Add IPA_PASS.
3705         (varpool_node, cgraph_node): Forward declare.
3706         (ipa_opt_pass): Define.
3707         (pass_ipa_inline): Turn into ipa_opt_pass.
3708         (pass_apply_inline): Remove.
3709         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
3710         (apply_inline): Turn into ....
3711         (inline_transform): ... this one.
3712         (inline_generate_summary): New function.
3713         (pass_apply_inline): Remove.
3714         * function.h (ipa_opt_pass): Forward declare structure; typedef;
3715         vector.
3716         (struct function): Add ipa_transforms_to_apply.
3717         * passes.c (register_one_dump_file): Work on IPA_PASS.
3718         (init_optimization_passes): Remove pass_inline_parameters and
3719         pass_apply_inline.
3720         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
3721         (execute_one_pass) ... here; apply transforms when possible.
3722         (add_ipa_transform_pass, execute_ipa_summary_asses,
3723         execute_one_ipa_transform_pass): New.
3724         (execute_ipa_pass_list): Update for IPA_PASS type.
3725
3726 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3727
3728         * config/i386/i386.c (ix86_builtin_type): Add
3729         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3730         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3731         (bdesc_args): Add SSE4a builtins.
3732         (ix86_init_mmx_sse_builtins): Updated.
3733         (ix86_expand_args_builtin): Likewise.
3734         (ix86_expand_builtin): Likewise.
3735
3736 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
3737
3738         * config/i386/i386.c (ix86_builtin_type): Add
3739         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3740         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3741         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3742         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3743         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3744         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3745         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3746         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3747         and DI_FTYPE_DI_DI_INT.
3748         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3749         (ix86_init_mmx_sse_builtins): Updated.
3750         (ix86_expand_args_builtin): Likewise.
3751         (ix86_expand_builtin): Likewise.
3752         (ix86_expand_binop_imm_builtin): Removed.
3753
3754         * doc/extend.texi: Correct __builtin_ia32_palignr128.
3755
3756 2008-04-30  Richard Guenther  <rguenther@suse.de>
3757
3758         PR tree-optimization/32921
3759         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3760
3761 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3762
3763         * config/arm/arm.c (arm_unwind_emit): Use
3764         crtl->all_throwers_are_sibcalls instead of
3765         cfun->all_throwers_are_sibcalls.
3766         (arm_output_fn_unwind): Likewise.
3767         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3768         instead of cfun->uses_pic_offset_table.
3769         (frv_expand_prologue): Likewise.
3770         (frv_frame_pointer_required): Likewise.
3771         (frv_expand_fdpic_call): Likewise.
3772         (frv_emit_movsi): Likewise.
3773         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3774         cfun->returns_pcc_struct instead of
3775         current_function_returns_pcc_struct.
3776         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3777         instead of cfun->calls_eh_return.
3778         (m32c_pushm_popm): Likewise.
3779         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3780         "extern" declaration.
3781
3782 2008-04-30  Richard Guenther  <rguenther@suse.de>
3783
3784         PR tree-optimization/21636
3785         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3786         constant address.
3787         (evaluate_stmt): Print the likely value.
3788         (ccp_visit_stmt): Avoid excessive vertical spacing.
3789
3790 2008-04-30  Rafael Espindola  <espindola@google.com>
3791
3792         * builtins.c (fold_call_expr): Return realret.
3793         * tree-ssa-threadedge.c
3794         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3795         __builtin_object_size.
3796
3797 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
3798
3799         * gcc.c (wrapper_string): New variable.
3800         (insert_wrapper): New function.
3801         (execute): New option -wrapper.
3802         * doc/invoke.texi (Overall Options): New driver option -wrapper.
3803
3804 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
3805
3806         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3807         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3808         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3809         from...
3810         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
3811         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3812         config/rs6000/e500crtres64gprctr.asm,
3813         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3814         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3815         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3816         config/rs6000/e500crtsav64gprctr.asm,
3817         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3818         config/rs6000/e500crtsavg64gprctr.asm: New files.
3819         * config/rs6000/t-ppccomm: Add build rules for new files.
3820         (LIB2FUNCS_STATIC_EXTRA): Add new files.
3821         * config/rs6000/t-netbsd: Add build rules for new files.
3822         (LIB2FUNCS_STATIC_EXTRA): New variable.
3823         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3824         (CRTSAVRES_DEFAULT_SPEC): Likewise.
3825         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3826
3827 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
3828
3829         * config/i386/i386.c (ix86_builtin_type): Add
3830         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3831         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3832         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3833         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3834         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3835         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3836         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3837         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3838         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3839         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3840         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3841         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3842         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3843         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3844         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3845         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3846         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3847         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3848         V1DI_FTYPE_V2SI_V2SI.
3849         (bdesc_2arg): Moved to ...
3850         (bdesc_args): Here.
3851         (ix86_init_mmx_sse_builtins): Updated.
3852         (ix86_expand_args_builtin): Updated.  Take a pointer
3853         to const struct builtin_description.  Handle comparison
3854         builtin functions.
3855         (ix86_expand_sse_compare): Take a new argument for swapping operands.
3856         (ix86_expand_builtin): Updated.
3857
3858         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3859         (ssse3_pmaddubsw128): This.
3860         (ssse3_pmaddubswv4hi3): Renamed to ...
3861         (ssse3_pmaddubsw): This.
3862
3863         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3864         (__builtin_ia32_packssdw128): Likewise.
3865         (__builtin_ia32_packuswb128): Likewise.
3866         (__builtin_ia32_pmaddubsw): Likewise.
3867         (__builtin_ia32_pmaddubsw128): Likewise.
3868
3869 2008-04-30  Richard Guenther  <rguenther@suse.de>
3870
3871         PR tree-optimization/14847
3872         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3873         (recognize_bits_test): Use it.
3874         (recognize_single_bit_test): Likewise.
3875
3876 2008-04-30  Martin Jambor  <mjambor@suse.cz>
3877
3878         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3879         instead of setting number of formal parameters to zero.
3880         (ipcp_init_stage): Do not set the number of actual parameters to zero 
3881         either.
3882         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3883         which are called with variable number of arguments.
3884         (ipcp_insert_stage): Explicitely skipping all nodes which are
3885         called with variable number of arguments.
3886         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
3887         number of parameters.
3888
3889         * ipa-prop.h (struct ipa_node_params): Added flag
3890         called_with_var_arguments
3891         (ipa_set_param_count): Added.  Changed sole setter to use it.
3892         (ipa_get_param_count): Added.  All readers of param_count
3893         converted to use it instead.
3894         (ipa_set_called_with_variable_arg): Added.
3895         (ipa_is_called_with_var_arguments): Added.
3896         (ipa_get_ith_param): Added.  All readers of param_decls converted
3897         to use it instead.
3898         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
3899         changed to use it. 
3900         (ipa_get_cs_argument_count): Added, all readers of argument_count
3901         changed to cal it.
3902         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
3903         to use it.
3904         
3905         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3906         (struct ipcp_lattice): Renamed cval_type to type
3907         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3908
3909         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3910         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3911         (ipcp_insert_stage): Changed the type of variable cvalue to tree
3912         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3913         (build_const_val): Changed the type of parameter cvalue to tree
3914         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3915         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3916         
3917         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
3918         constant 
3919
3920         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3921         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3922         (ipa_add_method): Renamed to ipa_push_func_to_list
3923         (ipa_remove_method): Renamed to ipa_pop_func_from_list
3924         (ipa_callsite_param_count): Removed.
3925         (ipa_callsite_param_count_set): Removed.
3926         (ipa_callsite_param): Removed.
3927         (ipa_callsite_callee): Removed.
3928         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3929         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3930         (ipa_method_formal_count): Removed.
3931         (ipa_method_formal_count_set): Removed.
3932         (ipa_method_get_tree): Removed.
3933         (ipa_method_tree_map_create): Removed.
3934         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3935         (ipa_create_param_decls_array): Creates the array itself
3936         (ipa_create_param_decls_array): Temporary variable info instead of 
3937         a few dereferences.
3938         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3939         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3940         (get_type): Removed.
3941         (ipa_jf_get_info_type): Removed.
3942         (ipa_node_create): Renamed to ipa_create_node_params
3943         (ipa_free): Renamed to ipa_free_all_node_params
3944         (ipa_nodes_create): Renamed to ipa_create_all_node_params
3945         (ipa_edges_create): Renamed to ipa_create_all_edge_args
3946         (ipa_edges_free): Renamed to ipa_free_all_edge_args
3947         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3948         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
3949         ipa_free_all_edge_args
3950         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3951         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3952         (ipa_create_methodlist_node): Removed.
3953         (ipa_methodlist_method): Removed.
3954         (ipa_methodlist_method_set): Removed.
3955         (ipa_methodlist_next_method): Removed.
3956         (ipa_methodlist_next_method_set): Removed.
3957         (ipa_method_is_modified): Removed.
3958         (ipa_method_modify_create): Removed.
3959         (ipa_method_modify_init): Temporary variable info instead of a few 
3960         dereferences.
3961         (ipa_detect_param_modifications): Temporary variable info instead of 
3962         a few dereferences.
3963         (ipa_compute_jump_functions): Temporary variable info instead of 
3964         a few dereferences.
3965         (ipa_method_modify_set): Removed.
3966         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3967         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
3968         than craph_node as the first parameter.
3969         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3970         (ipa_method_modify_init): Removed.
3971         (ipa_compute_jump_functions): Added a temp variable instead of 
3972         repeatadly dereferencing the cgraph_edge.aux pointer
3973         (ipa_callsite_param_set_type): Removed.
3974         (ipa_compute_jump_functions): i renamed to index and moved to 
3975         an inner block
3976         (ipa_callsite_param_set_info_type_formal): Removed.
3977         (ipa_callsite_param_set_info_type): Removed.
3978         (ipa_callsite_param_map_create): Removed.
3979         (ipa_callsite_tree): Removed.
3980         (ipa_callsite_caller): Removed.
3981         (ipa_pop_func_from_list): return_method removed to return_func
3982
3983         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3984         prefixed all values with IPA_. Changed all users.
3985         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
3986         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
3987         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
3988         (union parameter_info): Renamed to jump_func_value.
3989         (union jump_func_value): Renamed value to constant
3990         (struct ipa_jump_func): Renamed info_type to value
3991         (struct ipa_node): Renamed to ipa_node_params
3992         (struct ipa_node_params): Renamed ipa_arg_num to param_count
3993         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3994         (struct ipa_node_params): Renamed ipa_mod to modified_flags
3995         (struct ipa_edge): Renamed to ipa_edge_args
3996         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3997         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3998         (struct ipa_methodlist): Renamed to ipa_func_list
3999         (struct ipa_func_list): method_p renamed to node, next_method
4000         renamed to next
4001         (ipa_methodlist_p): Removed, switched all users to struct pointer
4002         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4003
4004 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
4005
4006         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4007         (rs6000_emit_epilogue): Use backchain to restore only when we
4008         have a large frame.  Make use of frame pointer to restore if we
4009         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4010
4011 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
4012
4013         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4014         Add mode to zero_extract.
4015         (sign bit tests peepholes): (Ditto.).
4016
4017 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4018
4019         * config/i386/i386.c (ix86_builtins): Replace Prescott New
4020         Instructions in comments with SSE3.
4021         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
4022         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4023         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4024         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4025         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4026         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4027         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4028         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4029         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4030         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4031         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4032         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4033         (bdesc_sse_args): Renamed to ...
4034         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4035         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4036         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4037         IX86_BUILTIN_FABSQ.
4038         (bdesc_1arg): Moved to ...
4039         (bdesc_args): Here.
4040         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
4041         Instructions in comments with SSE3.
4042         (ix86_expand_sse_operands_builtin): Renamed to ...
4043         (ix86_expand_args_builtin): This.  Updated.
4044         (ix86_expand_unop1_builtin): Update comments.
4045         (ix86_expand_builtin): Updated.
4046
4047 2008-04-29  Richard Guenther  <rguenther@suse.de>
4048
4049         PR tree-optimization/36078
4050         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4051         Update virtual SSA form after cleaning up the CFG.
4052
4053 2008-04-29  Richard Guenther  <rguenther@suse.de>
4054
4055         PR middle-end/15255
4056         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4057
4058 2008-04-29  Richard Guenther  <rguenther@suse.de>
4059
4060         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4061         (compute_may_aliases): Do not call finalize_ref_all_pointers.
4062         (compute_flow_insensitive_aliasing): Do not treat
4063         PTR_IS_REF_ALL pointers special.
4064         (get_smt_for): Likewise.
4065         (may_alias_p): Re-structure.
4066         (is_escape_site): A ref-all pointer conversion is not an escape site.
4067         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4068         PTR_IS_REF_ALL pointers special.
4069         * tree-ssa-structalias.h (struct alias_info): Remove
4070         ref_all_symbol_mem_tag field.
4071         (PTR_IS_REF_ALL): Remove.
4072
4073 2008-04-29  Richard Guenther  <rguenther@suse.de>
4074
4075         PR middle-end/36077
4076         * fold-const.c (extract_muldiv_1): In combining division constants
4077         make sure to never overflow.
4078
4079 2008-04-29  Nick Clifton  <nickc@redhat.com>
4080
4081         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4082
4083 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4084
4085         PR bootstrap/35169
4086         * optc-gen.awk: Work around HP-UX/IA awk bug.
4087
4088 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
4089
4090         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4091         2008-04-25 commit.
4092
4093 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4094
4095         PR target/36073
4096         * config/i386/i386.md
4097         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4098         Change operand 1 predicate to nonimmediate_operand.
4099
4100 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
4101
4102         PR debug/36060
4103         * dwarf2out.c (struct die_struct): Mark as chain_circular through
4104         die_sub field.
4105         * gengtype.c (walk_type, write_func_for_structure): Handle
4106         chain_circular.
4107         * doc/gty.texi: Document chain_circular.
4108
4109 2008-04-28  Richard Guenther  <rguenther@suse.de>
4110
4111         PR tree-optimization/36066
4112         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4113         SCEV and loop.
4114
4115 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
4116
4117         PR target/36064
4118         * config/i386/i386.md
4119         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
4120         Use match_scratch instead of match_operand for operands 3 and 4.
4121
4122 2008-04-27  Richard Guenther  <rguenther@suse.de>
4123
4124         PR tree-optimization/18754
4125         PR tree-optimization/34223
4126         * tree-pass.h (pass_complete_unrolli): Declare.
4127         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4128         loop size before and after unconditionally of UL_NO_GROWTH in effect.
4129         Rewrite loop into loop closed SSA form if it is not already.
4130         (tree_unroll_loops_completely): Re-structure to iterate over
4131         innermost loops with intermediate CFG cleanups.
4132         Unroll outermost loops only if requested or the code does not grow
4133         doing so.
4134         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4135         loops are available.
4136         (tree_vectorize): Instead do so here.
4137         (tree_complete_unroll): Also unroll outermost loops.
4138         (tree_complete_unroll_inner): New function.
4139         (gate_tree_complete_unroll_inner): Likewise.
4140         (pass_complete_unrolli): New pass.
4141         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4142         uses outside of the loop.
4143         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4144         form if it is available.  
4145         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4146         * passes.c (init_optimization_passes): Schedule complete inner
4147         loop unrolling pass before the first CCP pass after final inlining.
4148
4149 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
4150
4151         * targhooks.h (default_emutls_var_fields,
4152         default_emutls_var_init): Declare.
4153         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4154         * target.h (struct gcc_target): Add struct emutls member.
4155         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4156         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4157         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4158         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4159         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4160         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4161         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4162         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4163         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4164         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4165         emit debug information.
4166         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4167         * varasm.c: Include targhooks.h.
4168         (emutls_object_section, emutls_tmpl_section): New.
4169         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4170         (EMUTLS_SEPARATOR): New.
4171         (prefix_name): New.
4172         (get_emutls_object_name): New.
4173         (default_emutls_var_fields): New, broken out of ...
4174         (get_emutls_object_type): ... here.  Adjust to use target hooks.
4175         (get_emutls_init_templ_addr): Adjust to use target hooks.
4176         (emutls_decl): Adjust to use target hooks.
4177         (emutls_finish): Likewise.
4178         (default_emutls_var_init): New, broken out of ...
4179         (assemble_variable): ... here.  Adjust to use target hooks.
4180         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4181         SECCAT_EMUTLS_TMPL.
4182         * c-common.c (handle_section_attribute): Prevent overriding
4183         sections for emulated tls with special sections.
4184         * config/i386/i386.c (x86_64_elf_select_section): Add
4185         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4186         (x86_64_elf_unique_section): Likewise.
4187         * config/vxworks.c: Include tree.h.
4188         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4189         (vxworks_override_options): Set TLS scheme.
4190         * doc/tm.texi (Emulated TLS): New node.
4191
4192 2008-04-26  Simon Baldwin <simonb@google.com>
4193
4194         PR c/35652
4195         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4196         with propagated string constants.
4197
4198 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
4199
4200         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4201         constraint for operand 2 when operand 0 is memory operand.
4202         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4203         operand 0 is memory operand.
4204         (fix_trunc<mode>_i387_with_temp): Ditto.
4205         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4206         operand 2 when operand 1 is memory operand.
4207         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4208         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4209         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4210         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4211         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4212         operands 2,3 and 4 when operand 1 is memory operand.
4213         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4214         is memory operand.
4215         (fistdi2_floor_with_temp): Ditto.
4216         (fist<mode>2_floor_with_temp): Ditto.
4217         (fistdi2_ceil_with_temp): Ditto.
4218         (fist<mode>2_ceil_with_temp): Ditto.
4219         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4220
4221 2008-04-26  David Daney  <ddaney@avtrex.com>
4222
4223         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4224         unspec_volitile.
4225         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4226         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4227         UNSPEC_UPDATE_GOT_VERSION): Renumber.
4228         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4229         (compare_and_swap_12): New insn.
4230         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4231         * config/mips/mips.c (mips_force_binary): New function.
4232         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4233         (mips_expand_compare_and_swap_12): New function.
4234         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4235
4236 2008-04-25  Jan Hubicka  <jh@suse.cz>
4237
4238         PR testsuite/35843
4239         * cfgexpand.c (pass_expand): Turn into RTL pass.
4240         * passes.c (execute_one_pass): Do pass typechecking after execution.
4241         * tree-pass.h (pass_expand): Turn into RTL pass.
4242
4243         * function.h (struct rtl_data): Move here fields
4244         accesses_prior_frames, calls_eh_return, saves_all_registers,
4245         has_nonlocal_goto, has_asm_statement, is_thunk,
4246         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4247         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4248         arg_pointer_save_area_init from struct function; turn into bool.
4249         (struct function): Move
4250         calls_eh_return, saves_all_registers, has_nonlocal_goto,
4251         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4252         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4253         tail_call_emit, arg_pointer_save_area_init
4254         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
4255         (current_function_returns_struct, current_function_returns_pcc_struct,
4256         current_function_calls_setjmp, current_function_calls_alloca,
4257         current_function_accesses_prior_frames,
4258         current_function_calls_eh_return, current_function_is_thunk,
4259         current_function_stdarg, current_function_profile,
4260         current_function_limit_stack, current_function_uses_pic_offset_table,
4261         current_function_uses_const_pool, current_function_has_nonlocal_label,
4262         current_function_saves_all_registers,
4263         current_function_has_nonlocal_goto,
4264         current_function_has_asm_statement): Remove accesor macros.
4265         * ra-conflict.c (global_conflicts): Update.
4266         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4267         (suitable_for_tail_call_opt_p): Update.
4268         * builtins.c (expand_builtin_return_addr): Update.
4269         (expand_builtin_setjmp_setup): Update.
4270         (expand_builtin_nonlocal_goto): Update.
4271         * final.c (final_start_function): Update.
4272         (profile_function): Update.
4273         (leaf_function_p): Update.
4274         (only_leaf_regs_used): Update.
4275         * df-scan.c (df_get_exit_block_use_set): Update.
4276         * dojump.c (clear_pending_stack_adjust): Update.
4277         * tree-stdarg.c (gate_optimize_stdarg): Update.
4278         * gimple-low.c (lower_function_body): Update.
4279         * global.c (compute_regsets): Update.
4280         (global_alloc): Update.
4281         * dwarf2out.c (dwarf2out_begin_prologue): Update.
4282         * expr.c (expand_assignment): Update.
4283         * dse.c (dse_step0): Update.
4284         (dse_step1): Update.
4285         * c-decl.c (store_parm_decls): Update.
4286         * local-alloc.c (combine_regs): Update.
4287         (find_free_reg): Update.
4288         * function.c (assign_parms_augmented_arg_list): Update.
4289         (assign_parm_find_data_types): Update.
4290         (assign_parms): Update.
4291         (allocate_struct_function): Update.
4292         (expand_function_start): Update.
4293         (expand_function_end): Update.
4294         (get_arg_pointer_save_area): Update.
4295         (thread_prologue_and_epilogue_insns): Update.
4296         (rest_of_match_asm_constraints): Update.
4297         * stor-layout.c (variable_size): Update.
4298         * gcse.c (gcse_main): Update.
4299         (bypass_jumps): Update.
4300         * gimplify.c (gimplify_function_tree): Update.
4301         * calls.c (emit_call_1): Update.
4302         (expand_call): Update.
4303         * bt-load.c (compute_defs_uses_and_gen): Update.
4304         * except.c (sjlj_assign_call_site_values): Update.
4305         (sjlj_emit_function_enter): Update.
4306         (can_throw_external): Update.
4307         (set_nothrow_function_flags): Update.
4308         (expand_builtin_unwind_init): Update.
4309         (expand_eh_return): Update.
4310         (convert_to_eh_region_ranges): Update.
4311         (output_function_exception_table): Update.
4312         * emit-rtl.c (gen_tmp_stack_mem): Update.
4313         * cfgexpand.c (expand_used_vars): Update.
4314         (tree_expand_cfg): Update.
4315         * cfgcleanup.c (rest_of_handle_jump): Update.
4316         * explow.c (allocate_dynamic_stack_space): Update.
4317         * varasm.c (assemble_start_function): Update.
4318         (force_const_mem): Update.
4319         (mark_constant_pool): Update.
4320         * tree-optimize.c (tree_rest_of_compilation): Update.
4321         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4322         * tree-cfg.c (notice_special_calls): Update.
4323         (is_ctrl_altering_stmt): Update.
4324         (tree_can_make_abnormal_goto): Update.
4325         (tree_purge_dead_abnormal_call_edges): Update.
4326         * config/alpha/predicates.md: Update.
4327         * config/alpha/alpha.c (alpha_sa_mask): Update.
4328         (alpha_sa_size): Update.
4329         (alpha_does_function_need_gp): Update.
4330         (alpha_expand_prologue): Update.
4331         (alpha_start_function): Update.
4332         (alpha_output_function_end_prologue): Update.
4333         (alpha_expand_epilogue): Update.
4334         * config/frv/frv.c (frv_stack_info): Update.
4335         (frv_expand_epilogue): Update.
4336         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4337         (s390_register_info): Update.
4338         (s390_frame_info): Update.
4339         (s390_init_frame_layout): Update.
4340         (s390_can_eliminate): Update.
4341         (save_gprs): Update.
4342         * config/spu/spu.c (spu_split_immediate): Update.
4343         (need_to_save_reg): Update.
4344         (spu_expand_prologue): Update.
4345         (spu_expand_epilogue): Update.
4346         * config/sparc/sparc.md: Update.
4347         * config/sparc/sparc.c (eligible_for_return_delay): Update.
4348         (sparc_tls_got): Update.
4349         (legitimize_pic_address): Update.
4350         (sparc_emit_call_insn): Update.
4351         (sparc_expand_prologue): Update.
4352         (output_return): Update.
4353         (print_operand): Update.
4354         (sparc_function_ok_for_sibcall): Update.
4355         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4356         * config/m32r/m32r.md: Update.
4357         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4358         (m32r_compute_frame_size): Update.
4359         (m32r_expand_prologue): Update.
4360         (m32r_expand_epilogue): Update.
4361         (m32r_legitimize_pic_address): Update.
4362         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4363         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4364         * config/i386/i386.c (ix86_frame_pointer_required): Update.
4365         (gen_push): Update.
4366         (ix86_save_reg): Update.
4367         (ix86_compute_frame_layout): Update.
4368         (ix86_expand_prologue): Update.
4369         (ix86_expand_epilogue): Update.
4370         * config/sh/sh.c (output_stack_adjust): Update.
4371         (calc_live_regs): Update.
4372         (sh5_schedule_saves): Update.
4373         (sh_expand_prologue): Update.
4374         (sh_expand_epilogue): Update.
4375         (sh_setup_incoming_varargs): Update.
4376         (sh_allocate_initial_value): Update.
4377         (sh_get_pr_initial_val): Update.
4378         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
4379         * config/sh/sh.md (label:): Update.
4380         * config/avr/avr.c (out_movhi_mr_r): Update.
4381         * config/crx/crx.h (enum): Update.
4382         * config/xtensa/xtensa.h (along): Update.
4383         * config/stormy16/stormy16.c Update.
4384         (xstormy16_compute_stack_layout): Update.
4385         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
4386         (fr30_expand_prologue): Update.
4387         * config/cris/cris.c (cris_conditional_register_usage): Update.
4388         (cris_reg_saved_in_regsave_area): Update.
4389         (cris_initial_frame_pointer_offset): Update.
4390         (cris_simple_epilogue): Update.
4391         (cris_expand_prologue): Update.
4392         (cris_expand_epilogue): Update.
4393         (cris_expand_pic_call_address): Update.
4394         (cris_asm_output_symbol_ref): Update.
4395         (cris_asm_output_label_ref): Update.
4396         * config/cris/cris.md Update.
4397         * config/iq2000/iq2000.c (compute_frame_size): Update.
4398         (iq2000_expand_epilogue): Update.
4399         * config/mt/mt.h (save_direction): Update.
4400         * config/mn10300/mn10300.c (mn10300_function_value): Update.
4401         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4402         (ia64_secondary_reload_class): Update.
4403         * config/m68k/m68k.c (m68k_save_reg): Update.
4404         (m68k_expand_prologue): Update.
4405         (m68k_expand_epilogue): Update.
4406         (legitimize_pic_address): Update.
4407         * config/rs6000/rs6000.c (rs6000_got_register): Update.
4408         (first_reg_to_save): Update.
4409         (first_altivec_reg_to_save): Update.
4410         (compute_vrsave_mask): Update.
4411         (compute_save_world_info): Update.
4412         (rs6000_stack_info): Update.
4413         (spe_func_has_64bit_regs_p): Update.
4414         (rs6000_ra_ever_killed): Update.
4415         (rs6000_emit_eh_reg_restore): Update.
4416         (rs6000_emit_allocate_stack): Update.
4417         (rs6000_emit_prologue): Update.
4418         (rs6000_emit_epilogue): Update.
4419         (rs6000_output_function_epilogue): Update.
4420         (output_profile_hook): Update.
4421         (rs6000_elf_declare_function_name): Update.
4422         * config/rs6000/rs6000.h (rs6000_args): Update.
4423         * config/rs6000/rs6000.md: Update.
4424         * config/mcore/mcore.c (mcore_expand_prolog): Update.
4425         * config/arc/arc.c (arc_output_function_epilogue): Update.
4426         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
4427         * config/darwin.c (machopic_function_base_name): Update.
4428         * config/score/score3.c (score3_compute_frame_size): Update.
4429         (rpush): Update.
4430         (rpop): Update.
4431         (score3_epilogue): Update.
4432         * config/score/score7.c (score7_compute_frame_size): Update.
4433         (score7_prologue): Update.
4434         (score7_epilogue): Update.
4435         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
4436         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4437         * config/arm/arm.c (use_return_insn): Update.
4438         (require_pic_register): Update.
4439         (arm_load_pic_register): Update.
4440         (arm_compute_save_reg0_reg12_mask): Update.
4441         (arm_compute_save_reg_mask): Update.
4442         (thumb1_compute_save_reg_mask): Update.
4443         (output_return_instruction): Update.
4444         (arm_output_function_prologue): Update.
4445         (arm_output_epilogue): Update.
4446         (arm_get_frame_offsets): Update.
4447         (arm_expand_prologue): Update.
4448         (thumb_pushpop): Update.
4449         (thumb_exit): Update.
4450         (thumb1_expand_prologue): Update.
4451         (thumb1_expand_epilogue): Update.
4452         (arm_unwind_emit): Update.
4453         (arm_output_fn_unwind): Update.
4454         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
4455         * config/arm/arm.md: Update.
4456         * config/pa/pa.md: Update.
4457         * config/pa/pa.c (legitimize_pic_address): Update.
4458         (compute_frame_size): Update.
4459         (hppa_expand_prologue): Update.
4460         (hppa_expand_epilogue): Update.
4461         (borx_reg_operand): Update.
4462         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
4463         (HARD_REGNO_RENAME_OK): Update.
4464         * config/mips/mips.c (mips_global_pointer): Update.
4465         (mips_save_reg_p): Update.
4466         (mips_compute_frame_info): Update.
4467         (mips_frame_pointer_required): Update.
4468         (mips_expand_prologue): Update.
4469         (mips_expand_epilogue): Update.
4470         (mips_can_use_return_insn): Update.
4471         (mips_reorg_process_insns): Update.
4472         * config/v850/v850.c (compute_register_save_size): Update.
4473         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
4474         * config/mmix/mmix.c (along): Update.
4475         (mmix_expand_epilogue): Update.
4476         * config/bfin/bfin.c (legitimize_pic_address): Update.
4477         (must_save_p): Update.
4478         (stack_frame_needed_p): Update.
4479         (add_to_reg): Update.
4480         (bfin_expand_prologue): Update.
4481         * stmt.c (expand_asm_operands): Update.
4482         * reload1.c (reload): Update.
4483         (init_elim_table): Update.
4484
4485 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
4486         
4487         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
4488         
4489 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
4490
4491         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
4492         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
4493         (mov<mode>): Removed.
4494         (*movv4sf_internal): Likewise.
4495         (*movv2df_internal): Likewise.
4496
4497 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
4498
4499         * config.gcc (crx-*-elf): Remove deprecation.
4500
4501 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
4502
4503         * config/i386/cygming-crtend.c (register_frame_ctor): Register
4504         __gcc_deregister_frame with atexit.
4505         (deregister_frame_dtor): Remove.
4506
4507 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
4508             Nathan Sidwell  <nathan@codesourcery.com>
4509
4510         * config/rs6000/rs6000.opt (mspe): Remove Var property.
4511         (misel): Likewise.
4512         * config/rs6000/rs6000.h (rs6000_spe): Declare.
4513         (rs6000_isel): Likewise.
4514         * config/rs6000/rs6000.c (rs6000_spe): New variable.
4515         (rs6000_isel): New variable.
4516         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
4517
4518 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4519
4520         PR c++/35758
4521         * c-common.c (handle_vector_size_attribute): Call
4522         lang_hooks.types.reconstruct_complex_type instead of
4523         reconstruct_complex_type.
4524         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
4525         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
4526         * langhooks.h (struct lang_hooks_for_types): Add
4527         reconstruct_complex_type hook.
4528         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
4529         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
4530
4531 2008-04-24  Richard Guenther  <rguenther@suse.de>
4532
4533         * c-common.h (check_builtin_function_arguments): Declare.
4534         * c-common.c (validate_nargs): New function.
4535         (check_builtin_function_arguments): Likewise.
4536         * c-typeck.c (build_function_call): Call
4537         check_builtin_function_arguments.
4538         * builtins.c (fold_builtin_classify): Remove error reporting code.
4539         (fold_builtin_unordered_cmp): Likewise.
4540         (fold_builtin_1): Likewise.
4541         (fold_builtin_n): Likewise.
4542
4543 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4544
4545         PR tree-optimization/36008
4546         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
4547         the original op1, rather than delta by step.
4548
4549 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
4550             Sebastian Pop  <sebastian.pop@amd.com>
4551
4552         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
4553         eliminate_local_variables_stmt, eliminate_local_variables,
4554         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
4555         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
4556         of code delimited by two edges in the CFG.
4557         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
4558         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
4559         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
4560         the case of parallelisation of reductions.
4561         (expr_invariant_in_region_p): New.
4562
4563         * tree-flow.h (gather_blocks_in_sese_region): Declared.
4564         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
4565
4566 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4567             Richard Guenther  <rguenther@suse.de>
4568
4569         PR tree-optimization/36034
4570         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
4571         incapable of dealing with loads with gaps.
4572
4573 2008-04-24  Rafael Espindola  <espindola@google.com>
4574
4575         * tree-flow.h (vrp_evaluate_conditional): Change signature.
4576         * tree-ssa-propagate.c (fold_predicate_in): Update call to
4577         vrp_evaluate_conditional.
4578         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
4579         (vrp_evaluate_conditional): Split the cond argument.
4580         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
4581         (simplify_stmt_for_jump_threading): Update call to
4582         vrp_evaluate_conditional.
4583
4584 2008-04-24  Ira Rosen  <irar@il.ibm.com>
4585
4586         PR tree-optimization/35982
4587         * tree-vect-analyze.c (vect_check_interleaving): Check that the
4588         interleaved data-refs are of the same type.
4589
4590 2008-04-24  Danny Smith  <dannysmith@users.net>
4591
4592         * c-format.c (check_format_info_main): Use strncmp rather than a
4593         magic prefix to handle multichar length specs.
4594         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
4595         Don't prefix "I64" and "I32" with '\0'.
4596
4597 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
4598
4599         PR target/36015
4600         * config/i386/i386.c (init_cumulative_args): Don't pass anything
4601         in registers for -m32 only if stdarg_p (fntype).
4602
4603 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
4604
4605         PR rtl-optimization/36006
4606         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
4607         temp to op0 in order to avoid invalid rtx sharing.
4608
4609 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
4610
4611         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
4612         check TREE_INVARIANT.
4613         * tree-gimple.c (is_gimple_address): New.
4614         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
4615         * tree-gimple.h (is_gimple_address): New.
4616         * tree.h (decl_address_invariant_p): New.
4617         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
4618         (build_string): Likewise.
4619         (decl_address_invariant_p): New, from is_gimple_invariant_address.
4620         (tree_invariant_p_1): Likewise.
4621         (save_expr): Use it.
4622         (tree_invariant_p): New.
4623         (skip_simple_arithmetic): Use it.
4624         (stabilize_reference_1): Use it.
4625         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
4626         simplify.
4627         (build1_stat): Drop code to compute TREE_INVARIANT.
4628         (build2_stat): Drop code to compute TREE_INVARIANT.
4629         (build3_stat): Drop code to compute TREE_INVARIANT.
4630         (build4_stat): Drop code to compute TREE_INVARIANT.
4631         (build5_stat): Drop code to compute TREE_INVARIANT.
4632         (build7_stat): Drop code to compute TREE_INVARIANT.
4633         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
4634         * tree.h (struct tree_base): Remove invariant_flag.
4635         (TREE_INVARIANT): Remove.
4636         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
4637         (fold_builtin_expect): Check TREE_CONSTANT.
4638         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
4639         * c-tree.h (c_expr_to_decl): Drop third parameter.
4640         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
4641         (build_c_cast): Don't set TREE_INVARIANT.
4642         (pop_init_level): Don't set TREE_INVARIANT.
4643         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
4644         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
4645         TREE_CONSTANT.
4646         (gimplify_init_constructor): Don't set TREE_INVARIANT.
4647         (gimplify_addr_expr): Adjust comment.
4648         * tree-mudflap.c (mf_build_string):
4649         * print-tree.c (print_node): Don't print TREE_INVARIANT.
4650         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
4651         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
4652         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
4653         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
4654         * langhooks.h (struct lang_hooks): Drop third parameter from
4655         expr_to_decl.
4656
4657 2008-04-23  Richard Guenther  <rguenther@suse.de>
4658
4659         PR tree-optimization/27799
4660         PR tree-optimization/32921
4661         PR tree-optimization/32624
4662         * tree-ssa-structalias.c (merge_smts_into): Only merge the
4663         SMTs aliases and the tag itself into the solution.
4664         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
4665         merge the points-to solution back into the SMT aliases.
4666         (may_alias_p): Use alias_set_subset_of instead of
4667         aliases_conflict_p.  A pointer which points to
4668         memory with alias set zero may access any variable.
4669
4670 2008-04-23  Richard Guenther  <rguenther@suse.de>
4671
4672         * alias.c (alias_set_subset_of): Correctly handle asking
4673         if zero is a subset of an alias set with zero child.
4674         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
4675         (compute_flow_insensitive_aliasing): Correctly walk all
4676         pointers.  Do not unnecessarily union sets.
4677
4678 2008-04-23  Richard Guenther  <rguenther@suse.de>
4679
4680         PR middle-end/36021
4681         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
4682
4683 2008-04-22  Tomas Bily  <tbily@suse.cz>
4684
4685         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
4686         unreachable case.
4687         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
4688         NON_LVALUE_EXPR.
4689         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4690         * tree-ssa-structalias.c (get_constraint_for): Likewise.
4691         * tree-inline.c (estimate_num_insns_1): Likewise.
4692         * varasm.c (const_hash_1, compare_constant, copy_constant)
4693         (compute_reloc_for_constant, output_addressed_constants): Likewise.
4694         * emit-rtl.c (component_ref_for_mem_expr)
4695         (set_mem_attributes_minus_bitpos): Likewise.
4696         * expr.c (highest_pow2_factor, expand_expr_real_1, )
4697         (is_aligning_offset): Likewise.
4698         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
4699         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
4700         * dojump.c (do_jump): Likewise.
4701         * builtins.c (get_pointer_alignment, get_memory_rtx)
4702         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
4703         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
4704
4705 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
4706
4707         PR rtl-optimization/36017
4708         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
4709         expanding the library call.
4710
4711 2008-04-22  Ian Lance Taylor  <iant@google.com>
4712
4713         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
4714         than size_in_bytes.
4715
4716 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
4717
4718         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
4719         of LR/CTR moves for Power6.
4720
4721 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
4722
4723         PR middle-end/36003
4724         * passes.c (init_optimization_passes): Remove
4725         pass_fast_rtl_byte_dce.
4726         
4727 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
4728
4729         PR target/29096
4730         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4731         builtin functions to generate faster code.
4732         (_mm_cvtpu16_ps): Ditto.
4733         (_mm_cvtpi32x2_ps): Ditto.
4734
4735 2008-04-22  Nick Clifton  <nickc@redhat.com>
4736
4737         * common.opt (ftree-loop-distribution): Add Optimization
4738         attribute.
4739
4740         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4741         (frv_expand_builtin_va_start): Likewise.
4742
4743         * config/arm/arm.c (thumb_find_work_register): Fix location of
4744         argument register count.
4745
4746 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4747
4748         Support scheduling for ColdFire V1 and V3 microarchitecture.
4749         Improve scheduling of multiplication instructions.
4750
4751         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
4752         (mac): New instruction attribute.
4753         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4754         (m68k_sched_mac): New variable.
4755         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4756         Handle cfv1 and cfv3.
4757         (max_insn_size): New static variable.
4758         (struct _sched_ib): New type.
4759         (sched_ib): New static variable.
4760         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4761         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
4762         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4763         Update.
4764         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4765         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
4766         new variables.  Update.
4767         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4768         Add modeling of cfv3 instruction buffer.  Update.
4769         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4770         * config/m68k/m68k.h (TUNE_CFV3): New macro.
4771         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4772         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4773         a particular reservation applies to.
4774         (type2): Reorganize attribute values.  Rename alu to alu_reg,
4775         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
4776         to mul_l and mul_w.
4777         (cf_ib_*): Simplify description of instruction buffer.
4778         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4779         (cf_mem): Split into cf_mem1 and cf_mem2.
4780         (cf_v2_move_??): Rename to cfv12_alu_??.
4781         (cf_v2_move_l_??): Rename to cfv12_omove_??.
4782         (cf_v2_mul_??): Remove reservations.
4783         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4784         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4785         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4786         appropriate place.
4787         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4788         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4789         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4790         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4791         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4792         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4793         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4794         expansions of the above reservations for instructions of sizes
4795         1, 2 and 3 words.
4796
4797 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4798
4799         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4800
4801 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
4802
4803         * coverage.c: Include tree-pass.h.
4804         (coverage_counter_alloc): Print da_file_name to the dump file.
4805
4806 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
4807
4808         * sbitmap.c (sbitmap_range_empty_p): New function.
4809         * sbitmap.h (sbitmap_range_empty_p): New function.
4810         * bitmap.h: Now includes obstack.h.
4811
4812 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
4813             Kenneth Zadeck  <zadeck@naturalbridge.com>
4814
4815         * dbgcnt.def (ra_byte_scan): Added.
4816         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4817         when the last hit happens for a counter.  
4818         * timevar.def (TV_DF_BYTE_LR): New variable.
4819         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4820         * passes.c (pass_fast_rtl_byte_dce): New pass.
4821         * fwprop.c (update_df): Added mode to call df_ref_create.
4822         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4823         DF_REF_EXTRACT_OFFSET.
4824         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
4825         DF_BYTE_LR_OUT, df_byte_lr): New macro.
4826         (df_mm): New enum.
4827         (df_ref_extract): Added mode field.
4828         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4829         DF_REF_EXTRACT_OFFSET.
4830         (DF_REF_EXTRACT_MODE): New macro.
4831         (df_byte_lr_bb_info): New structure.
4832         (df_print_byte_regset, df_compute_accessed_bytes, 
4833         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4834         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4835         df_byte_lr_simulate_uses,
4836         df_byte_lr_simulate_artificial_refs_at_top,
4837         df_byte_lr_simulate_artificial_refs_at_end,
4838         df_compute_accessed_bytes): New function.
4839         (df_ref_create): Add parameter.
4840         (df_byte_lr_get_bb_info): New inline function.
4841         * df-scan.c (df_ref_record, df_uses_record,
4842         df_ref_create_structure): Added mode parameter.
4843         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
4844         df_defs_record, df_uses_record, df_get_conditional_uses,
4845         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
4846         df_entry_block_defs_collect, df_exit_block_uses_collect):
4847         Added mode parameter to calls to df_ref_record, df_uses_record,
4848         df_ref_create_structure.
4849         (df_ref_equal_p, df_ref_compare): Added test for modes.
4850         (df_ref_create_structure): Added code to set mode.  Renamed
4851         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4852         DF_REF_EXTRACT_OFFSET.
4853         * df-core.c (df_print_byte_regset): New function.
4854         * df-byte-scan.c: New file.
4855         * df-problems.c (df_rd_transfer_function): Removed unnecessary
4856         calls to BITMAP_FREE.  
4857         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4858         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4859         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
4860         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
4861         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4862         df_byte_lr_local_compute, df_byte_lr_init,
4863         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
4864         df_byte_lr_transfer_function, df_byte_lr_free, 
4865         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4866         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
4867         df_byte_lr_simulate_uses,
4868         df_byte_lr_simulate_artificial_refs_at_top,
4869         df_byte_lr_simulate_artificial_refs_at_end): New function.
4870         * dce.c (byte_dce_process_block): New function.
4871         (dce_process_block): au is now passed in rather than computed
4872         locally.  Changed loops that look at artificial defs to not look
4873         for conditional or partial ones, because there never are any.  
4874         (fast_dce): Now is able to drive byte_dce_process_block or 
4875         dce_process_block depending on the kind of dce being done.
4876         (rest_of_handle_fast_dce): Add parameter to fast_dce.
4877         (rest_of_handle_fast_byte_dce): New function.
4878         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4879         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4880
4881 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
4882
4883         PR fortran/35019
4884         * gcc.h: Added fortran options that take arguments to
4885         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4886         macros.
4887
4888 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
4889
4890         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4891         scalarization if on the LHS and not a full access.
4892
4893 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4894
4895         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4896
4897 2008-04-18  Rafael Espindola  <espindola@google.com>
4898
4899         * tree-vrp.c (find_case_label_index): Fix the binary search.
4900         (find_case_label_range): New.
4901         (vrp_visit_switch_stmt): Use find_case_label_range.
4902         (simplify_switch_using_ranges): Use find_case_label_range.
4903
4904 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4905
4906         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4907         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4908
4909 2008-04-18  Tom Tromey  <tromey@redhat.com>
4910
4911         PR libcpp/15500:
4912         * doc/cpp.texi (Implementation-defined behavior): Mention
4913         -finput-charset.
4914
4915 2008-04-18  Ian Lance Taylor  <iant@google.com>
4916
4917         * fold-const.c (pointer_may_wrap_p): New static function.
4918         (fold_comparison): Add another test for pointer overflow.  Use
4919         pointer_may_wrap_p to disable some false positives.
4920
4921 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
4922           
4923         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4924         (fname_as_string): Match updated cpp_interpret_string prototype.
4925         (fix_string_type): Support char16_t* and char32_t*.
4926         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4927         derivative) nodes.  Register as builtin if C++0x.
4928         (c_parse_error): Support CPP_CHAR{16,32}.
4929         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
4930         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4931         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4932         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4933         CTI_CHAR32_ARRAY_TYPE>: New elements.
4934         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4935         char32_type_node, signed_char32_type_node, char16_array_type_node,
4936         char32_array_type_node): New defines.
4937         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4938         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4939         (lex_string): Support CPP_STRING{16,32}, match updated
4940         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4941         (lex_charconst): Support CPP_CHAR{16,32}.
4942         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4943         and CPP_STRING{16,32}.
4944
4945 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4946
4947         PR bootstrap/35457
4948         * aclocal.m4: Regenerate.
4949         * configure: Regenerate.
4950
4951 2008-04-18  Jan Hubicka  <jh@suse.cz>
4952
4953         * except.c (dw2_size_of_call_site_table,
4954         sjlj_size_of_call_site_table): Use vector API for call_site_record.
4955
4956         * cgraphbuild.c (build_cgraph_edges): Update.
4957         * tree-pass.h: Update comment.
4958         * final.c (leaf_function_p): Update.
4959         (leaf_renumber_regs): Update.
4960         (rest_of_clean_state): Update.
4961         * omp-low.c (expand_omp_parallel): Update.
4962         * ipa-reference.c (analyze_function): Update.
4963         * reorg.c (find_end_label): Update.
4964         (optimize_skip): Update.
4965         (fill_simple_delay_slots): Update.
4966         (fill_simple_delay_slots): Update.
4967         (make_return_insns): Update.
4968         (dbr_schedule): Update.
4969         * gimple-low.c (record_vars_into): Update.
4970         * cfgbuild.c (make_edges): Update.
4971         * function.c (assign_stack_local): Update.
4972         (assign_parm_adjust_stack_rtl): Update.
4973         (locate_and_pad_parm): Update.
4974         (allocate_struct_function): Do not initialize stack_alignment_needed
4975         and preferred_stack_boundary here.
4976         (stack_protect_prologue): Update.
4977         (stack_protect_epilogue): Update.
4978         (expand_function_start): Initialize stack_alignment_needed,
4979         preferred_stack_boundary and max_jumptable_ents.
4980         (expand_function_end): Update.
4981         (free_after_compilation): Do not NULLify epilogue_delay_list.
4982         * function.h (struct rtl_data): Add stack_protect_guard,
4983         stack_alignment_needed,
4984         preferred_stack_boundary, epilogue_delay_list.
4985         (struct function): Remove value_histograms, stack_alignment_needed,
4986         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4987         last_label_uid,
4988         unexpanded_var_list, stack_protect_guard.
4989         (current_function_epilogue_delay_list): Remove.
4990         * ipa-type-escape.c (analyze_function): Update.
4991         * gimplify.c (pop_gimplify_context): Update comment.
4992         * calls.c (expand_call): Update.
4993         (emit_library_call_value_1): Update.
4994         * except.c (set_nothrow_function_flags): Update.
4995         * cfgexpand.c (get_decl_align_unit): Update.
4996         (create_stack_guard): Update.
4997         (estimated_stack_frame_size): Update.
4998         (expand_used_vars): Update.
4999         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5000         * explow.c (allocate_dynamic_stack_space): Update.
5001         * tree-ssa-live.c (remove_unused_locals): Update.
5002         * varasm.c (mark_constant_pool): Update.
5003         * tree-inline.c (remap_decls): Update.
5004         (initialize_cfun): Update.
5005         (declare_return_variable): Update.
5006         (inline_forbidden_p): Update.
5007         (expand_call_inline): Update.
5008         (declare_inline_vars): Update.
5009         (tree_function_versioning): Update.
5010         * tree-flow.h (value_histograms): New.
5011         (VALUE_HISTOGRAMS): New macro.
5012         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5013         last_label_uid.
5014         * tree-cfg.c (set_bb_for_stmt): Update.
5015         (replace_by_duplicate_decl): Update.
5016         (move_block_to_fn): Update.
5017         (new_label_mapper): Update.
5018         (dump_function_to_file): Update.
5019         * ipa-struct-reorg.c (build_data_structure): Update.
5020         * cfgrtl.c (print_rtl_with_bb): Update.
5021         * reload1.c (reload): Update.
5022         (reload): Update.
5023         * config/i386/i386.c (setup_incoming_varargs_64,
5024         ix86_compute_frame_layout): Update.
5025         * config/arc/arc.c (arc_output_function_epilogue): Update.
5026
5027 2008-04-18  Marius Strobl <marius@FreeBSD.org>
5028
5029         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5030         for FreeBSD as well.
5031         * gthr-posix95.h: Likewise.
5032
5033 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
5034
5035         PR rtl-optimization/35838
5036         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5037         out the byte offset of the first subreg.
5038
5039 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
5040
5041         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5042         to split_ti instead of three separate calls with single member arrays.
5043         (subti3 splitter): Ditto.
5044         (adddi3 splitter): Ditto with split_di.
5045         (subdi3 splitter): Ditto.
5046         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5047         two separate calls with single member arrays.  Swap match_dup
5048         operands 1 and 2 to better fit into the array.
5049         (negdi2 splitter): Ditto with split_di.
5050         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
5051         two separate calls with single member arrays.  Swap match_dup operands
5052         6 and 7 to better fit into the array.
5053
5054 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
5055
5056         * config/i386/i386.c (sse_builtin_type): New.
5057         (bdesc_sse_args): Likewise.
5058         (bdesc_sse_3arg): Removed.
5059         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5060         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5061         IX86_BUILTIN_ROUNDPS.
5062         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
5063         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
5064         IX86_BUILTIN_ROUNDPS.
5065         (ix86_expand_sse_4_operands_builtin): Removed.
5066         (ix86_expand_sse_operands_builtin): New.
5067         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5068         and CODE_FOR_sse4_1_roundps.
5069         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5070         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
5071
5072 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
5073
5074         PR target/35907
5075         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5076         regs before frame pop when needed.  If use_backchain_to_restore_sp
5077         then load backchain into a temp reg to restore vr and vrsave.  Add
5078         code to restore vr after frame pop if possible.
5079
5080 2008-04-17  Richard Guenther  <rguenther@suse.de>
5081
5082         * tree-vn.c (expressions_equal_p): Do not check type
5083         equality or compatibility before calling operand_equal_p.
5084         * fold-const.c (operand_equal_p): Check equivalence of
5085         integer constants before bailing out due to signedness or
5086         precision differences.
5087         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5088         spurious differences in type qualification.  Ignore types
5089         for COMPONENT_REFs at all.
5090
5091 2008-04-17  Christian Bruel  <christian.bruel@st.com>
5092
5093         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5094         msw_skip comparison.
5095         
5096 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
5097
5098         PR c/35739
5099         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5100         reg type.
5101
5102         PR tree-optimization/35899
5103         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5104         rather than TREE_OPERAND.
5105
5106 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
5107
5108         PR target/35944
5109         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5110         temporary registers.  Change operand predicate to general_operand.
5111         (remainderxf3): Ditto.
5112
5113 2008-04-16  Richard Guenther  <rguenther@suse.de>
5114
5115         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5116         * tree-affine.c (aff_combination_expand): Look through some
5117         conversions.
5118
5119 2008-04-15  Doug Kwan  <dougkwan@google.com>
5120
5121         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5122         for hex printing.
5123         * tree-pretty-print.c (dump_generic_node): Ditto.
5124         * final.c (output_addr_const): Ditto.
5125         * dwarf2out.c (output_cfi): Ditto.
5126         * c-pretty-print.c (pp_c_integer_constant): Ditto.
5127         * print-rtl.c (print_rtx): Ditto.
5128         * print-tree.c (print_node_brief, print_node): Ditto.
5129         * c-common.c (match_case_to_enum_1): Ditto.
5130         * sched-vis.c (print_value): Ditto.
5131         * config/i386/i386.c (print_operand): Cast to long unsigned int
5132         for hex printing.
5133
5134 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
5135         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
5136         MS Windows VirtualProtect function.
5137
5138 2008-04-15  Jan Hubicka  <jh@suse.cz>
5139
5140         * gengtype.c (write_root): Param_is argument is OK.
5141         * expr.c (expand_expr_real_1): Update call of get_exception_*.
5142         * function.h: Include varray.h
5143         (rtl_eh): New stucture based on except.c one.
5144         (call_site_record): New forward declaration and vector type.
5145         * calls.c (emit_call_1): Do not call
5146         note_current_region_may_contain_throw.
5147         * except.c (eh_status): Remove cur_region, try_region since they are
5148         unused.
5149         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5150         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5151         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
5152         Remove call_site_data_used, call_site_data_size.
5153         Turn call_site_record into vector in function.h.
5154         (note_current_region_may_contain_throw): Remove.
5155         (get_exception_pointer, get_exception_filter): Do not take struct
5156         function argument; update.
5157         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5158         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5159         build_post_landing_pads, dw2_build_landing_pads,
5160         sjlj_assign_call_site_values, sjlj_mark_call_sites,
5161         sjlj_emit_function_enter, sjlj_emit_function_enter, 
5162         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5163         sjlj_build_landing_pads, finish_eh_generation,
5164         remove_exception_handler_label, remove_eh_handler,
5165         maybe_remove_eh_handler, add_reachable_handler,
5166         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5167         add_action_record, collect_one_action_chain, add_call_site,
5168         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
5169         sjlj_output_call_site_table, output_function_exception_table,
5170         * except.h (note_current_region_may_contain_throw): Remove
5171         (get_exception_pointer, get_exception_filter): Do not take struct
5172         function argument.
5173         * Makefile.in (GTFILES): Put varargs before struct function.
5174
5175 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5176
5177         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5178         punt for STRING_CST.
5179         (get_constraint_for): Deal with STRING_CST here instead.
5180
5181 2008-04-15  Richard Guenther  <rguenther@suse.de>
5182
5183         * tree-ssa-propagate.c (substitute_and_fold): Substitute
5184         statements in a basic-block with a backward walk.  Do not
5185         substitute into dead statements but instead remove those.
5186
5187 2008-04-15  Richard Guenther  <rguenther@suse.de>
5188
5189         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5190         to zero, thus disable creation of SFTs.
5191
5192 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5193
5194         * tree-predcom.c (suitable_reference_p): Return false if the
5195         reference can throw.
5196
5197 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
5198
5199         PR c/35751
5200         * c-decl.c (finish_decl): If extern or static var has variable
5201         size, set TREE_TYPE (decl) to error_mark_node.
5202
5203 2008-04-15  Rafael Espindola  <espindola@google.com>
5204
5205         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
5206         variable arg1.
5207
5208 2008-04-15  Richard Guenther  <rguenther@suse.de>
5209
5210         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5211         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5212         (visit_reference_op_load): Do walk vuse-vdef chains on
5213         vn_reference_lookup.
5214         (visit_reference_op_store): But do not here.
5215         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5216         vn_reference_lookup.
5217         (vn_lookup_with_vuses): But do so here.
5218
5219 2008-04-14  Ian Lance Taylor  <iant@google.com>
5220
5221         * fold-const.c (fold_overflow_warning): Remove assertion.
5222
5223 2008-04-15  Ben Elliston  <bje@au.ibm.com>
5224
5225         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5226         temp1 local variables.
5227
5228 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
5229
5230         PR target/35661
5231         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5232         ".text.unlikely" section as executable.
5233
5234 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
5235
5236         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5237         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5238         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5239         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5240         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5241         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5242         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5243
5244 2008-04-14  Ian Lance Taylor  <iant@google.com>
5245
5246         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5247         * fold-const.c (fold_comparison): If appropriate, test
5248         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5249         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5250         reassociating a pointer type.
5251         * doc/invoke.texi (Optimize Options): Document that
5252         -fstrict-overflow applies to pointer wraparound.
5253
5254 2008-04-13  Jan Hubicka  <jh@suse.cz>
5255
5256         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5257
5258 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
5259
5260         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5261         we are going to "save the world".
5262
5263 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
5264
5265         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5266         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5267         operand 0 constraint, not "=".
5268
5269 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
5270
5271         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5272
5273 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5274
5275         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5276         of size of positions_needed * CHAR_BIT.
5277
5278 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
5279
5280         PR middle-end/35897
5281         * dse.c (store_info): Change positions_needed to unsigned
5282         HOST_WIDE_INT.
5283         (lowpart_bitmask): New.
5284         (record_store): Cast to unsigned HOST_WIDE_INT for
5285         positions_needed.  Assert width <= size of positions_needed *
5286         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
5287         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
5288         lowpart_bitmask to set mask.
5289
5290 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5291
5292         * config/bfin/constraints.md: New file.
5293         * config/bfin/bfin.md: Include it.
5294         (adddi3): Use satisfies_constraint functions instead of the old macros.
5295         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5296         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5297         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5298         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5299         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5300         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5301         EXTRA_CONSTRAINT): Delete.
5302         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5303         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5304         of the old macros.
5305         * config/bfin/bfin.c: Include "tm-constrs.h".
5306         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5307         Use satisfies_constraint functions instead of the old macros.
5308         * doc/md.texi (Blackfin Constraints): Update file name reference.
5309
5310 2008-04-11  Richard Guenther  <rguenther@suse.de>
5311
5312         PR tree-optimization/35869
5313         * tree-vrp.c (execute_vrp): Move switch statement update after
5314         jump threading.  Schedule another cfg cleanup run.
5315
5316 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
5317
5318         PR c/35744
5319         * attribs.c (decl_attributes): Return early on errorneous node.
5320
5321 2008-04-10  Oleg Ryjkov  <olegr@google.com>
5322
5323         * tree.h (struct tree_base): Added a new flag default_def_flag.
5324         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5325
5326 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5327
5328         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5329
5330 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5331
5332         PR target/35768
5333         * pa.md: Define mode iterator P.  Define mode attribute dwc.
5334         (dcacheflush): Update pattern to use iterator P and attribute dwc.
5335         (icacheflush): Likewise.
5336         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5337         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5338
5339 2008-04-11  Ben Elliston  <bje@au.ibm.com>
5340
5341         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5342
5343 2008-04-10  Rafael Espindola  <espindola@google.com>
5344
5345         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
5346         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5347         (extract_range_from_expr): The same.
5348
5349 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5350
5351         * config/mips/mips.md (GPR2): New mode iterator.
5352         (seq): Add comment.
5353         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5354         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5355         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5356         Rewrite these to take two modes, the mode of comparison and the
5357         mode of the destination.
5358         * config/mips/mips.c (mips_expand_scc): Instead of having
5359         paradoxical subreg as destination, expand "narrowing" scc if mode
5360         of comparison is SI and target is requested in DI mode.
5361         (mips_emit_int_order_test): Update comment.  Make mode of
5362         comparison match CMP0 rather than TARGET.  When creating inverse
5363         target use mode of TARGET.
5364
5365 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
5366
5367         * gcov-dump.c (tag_summary): Only print summaries for the first
5368         GCOV_COUNTERS_SUMMABLE counters.
5369
5370 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
5371
5372         * config/i386/i386.md (absneg): New code iterator.
5373         (absnegprefix): New code attribute.
5374         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
5375         patterns using absneg code iterator.
5376         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
5377         using absneg code iterator.
5378         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
5379         *neg<mode>2 patterns using absneg code iterator.
5380         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5381         *negextendsfdf2 patterns using absneg code iterator.
5382         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
5383         *negextendsfxf2 patterns using absneg code iterator.
5384         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
5385         *negextendsfdf2 patterns using absneg code iterator.
5386         * config/i386/sse.md (<code><mode>2): Macroize expander from
5387         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
5388
5389 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5390
5391         * config/s390/s390.h: Remove the remains of the recent search
5392         & replace action of current_function_outgoing_args_size.
5393
5394 2008-04-10  Ira Rosen  <irar@il.ibm.com>
5395
5396         PR tree-optimization/35821
5397         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
5398         NEW_STMT_LIST is not NULL.
5399
5400 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
5401
5402         PR libstdc++/35597
5403         * toplev.c (process_options): Remove -ffunction-sections debugging
5404         warning.
5405
5406 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
5407
5408         PR middle-end/PR28690
5409         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
5410         than gen_rtx_fmt_ee to perform more canonicalizations.
5411
5412 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5413
5414         PR driver/35665
5415         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
5416
5417 2008-04-09  Richard Guenther  <rguenther@suse.de>
5418
5419         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
5420         (dump_function_to_file): Dump function arguments with types.
5421
5422 2008-04-08  Richard Guenther  <rguenther@suse.de>
5423
5424         * fold-const.c (fold_widened_comparison): Do not allow
5425         sign-changes that change the result.
5426
5427 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
5428
5429         PR target/35839
5430         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
5431         kinds of indirect references.
5432
5433 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
5434
5435         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
5436         GNU Fortran language string.
5437
5438 2008-04-08  Rafael Espindola  <espindola@google.com>
5439
5440         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
5441         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
5442         * tree.h (tree_call_nonnegative_warnv_p): New.
5443
5444 2008-04-08  Jan Hubicka  <jh@suse.cz>
5445
5446         * function.c (free_after_compilation): Clear out regno_reg_rtx
5447         pointer.
5448
5449 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
5450
5451         Revert
5452         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5453
5454         PR middle-end/PR28690
5455         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
5456         same precedence as REG_POINTER and MEM_POINTER operands.
5457
5458 2008-04-08  Richard Guenther  <rguenther@suse.de>
5459
5460         PR middle-end/35834
5461         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
5462         for adding index to base.
5463
5464 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
5465
5466         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
5467         (MINGW_ENABLE_EXECUTE_STACK): New.
5468         (IN_LIBGCC2): For libgcc include windows.h file for
5469         function declarations.
5470
5471 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
5472
5473         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
5474         and tem2 if tem1 is not a REG or MULT.
5475
5476 2008-04-08  Jan Hubicka  <jh@suse.cz>
5477
5478         * function.h (incomming_args): Break out of struct function.
5479         (function_subsections): Break out of struct function.
5480         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
5481         return_rtx and hard_reg_initial_vals from struct function.
5482         Kill inl_max_label_num.
5483         (current_function_pops_args, current_function_args_info,
5484         current_function_args_size, current_function_args_size,
5485         current_function_pretend_args_size,
5486         current_function_outgoing_args_size,
5487         current_function_internal_arg_pointer, current_function_return_rtx):
5488         Kill compatibility accestor macros.
5489         * builtins.c (expand_builtin_apply_args_1): Update.
5490         (expand_builtin_next_arg): Update.
5491         * df-scan.c (df_get_call_refs): Update.
5492         * dbxout.c (dbxout_function_end): Update.
5493         * dwarf2out.c (dwarf2out_switch_text_section): Update.
5494         (output_line_info): Update.
5495         (secname_for_decl): Update.
5496         (dwarf2out_var_location): Update.
5497         * function.c (free_after_compilation): Update.
5498         (assign_parm_find_stack_rtl): Update.
5499         (assign_parms): Update.
5500         (expand_dummy_function_end): Update.
5501         (expand_function_end): Update.
5502         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
5503         (expand_call): Update.
5504         (emit_library_call_value_1): Update.
5505         (store_one_arg): Update.
5506         * varasm.c (initialize_cold_section_name): Update.
5507         (unlikely_text_section): Update.
5508         (unlikely_text_section_p): Update.
5509         (assemble_start_function): Update.
5510         (assemble_end_function): Update.
5511         (default_section_type_flags): Update.
5512         (switch_to_section): Update.
5513         * integrate.c (set_decl_abstract_flags): Update.
5514         (get_hard_reg_initial_val): Update.
5515         (has_hard_reg_initial_val): Update.
5516         (allocate_initial_values): Update.
5517         * resource.c (init_resource_info): Update.
5518         * config/alpha/alpha.c (NUM_ARGS): Update.
5519         (direct_return): Update.
5520         (alpha_va_start): Update.
5521         (alpha_sa_size): Update.
5522         (alpha_initial_elimination_offset): Update.
5523         (alpha_expand_prologue): Update.
5524         (alpha_start_function): Update.
5525         (alpha_expand_epilogue): Update.
5526         (unicosmk_initial_elimination_offset):
5527         * config/alpha/alpha.md (call expander): Update.
5528         * config/s390/s390.c (s390_register_info): Update.
5529         (s390_register_info): Update.
5530         (s390_frame_info): Update.
5531         (s390_initial_elimination_offset): Update.
5532         (s390_build_builtin_va_list): Update.
5533         (s390_va_start): Update.
5534         * config/spu/spu.c (direct_return): Update.
5535         (spu_expand_prologue): Update.
5536         (spu_initial_elimination_offset): Update.
5537         (spu_build_builtin_va_list): Update.
5538         (spu_va_start): Update.
5539         * config/sparc/sparc.c (sparc_init_modes): Update.
5540         (sparc_compute_frame_size): Update.
5541         (function_value): Update.
5542         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
5543         * config/i386/i386.md (return expander): Update.
5544         * config/i386/i386.c (ix86_va_start): Update.
5545         (ix86_can_use_return_insn_p): Update.
5546         (ix86_compute_frame_layout): Update.
5547         (ix86_expand_epilogue): Update.
5548         * config/sh/sh.c (output_stack_adjust): Update.
5549         (calc_live_regs): Update.
5550         (sh_expand_prologue): Update.
5551         (sh_builtin_saveregs): Update.
5552         (sh_va_start): Update.
5553         (initial_elimination_offset): Update.
5554         (sh_allocate_initial_value): Update.
5555         (sh_function_ok_for_sibcall): Update.
5556         (sh_get_pr_initial_val): Update.
5557         * config/sh/sh.md (return expander): Update.
5558         * config/avr/avr.c (frame_pointer_required_p): UPdate.
5559         * config/crx/crx.c (crx_compute_frame): UPdate.
5560         (crx_initial_elimination_offset): UPdate.
5561         * config/xtensa/xtensa.c (compute_frame_size): Update
5562         (xtensa_builtin_saveregs): Update.
5563         (xtensa_va_start): Update.
5564         (order_regs_for_local_alloc): Update.
5565         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
5566         (xstormy16_expand_builtin_va_start): Update.
5567         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
5568         * config/m68hc11/m68hc11.md (return expanders): Update.
5569         * config/m68hc11/m68hc11.c (expand_prologue): Update.
5570         (expand_epilogue): Update.
5571         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
5572         (cris_simple_epilogue): Update.
5573         (cris_expand_prologue): Update.
5574         (cris_expand_epilogue): Update.
5575         * config/iq2000/iq2000.c (iq2000_va_start): Update.
5576         (compute_frame_size): Update.
5577         * config/mt/mt.c (mt_compute_frame_size): Update.
5578         * config/mn10300/mn10300.c (expand_prologue): Update.
5579         (expand_epilogue): Update.
5580         (initial_offset): Update.
5581         (mn10300_builtin_saveregs):
5582         * config/mn10300/mn10300.md (return expander): Update.
5583         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5584         (ia64_initial_elimination_offset): Update.
5585         (ia64_initial_elimination_offset): Update.
5586         (ia64_expand_prologue): Update.
5587         * config/m68k/m68k.md (return expander): Update.
5588         * config/rs6000/rs6000.c (rs6000_va_start): Update.
5589         (rs6000_stack_info): Update.
5590         * config/mcore/mcore.c (layout_mcore_frame): Update.
5591         (mcore_expand_prolog): Update.
5592         * config/arc/arc.c (arc_compute_frame_size): Update.
5593         * config/score/score3.c (score3_compute_frame_size): Update.
5594         * config/score/score7.c (score7_compute_frame_size): Update.
5595         * config/arm/arm.c (use_return_insn): Update.
5596         (thumb_find_work_register): Update.
5597         (arm_compute_save_reg_mask): Update.
5598         (arm_output_function_prologue): Update.
5599         (arm_output_epilogue): Update.
5600         (arm_size_return_regs): Update.
5601         (arm_get_frame_offsets): Update.
5602         (arm_expand_prologue): Update.
5603         (thumb_exit): Update.
5604         (thumb_unexpanded_epilogue): Update.
5605         (thumb1_output_function_prologue): Update.
5606         * config/pa/pa.md (return expander): Update.
5607         * config/pa/pa.c (compute_frame_size): Update.
5608         (hppa_builtin_saveregs): Update.
5609         * config/mips/mips.c (mips_va_start): Update.
5610         (mips16_build_function_stub): Update.
5611         (mips_compute_frame_info): Update.
5612         (mips_restore_gp): Update.
5613         (mips_output_function_prologue): Update.
5614         (mips_expand_prologue): Update.
5615         * config/v850/v850.c (compute_frame_size): Update.
5616         (expand_prologue): * config/mmix/mmix.c (along): update.
5617         (mmix_initial_elimination_offset): update.
5618         (mmix_reorg): update.
5619         (mmix_use_simple_return): update.
5620         (mmix_expand_prologue): update.
5621         (mmix_expand_epilogue): Update.
5622         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
5623         (emit_link_insn): Update.
5624
5625 2008-04-08  Anatoly Sokolov <aesok@post.ru>
5626
5627         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
5628         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
5629         instructions.
5630         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
5631         atmega103 device.
5632
5633 2008-04-07  Jan Hubicka  <jh@suse.cz>
5634
5635         * function.h (rtl): Rename to x_rtl.
5636         (crtl): New define.
5637         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5638         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5639         used_temp_slots avail_temp_slots, temp_slot_level,
5640         nonlocal_goto_handler_labels): Update accesstors.
5641         (rtl): New global variable.
5642         (struct function): Move some fileds to rtl_data.
5643         (get_arg_pointer_save_area): Update prototype.
5644         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5645         get_arg_pointer_save_area.
5646         * expr.c (init_expr): Update
5647         * function.c (get_frame_size): Update
5648         (assign_stack_local): Update
5649         (expand_function_end): Update.
5650         (get_art_pointer_save_area): Update
5651         * function.h 
5652         * emit-rtl.c (rtl): Declare.
5653         (regno_reg_rtx): Declare.
5654         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5655         Update.
5656         (gen_reg_rtx): Update.
5657         * varasm.c (n_deferred_constatns): Update accestor.
5658         (init_varasm_status): Do not allocate varasm_status.
5659         (force_const_mem, get_pool_size, output_constant_pool): Update.
5660         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5661         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5662         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
5663         * sparc/sparc.h (INIT_EXPANDERS): Update.
5664         * ia64/ia64.h (INIT_EXPANDERS): Update.
5665
5666 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
5667
5668         * reload.c (push_secondary_reload): Add missing break to for loop.
5669
5670 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
5671
5672         PR middle-end/PR28690
5673         * rtlanal.c: Update copyright years.
5674         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
5675         as REG_POINTER and MEM_POINTER operands.
5676         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
5677         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
5678         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
5679         * gcse.c: Update copyright years.
5680         (pre_delete): Call gen_reg_rtx_and_attrs.
5681         (hoist_code): Likewise.
5682         (build_store_vectors): Likewise.
5683         (delete_store): Likewise.
5684         * loop-invariant.c (move_invariant_reg): Likewise.
5685         Update copyright years.
5686
5687 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
5688
5689         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
5690         control string instead of quoted.
5691
5692 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
5693
5694         * doc/rtl.texi: Rewrite of subreg section.
5695
5696 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
5697
5698         PR/35842
5699         * config/i386/i386.c (legitimize_pic_address): Add treating
5700         of dllimport SYM_REF's.
5701         (legitimize_dllimport_symbol): Add prototype.
5702
5703 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5704
5705         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
5706         reference in constructor with non self-referential type.
5707
5708 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5709
5710         Removal of Return with Depressed Stack Pointer support
5711         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
5712         (ECF_SP_DEPRESSED): Likewise.
5713         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
5714         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
5715         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5716         (expand_call): Do not test ECF_SP_DEPRESSED.
5717         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5718         * function.c (keep_stack_depressed): Delete.
5719         (handle_epilogue_set): Likewise.
5720         (update_epilogue_consts): Likewise.
5721         (emit_equiv_load): Likewise.
5722         (thread_prologue_and_epilogue_insns): Remove support for Return with
5723         Depressed Stack Pointer.
5724         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
5725
5726 2008-04-06  Richard Guenther  <rguenther@suse.de>
5727
5728         PR tree-optimization/35400
5729         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5730         information from SSA_NAMEs.
5731
5732 2008-04-06  Anatoly Sokolov <aesok@post.ru>
5733
5734         * config/avr/avr.h (avr_mega_p): Remove declaration.
5735         (AVR_MEGA): Remove macro.
5736         * config/avr/avr.c (avr_mega_p): Remove variable.
5737         (avr_override_options): Remove inicializion of avr_mega_p.
5738         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5739         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5740         (avr_jump_mode): (Ditto.).
5741         (avr_output_progmem_section_asm_op): (Ditto.).
5742         (avr_asm_init_sections): (Ditto.).
5743         (avr_asm_init_sections): (Ditto.).
5744         (avr_rtx_costs): (Ditto.).
5745         * config/avr/avr.md: (Ditto.).
5746         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
5747         '__AVR_MEGA__'.
5748
5749 2008-04-06  Richard Guenther  <rguenther@suse.de>
5750
5751         PR tree-optimization/35842
5752         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5753         is_gimple_invariant_address.
5754
5755 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5756
5757         * gcc.c (default_compilers): Sync Fortran extensions list with
5758         that in fortran/lang-specs.h.
5759         * doc/invoke.texi: Likewise.
5760         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5761         * dwarf2out.c (gen_compile_unit_die): Likewise.
5762
5763 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
5764
5765         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5766
5767 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
5768
5769         PR target/12329
5770         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5771         attribute is used for nested functions.
5772
5773 2008-04-05  Jan Hubicka  <jh@suse.cz>
5774
5775         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5776
5777         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5778         letter argument.
5779         (dump_files): Update.
5780         (enable_rtl_dump_file): Do not accept letter argument.
5781         * tree-pass.h (dump_file_info): Remove letter argument.
5782         * toplev.c (decode_d_option): Update -da handling.
5783         * toplev.h (enable_rtl_dump_file): Update prototype.
5784         * passes.c (register_one_dump_file): Do not accept IPA argument; work
5785         it out based on pass type.
5786         (register_dump_files_1): Likewise.
5787         (init_optimization_passes): Update register_one_dump_file calls.
5788         (execute_one_pass): Sanity check that IPA passes are called at IPA
5789         level and RTL passes at RTL level.
5790         (execute_pass_list): IPA pass can not be after or subpass of
5791         GIMPLE/RTL pass.
5792         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5793         disallov RTL subpasses of IPA subpasses.
5794
5795 2008-04-05  Ben Elliston  <bje@au.ibm.com>
5796
5797         * tree-cfg.c (need_fake_edge_p): Return false for calls to
5798         builtins that return exactly once and do not throw. Cache call to
5799         call_expr_flags.
5800
5801 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5802
5803         PR rtl-optimization/34916
5804         PR middle-end/35519
5805         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5806         between instruction pairs.
5807
5808 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
5809
5810         * doc/invoke.texi: Document -mbitops for SH.
5811         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5812         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5813         * config/sh/sh.c (print_operand): Add %t operand code.
5814         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5815         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5816         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5817         (extendqihi2): Likewise.
5818         (movqi_i): Likewise.
5819         (insv): Use bset, bclr and bst instructions for SH2A if possible.
5820         (extv): Use bld instruction for SH2A if possible.
5821         (extzv): Likewise.
5822         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5823         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5824         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5825         (bset.b, bclr.b): Define peepholes.
5826         * config/sh/sh.opt (mbitops): New option.
5827
5828 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
5829
5830         PR target/35620
5831         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5832         and view convert expression.
5833
5834 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5835
5836         PR target/35364
5837         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5838
5839 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
5840
5841         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5842
5843         * config/i386/cpuid.h (bit_AES): New.
5844         (bit_PCLMUL): Likewise.
5845
5846         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5847         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
5848         SSE2 if AES or PCLMUL is enabled.
5849         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5850         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5851         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5852         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5853         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5854         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5855         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5856         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5857         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5858         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5859         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5860         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5861         __builtin_ia32_aeskeygenassist128 and
5862         __builtin_ia32_pclmulqdq128.
5863         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5864         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5865         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
5866
5867         * config/i386/i386.h (TARGET_AES): New.
5868         (TARGET_PCLMUL): Likewise.
5869         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5870
5871         * config/i386/i386.md (UNSPEC_AESENC): New.
5872         (UNSPEC_AESENCLAST): Likewise.
5873         (UNSPEC_AESDEC): Likewise.
5874         (UNSPEC_AESDECLAST): Likewise.
5875         (UNSPEC_AESIMC): Likewise.
5876         (UNSPEC_AESKEYGENASSIST): Likewise.
5877         (UNSPEC_PCLMUL): Likewise.
5878
5879         * config/i386/i386.opt (maes): New.
5880         (mpclmul): Likewise.
5881
5882         * config/i386/sse.md (aesenc): New pattern.
5883         (aesenclast): Likewise.
5884         (aesdec): Likewise.
5885         (aesdeclast): Likewise.
5886         (aesimc): Likewise.
5887         (aeskeygenassist): Likewise.
5888         (pclmulqdq): Likewise.
5889
5890         * config/i386/wmmintrin.h: New.
5891
5892         * doc/extend.texi: Document AES and PCLMUL built-in function.
5893
5894         * doc/invoke.texi: Document -maes and -mpclmul.
5895
5896 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
5897
5898         * function.c (free_after_parsing): Replace with
5899         cxx_push_function_context from C++ front-end.
5900         (allocate_struct_function): Don't call langhook.
5901         * langhooks.h (struct lang_hooks_for_functions): Delete.
5902         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5903         member "function".
5904         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5905         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5906         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5907         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5908         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5909         remove LANG_HOOKS_FUNCTION_INITIALIZER.
5910         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5911
5912         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5913         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5914         
5915 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
5916
5917         PR c/35440
5918         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5919         for all types.
5920
5921 2008-04-04  Richard Guenther  <rguenther@suse.de>
5922
5923         PR middle-end/35823
5924         * fold-const.c (optimize_minmax_comparison): Use the correct
5925         type for the constant in the simplified comparison.
5926
5927 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
5928
5929         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5930         Pass L2 size as "--param l2-cache-size" to the compiler.
5931         (decode_l2_cache): New function to decode L2 cache parameters using
5932         0x8000006 extended cpuid function.
5933         (detect_caches_amd): Determine parameters of L2 cache using
5934         decode_l2_caches function.
5935         (decode_caches_intel): Decode L2 cache parameters.
5936         (detect_caches_intel): Determine L2 cache parameters using
5937         decode_caches_intel and decode_l2_caches functions.
5938
5939 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
5940
5941         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5942         secondary input reload for subword loads from the constant pool.
5943
5944 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
5945
5946         PR target/35713
5947         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5948           constants of the appropriate size for runtime calculations.
5949
5950         PR c/35712
5951         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5952           decimal-float literal constant zero.
5953
5954 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
5955
5956         PR c/35738
5957         * c-parser.c (c_parser_omp_atomic): Call
5958         default_function_array_conversion on the RHS.
5959
5960         PR middle-end/35818
5961         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5962         call is_variable_sized if decl has incomplete type.
5963
5964 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
5965
5966         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5967
5968 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5969
5970         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5971         iterators.
5972         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5973         (sgt<u>): Merge sgt and sgtu into new expander.
5974         (sgt, sgtu): Remove expanders.
5975         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5976         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5977         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5978         *sgtu_<mode>_mips16 into new pattern.
5979         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5980         (sge<u>): Merge sge and sgeu into new expander.
5981         (sge, sgeu): Remove expanders.
5982         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5983         new pattern.
5984         (*sge_<mode>, second *sge_<mode>): Remove patterns.
5985         (slt<u>): Merge slt and sltu into new expander.
5986         (slt, sltu): Remove expanders.
5987         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5988         (*slt_<mode>, *sltu_<mode>): Remove patterns.
5989         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5990         *sltu_<mode>_mips16 into new pattern.
5991         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5992         (sle<u>): Merge sle and sleu into new expander.
5993         (sle, sleu): Remove expanders.
5994         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5995         (*sle_<mode>, *sleu_<mode>): Remove patterns.
5996         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5997         *sleu_<mode>_mips16 into new pattern.
5998         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5999
6000 2008-04-03  Jan Hubicka  <jh@suse.cz>
6001
6002         PR tree-optimization/35795
6003         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6004         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6005         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6006         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6007         * score/score3.c (score3_output_mi_thunk): Likewise.
6008         * score/score7.c (score7_output_mi_thunk): Likewise.
6009         * mips/mips.c (mips_output_mi_thunk): Likewise.
6010
6011 2008-04-03  Richard Guenther  <rguenther@suse.de>
6012
6013         * tree-vrp.c (extract_range_from_unary_expr): Handle all
6014         conversions.  Simplify code.
6015
6016 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6017
6018         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6019
6020 2008-04-03  Tom Tromey  <tromey@redhat.com>
6021             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6022
6023         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6024         * config/bfin/t-bfin-linux (generated_files): Add
6025         linux-sysroot-suffix.h.
6026         * doc/install.texi (Prerequisites): Require make 3.80.
6027         * doc/sourcebuild.texi (Front End Directory): Document new
6028         variable.
6029         * Makefile.in (generated_files): New variable.
6030         (ALL_HOST_OBJS): New variable.
6031         ($(ALL_HOST_OBJS)): New target.
6032
6033 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6034
6035         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6036         (remap_block): Call id->transform_lang_insert_block instead
6037         of langhook.
6038         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6039         Set id.transform_lang_insert_block to NULL.
6040         (clone_body): Move to cp/optimize.c
6041         * tree-inline.h (struct copy_body_data): Change
6042         transform_lang_insert_block to function pointer.
6043         (copy_generic_body, copy_decl_no_change): Export.
6044         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6045         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6046         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6047
6048         * c-tree.h (insert_block): Kill.
6049         * c-decl.c (insert_block): Kill.
6050
6051 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
6052
6053         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6054         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6055         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6056         argument.
6057         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6058         argument, call {push,pop}_function_context from here.
6059         * c-parser.c: Use c_{push,pop}_function_context.
6060
6061         * function.c (push_function_context_to): Move meat ...
6062         (push_function_context): ... here.  Simplify.
6063         * function.c (pop_function_context_from): Move meat ...
6064         (pop_function_context): ... here.  Simplify.
6065         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6066         leave_nested).
6067         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6068         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6069         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6070         * tree.h (push_function_context_to, pop_function_context_from): Remove.
6071
6072 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6073
6074         * expmed.c (extract_force_align_mem_bit_field): Remove.
6075
6076 2008-04-03  Richard Guenther  <rguenther@suse.de>
6077
6078         PR middle-end/35800
6079         * expr.h (try_casesi): Adjust prototype.
6080         * expr.c (try_casesi): Take fallback label as extra parameter.
6081         Use that for gen_casesi if default_label is NULL.
6082         * stmt.c (expand_case): Pass fallback label to try_casesi,
6083         make sure to fill gaps with a fallback label if default_label
6084         is not present.
6085
6086 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
6087
6088         PR target/35801
6089         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6090
6091 2008-04-03  Ben Elliston  <bje@au.ibm.com>
6092
6093         * expmed.c (extract_split_bit_field): Remove if (0) code.
6094         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6095         (do_ds_constraint): Likewise.
6096
6097 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
6098
6099         * doc/cppopts.texi (-dU): Document.
6100         * c-common.h (flag_dump_macros): Update comment.
6101         * c-opts.c (handle_OPT_d): Handle -dU.
6102         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6103         dump_queued_macros, cb_used_define, cb_used_undef): New.
6104         (init_pp_output): Handle -dU.
6105         (cb_line_change): Call dump_queued_macros.
6106         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6107
6108 2008-04-02  Anatoly Sokolov <aesok@post.ru>
6109
6110         * config/avr/predicates.md (io_address_operand): New predicate. 
6111         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6112         * config/avr/avr.c (avr_io_address_p): Remove function.
6113         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
6114         'avr_io_address_p' function.
6115         (out_movhi_r_mr): (Ditto.).
6116         (out_movqi_mr_r): (Ditto.).
6117         (out_movhi_mr_r): (Ditto.).
6118         (avr_address_cost): (Ditto.).
6119
6120 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
6121
6122         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6123         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6124         in 32bit mode when XMM registers are available to avoid store
6125         forwarding stalls.
6126         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6127         corresponding post-reload splitters.
6128
6129 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6130
6131         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6132         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
6133         __builtin_ia32_roundss.
6134         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6135         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6136         __builtin_ia32_roundss.
6137         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6138         IX86_BUILTIN_SHUFPD here.
6139
6140 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6141
6142         * config/i386/i386.md (plogic): New.
6143         (plogicprefix): Likewise.
6144
6145         * config/i386/mmx.md (mmx_<code><mode>3): New.
6146         (mmx_and<mode>3): Removed.
6147         (mmx_ior<mode>3): Likewise.
6148         (mmx_xor<mode>3): Likewise.
6149
6150         * config/i386/sse.md (<code><mode>3): New.
6151         (*<code><mode>3): Likewise.
6152         (*<code><mode>3): Likewise.
6153         (<code><mode>3): Likewise.
6154         (*sse_<code><mode>3): Likewise.
6155         (*sse2_<code><mode>3): Likewise.
6156         (<code>tf3): Likewise.
6157         (*<code>tf3): Likewise.
6158         (and<mode>3): Likewise.
6159         (*and<mode>3): Likewise.
6160         (ior<mode>3): Removed.
6161         (*ior<mode>3): Likewise.
6162         (xor<mode>3): Likewise.
6163         (*xor<mode>3): Likewise.
6164         (*and<mode>3): Likewise.
6165         (*ior<mode>3): Likewise.
6166         (*xor<mode>3): Likewise.
6167         (and<mode>3): Likewise.
6168         (*sse_and<mode>3): Likewise.
6169         (*sse2_and<mode>3): Likewise.
6170         (andtf3): Likewise.
6171         (*andtf3): Likewise.
6172         (ior<mode>3): Likewise.
6173         (*sse_ior<mode>3): Likewise.
6174         (*sse2_ior<mode>3): Likewise.
6175         (iortf3): Likewise.
6176         (*iortf3): Likewise.
6177         (xor<mode>3): Likewise.
6178         (*sse_xor<mode>3): Likewise.
6179         (*sse2_xor<mode>3): Likewise.
6180         (xortf3): Likewise.
6181         (*xortf3): Likewise.
6182
6183 2008-04-02  Richard Guenther  <rguenther@suse.de>
6184
6185         PR tree-optimization/14495
6186         PR tree-optimization/34793
6187         * tree-vrp.c (struct switch_update): New structure.
6188         (to_remove_edges, to_update_switch_stmts): New VECs.
6189         (simplify_switch_using_ranges): New function.  Remove not taken
6190         case labels and edges.
6191         (simplify_stmt_using_ranges): Call it.
6192         (identify_jump_threads): Mark edges we have queued for removal
6193         so we don't thread them.
6194         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6195         case label vector.
6196         * tree-cfg.c (group_case_labels): Deal with missing default label.
6197         (tree_verify_flow_info): Allow missing default label.
6198         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6199         (emit_case_nodes): Likewise.
6200         (expand_case): Do not rely on the default label to be present.
6201         * expr.c (try_casesi): Deal with NULL default_label.
6202         (do_tablejump): Likewise.
6203
6204 2008-04-02  Richard Guenther  <rguenther@suse.de>
6205
6206         PR tree-optimization/14495
6207         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6208         SWITCH_EXPR here ...
6209         (vrp_visit_switch_stmt): ... but here (new function).
6210         (find_case_label_index): New helper function.
6211         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6212
6213 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6214
6215         * fwprop.c: Fix ISO-C99ism.
6216
6217 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6218
6219         PR bootstrap/35752
6220         * Makefile.in (objdir): Set it here.
6221         * configure.ac: Not here.  Find dynamic linker characteristics.
6222         * exec-tool.in: Use them.
6223         * aclocal.m4: Regenerate.
6224         * configure: Regenerate.
6225
6226 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6227
6228         * expr.c (expand_var): Delete it.
6229         * expr.h (expand_var): Delete prototype.
6230         * function.c (expand_function_start): Use expand_decl instead.
6231         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6232         langhook.
6233
6234 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
6235
6236         PR rtl-optimization/35542
6237         * fwprop.c (forward_propagate_and_simplify): Replace
6238         loc_reg_mentioned_in_p with reg_mentioned_p.
6239
6240 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
6241
6242         PR rtl-optimization/35281
6243         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6244         (propagate_rtx_1): Handle PR_HANDLE_MEM.
6245         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6246         (varying_mem_p): Move above propagate_rtx.
6247         (all_uses_available_at): Do not check MEMs.
6248
6249 2008-04-02  Rafael Espindola  <espindola@google.com>
6250
6251         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6252         (register_edge_assert_for_2): Split the cond argument.
6253         (register_edge_assert_for_1): Adjust for the change in
6254         register_edge_assert_for_2.
6255         (register_edge_assert_for): Split the cond argument.
6256         (find_switch_asserts): Adjust for the change in
6257         register_edge_assert_for.
6258
6259 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
6260
6261         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
6262         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
6263         offsets for 64-bit mingw.
6264         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
6265         abi for x86_64-pc-mingw.
6266
6267 2008-04-02  Richard Guenther  <rguenther@suse.de>
6268
6269         * tree-vrp.c (extract_range_from_assert): Make sure to not
6270         produce range min/max with TREE_OVERFOW set.
6271         If merging a anti-range and a range keep the anti-range if
6272         the range covers all values of the type.
6273         (register_edge_assert_for_2): Only allow sign-changing
6274         conversions in detecting canonical range checks.  Also
6275         register an assert for the unsigned name if useful.
6276
6277         PR tree-optimization/35787
6278         * tree-vrp.c (vrp_val_max): New function.
6279         (vrp_val_min): Likewise.
6280         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6281         (vrp_val_is_min): Likewise.
6282         (supports_overflow_infinity): Use vrp_val_{min,max}.
6283         (negative_overflow_infinity): Likewise.
6284         (positive_overflow_infinity): Likewise.
6285         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6286         (is_positive_overflow_infinity): Likewise.
6287         (is_overflow_infinity): Likewise.
6288         (avoid_overflow_infinity): Use vrp_val_{min,max} and
6289         vrp_val_is_{min,max}.
6290         (set_and_canonicalize_value_range): Canonicalize anti-ranges
6291         to ranges if possible.  Avoid empty ranges.
6292
6293 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6294
6295         PR middle-end/35705
6296         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6297         the expression is a function address.
6298
6299 2008-04-01  George Helffrich  <george@gcc.gnu.org>
6300
6301         PR fortran/35154, fortran/23057
6302         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6303         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6304         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6305         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6306         in common.
6307         (dbxout_syms): Check for COMMON-based symbol and wrap in
6308         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6309         in bracket for efficiency.
6310
6311         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6312         using DW_TAG_common_block + member offset.
6313         (add_pubname_string): New function.
6314         (dw_expand_expr): New function to find block name and offset for
6315         COMMON var.
6316         (common_check): New function to check whether symbol in Fortran COMMON.
6317         (gen_variable_die): If COMMON, use DW_TAG_common_block.
6318
6319 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
6320
6321         PR c/35436
6322         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6323
6324 2008-04-02  Ben Elliston  <bje@au.ibm.com>
6325
6326         * config/v850/v850.md (casesi): Remove if (0) code.
6327         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6328         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6329
6330 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
6331
6332         * config/i386/i386.md (rex64suffix): New mode attribute.
6333         (floathi<mode>2): Disable expander for SSE math.
6334         (*floathi<mode>2_1): New insn insn_and_split pattern.
6335         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6336         corresponding post-reload splitters.
6337         (*floathi<mode>2_i387): New macroized insn pattern.
6338         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6339         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6340         insn_and_split pattern.
6341         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6342         New macroized instruction patterns and corresponding post-reload
6343         splitters.
6344         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6345         and corresponding post-reload splitters.
6346         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6347         New macroized instruction patterns.
6348         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6349         macroized instruction patterns and corresponding post-reload splitters.
6350         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6351         corresponding post-reload splitters.
6352         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6353         New macroized instruction patterns.
6354         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6355         corresponding post-reload splitters.
6356         (*floatsi<mode>2_i387): New macroized instruction patterns.
6357
6358 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
6359
6360         * config/i386/i386.md (smaxmin): New.
6361         (umaxmin): Likewise.
6362         (maxminiprefix): Likewise.
6363         (maxminfprefix): Likewise.
6364         (<code><mode>3): Likewise.
6365         (smin<mode>3): Removed.
6366         (smax<mode>3): Likewise.
6367
6368         * config/i386/mmx.md (mmx_<code>v2sf3): New.
6369         (mmx_<code>v4hi3): Likewise.
6370         (mmx_<code>v8qi3): Likewise.
6371         (mmx_smaxv2sf3): Removed.
6372         (mmx_sminv2sf3): Likewise.
6373         (mmx_umaxv8qi3): Likewise.
6374         (mmx_smaxv4hi3): Likewise.
6375         (mmx_uminv8qi3): Likewise.
6376         (mmx_sminv4hi3): Likewise.
6377
6378         * config/i386/sse.md (<addsub><mode>3): New.
6379         (*<addsub><mode>3): Likewise.
6380         (<sse>_vm<addsub><mode>3): Likewise.
6381         (<maxmin><mode>3): Likewise.
6382         (*<maxmin><mode>3_finite): Likewise.
6383         (*<maxmin><mode>3): Likewise.
6384         (<sse>_vm<maxmin><mode>3): Likewise.
6385         (sse3_h<addsub>v4sf3): Likewise.
6386         (sse3_h<addsub>v2df3): Likewise.
6387         (<maxmin>v16qi3): Likewise.
6388         (*<maxmin>v16qi3): Likewise.
6389         (<maxmin>v8hi3): Likewise.
6390         (*<maxmin>v8hi3): Likewise.
6391         (*sse4_1_<maxmin><mode>3): Likewise.
6392         (*sse4_1_<maxmin><mode>3): Likewise.
6393         (add<mode>3): Removed.
6394         (*add<mode>3): Likewise.
6395         (<sse>_vmadd<mode>3): Likewise.
6396         (sub<mode>3): Likewise.
6397         (*sub<mode>3): Likewise.
6398         (<sse>_vmsub<mode>3): Likewise.
6399         (smin<mode>3): Likewise.
6400         (*smin<mode>3_finite): Likewise.
6401         (*smin<mode>3): Likewise.
6402         (<sse>_vmsmin<mode>3): Likewise.
6403         (smax<mode>3): Likewise.
6404         (*smax<mode>3_finite): Likewise.
6405         (*smax<mode>3): Likewise.
6406         (<sse>_vmsmax<mode>3): Likewise.
6407         (sse3_haddv4sf3): Likewise.
6408         (sse3_haddv2df3): Likewise.
6409         (sse3_hsubv4sf3): Likewise.
6410         (sse3_hsubv2df3): Likewise.
6411         (umaxv16qi3): Likewise.
6412         (*umaxv16qi3): Likewise.
6413         (smaxv8hi3): Likewise.
6414         (*smaxv8hi3): Likewise.
6415         (*sse4_1_smax<mode>3): Likewise.
6416         (*sse4_1_umax<mode>3): Likewise.
6417         (uminv16qi3): Likewise.
6418         (*uminv16qi3): Likewise.
6419         (sminv8hi3): Likewise.
6420         (*sminv8hi3): Likewise.
6421         (*sse4_1_smin<mode>3): Likewise.
6422         (*sse4_1_umin<mode>3): Likewise.
6423
6424 2008-04-01  Rafael Espindola  <espindola@google.com>
6425
6426         * tree-cfg.c (verify_expr): remove in_phi.
6427         (verify_stmt): Don't call walk_tree with verify_expr. Use
6428         is_gimple_min_invariant instead of is_gimple_val.
6429
6430 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
6431
6432         * doc/include/gpl_v3.texi: Update for manpage generation.
6433         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
6434         gpl.texi.
6435         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
6436         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
6437         gpl_v3.texi instead of gpl.texi.
6438         (gpl.pod): New.
6439
6440 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
6441
6442         PR pch/13675
6443         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
6444
6445 2008-04-01  Rafael Espindola  <espindola@google.com>
6446
6447         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
6448         (extract_code_and_val_from_cond): Use
6449         extract_code_and_val_from_cond_with_ops.
6450
6451 2008-04-01  Jan Hubicka  <jh@suse.cz>
6452
6453         * function.c (free_after_compilation): Free epilogue_delay_list.
6454         (prepare_function_start): Assert that previous compilation was freed.
6455
6456 2008-04-01  Jan Hubicka  <jh@suse.cz>
6457             Jim Wilson  <wilson@tuliptree.org>
6458             Andreas Tobler <andreast@gcc.gnu.org>
6459
6460         PR middle-end/35781
6461         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
6462         rtl.emit instead cfun->emit.
6463         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
6464         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
6465
6466 2008-04-01  Ben Elliston  <bje@au.ibm.com>
6467
6468         * doc/c-tree.texi (Function Basics): Fix grammatical error.
6469
6470 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
6471
6472         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
6473         New options
6474         (fprofile-use): Add var flag_profile_use
6475         * coverage.c (coverage_begin_output): Do not open a gcno file for
6476         output only if -ftest-coverage is set.
6477         Do not add getpwd() to gcda file path.
6478         (build_gcov_info): Check the new flag
6479         flag_profile_datafile_relative_path.
6480         (coverage_init): Use profile_data_prefix.
6481         Read profile counter only if flag_profile_use is set.
6482         * opts.c (common_handle_option): New option fprofile-use=,
6483         fprofile-dir=, fprofile-generate=.
6484         * toplev.c (profile_data_prefix): New variable definition.
6485         * toplev.h (profile_data_prefix): New declaration.
6486         * doc/invoke.tex (Option Summary, Optimization Options):
6487         Add new options.
6488
6489 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
6490
6491         * varasm.c (output_constant_pool_1): In LABEL_REF check,
6492         use tmp consistently.
6493
6494         PR target/35695
6495         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
6496         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6497         UNSPEC_FR_RECIP_APPROX_RES.
6498         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
6499
6500 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
6501
6502         PR c/35750
6503         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
6504
6505 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6506
6507         PR middle-end/30186
6508         * fold-const.c (fold_indirect_ref_1): Support accessing non first
6509         element of the vector via a pointer.
6510
6511 2008-03-31  Ian Lance Taylor  <iant@google.com>
6512
6513         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
6514
6515 2008-03-31  Jan Hubicka  <jh@suse.cz>
6516
6517         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6518         get_arg_pointer_save_area.
6519         * expr.c (init_expr): Just clear out rtl.expr.
6520         * function.c (free_after_compilation): Clear out whole RTL structure.
6521         (get_func_frame_size): Merge into ...
6522         (get_frame_size): ... this one.
6523         (assign_stack_local_1): Merge into ...
6524         (assign_stack_local): ... this one.
6525         (expand_function_end): Update call of get_arg_pointer_save_area.
6526         (get_art_pointer_save_area): Remove cfun argument.
6527         * function.h (emit_status): regno_pointer_align does not need length
6528         attribute. Move x_regno_reg_rtx to ...
6529         (regno_reg_rtx): ... new global array.
6530         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
6531         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
6532         apply_args_value, forced_labels, stack_pointer_delta):
6533         Update accestors.
6534         (struct varasm_status): Move here from varasm.c
6535         (struct rtl_data): New. Move here some fields from struct function.
6536         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6537         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6538         used_temp_slots avail_temp_slots, temp_slot_level,
6539         nonlocal_goto_handler_labels): Update accesstors.
6540         (rtl): New global variable.
6541         (struct function): Move some fileds to rtl_data.
6542         (get_arg_pointer_save_area): Update prototype.
6543         * emit-rtl.c (rtl): Declare.
6544         (regno_reg_rtx): Declare.
6545         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6546         Update.
6547         (gen_reg_rtx): Update.
6548         (init_virtual_regs): Do not tate emit_status argument.
6549         (init_emit): Do not allocate emit.
6550         * varasm.c (varasm_statuc): Move to function.h.
6551         (n_deferred_constatns): Update accestor.
6552         (init_varasm_status): Do not allocate varasm_status.
6553         (force_const_mem, get_pool_size, output_constant_pool): Update.
6554         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6555         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6556
6557 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
6558
6559         PR rtl-optimization/35729
6560         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
6561         references.
6562
6563 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
6564
6565         PR target/32000
6566         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
6567         load/store if memory is unaligned.
6568         (*movti_rex64): Likewise.
6569
6570         * config/i386/predicates.md (misaligned_operand): New.
6571
6572 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
6573
6574         PR tree-opt/35431
6575         * tree-ssa-phiopt.c (conditional_replacement): Return early for
6576         complex types.
6577
6578 2008-03-31  Jan Beulich  <jbeulich@novell.com>
6579
6580         * config/ia64/constraints.md: Add 'j' constraint.
6581         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
6582         (movdi_internal): Likewise.
6583
6584 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
6585
6586         PR c/35748
6587         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
6588
6589 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6590
6591         PR target/35757
6592         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
6593         proper error message for the third argument on blendpd and
6594         blendps.
6595
6596         * config/i386/sse.md (blendbits): New.
6597         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
6598
6599 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6600
6601         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
6602
6603 2008-03-30  Richard Guenther  <rguenther@suse.de>
6604
6605         PR middle-end/31023
6606         * fold-const.c (fold_sign_changed_comparison): Do leave
6607         conversions to base-types alone.
6608
6609 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6610
6611         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
6612         the link register if one altivec register is be saved.
6613
6614 2008-03-30  Ben Elliston  <bje@au.ibm.com>
6615
6616         * final.c (final_scan_insn): Remove if (0) code.
6617
6618 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
6619
6620         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
6621
6622 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6623
6624         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
6625         of V4SFmode to ix86_binary_operator_ok.
6626
6627 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
6628
6629         * config/i386/i386.c (override_options): Initialize
6630         ix86_veclib_handler to ix86_veclibabi_svml when
6631         -mveclibabi=svml is used.
6632         (ix86_veclibabi_svml): New function for SVML ABI style
6633         vectorization support.
6634         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
6635
6636 2008-03-28  Rafael Espindola  <espindola@google.com>
6637
6638         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
6639         (tree_binary_nonnegative_warnv_p): Make it public.
6640         (tree_single_nonnegative_warnv_p): Make it public.
6641         (tree_invalid_nonnegative_warnv_p): Make it public.
6642         (tree_unary_nonzero_warnv_p): Make it public.
6643         (tree_binary_nonzero_warnv_p): Make it public
6644         (tree_single_nonzero_warnv_p): Make it public.
6645         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
6646         (extract_range_from_binary_expr): Split the expr argument.
6647         (extract_range_from_unary_expr): Split the expr argument.
6648         (extract_range_from_comparison): Split the expr argument.
6649         (extract_range_from_expr): Use the new aux functions.
6650         (vrp_evaluate_conditional_warnv): Use
6651         vrp_evaluate_conditional_warnv_with_ops.
6652         * tree.h (tree_unary_nonzero_warnv_p): Declare.
6653         (tree_binary_nonzero_warnv_p): Declare.
6654         (tree_single_nonzero_warnv_p): Declare.
6655         (tree_expr_nonzero_warnv_p): Declare.
6656         (tree_unary_nonnegative_warnv_p): Declare.
6657         (tree_binary_nonnegative_warnv_p): Declare.
6658         (tree_single_nonnegative_warnv_p): Declare.
6659         (tree_invalid_nonnegative_warnv_p): Declare.
6660
6661 2008-03-28  Richard Guenther  <rguenther@suse.de>
6662
6663         PR tree-optimization/30317
6664         PR tree-optimization/30911
6665         PR tree-optimization/34793
6666         * tree-vrp.c (set_and_canonicalize_value_range): New function.
6667         (struct assert_locus_d): New member EXPR.
6668         (register_new_assert_for): Add EXPR parameter to support
6669         ASSERT_EXPR <name, expr OP limit>.
6670         (register_edge_assert_for_1): Adjust callers.
6671         (find_assert_locations): Likewise.
6672         (process_assert_insertions_for): Build condition from expression.
6673         (extract_range_from_assert): Handle ASSERT_EXPRs
6674         of the form ASSERT_EXPR <name, expr OP limit>.
6675         (register_edge_assert_for_2): New helper registering
6676         asserts for comparisons.  Recognize range tests of the form
6677         (unsigned)i - CST1 OP CST2.
6678         (register_edge_assert_for_1): Use it.
6679         (register_edge_assert_for): Likewise.
6680         (needs_overflow_infinity): Integer sub-types
6681         do not need overflow infinities.
6682         (vrp_val_is_max): The extreme values of integer sub-types
6683         are those of the base type.
6684         (vrp_val_is_min): Likewise.
6685         * tree.def (ASSERT_EXPR): Document extra allowed conditional
6686         expressions.
6687
6688 2008-03-28  Nick Clifton  <nickc@redhat.com>
6689
6690         PR target/31110
6691         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
6692         Return GENERAL_REGS for stack adjustment reloads.
6693
6694 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6695
6696         PR target/31334
6697         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
6698         const_vector when all the vectors are constant.
6699
6700 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
6701
6702         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
6703         comparisons.
6704         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
6705         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
6706         (scc_sf): New.
6707         (s<code>_sf): Use new scc_sf attribute for opcode names.
6708
6709 2008-03-27  Tom Tromey  <tromey@redhat.com>
6710
6711         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
6712         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
6713         config/spu/t-spu-elf, config/i386/t-interix,
6714         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
6715         config/i386/x-darwin, config/i386/x-mingw32,
6716         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
6717         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
6718         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
6719         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
6720         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
6721         config/rs6000/x-darwin, config/rs6000/t-rs6000,
6722         config/score/t-score-elf, config/arm/t-strongarm-pe,
6723         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
6724         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
6725         Revert automatic dependency patch.
6726
6727 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6728
6729         PR target/35657
6730         * config/i386/i386.c (ix86_function_arg_boundary): Align
6731         decimal floating point to its natural boundary.
6732
6733 2008-03-27  Richard Guenther  <rguenther@suse.de>
6734
6735         PR middle-end/35716
6736         * fold-const.c (fold_comparison): Restrict distinct decl
6737         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
6738         solely rely on operand_equal_p.
6739
6740 2008-03-27  Richard Guenther  <rguenther@suse.de>
6741
6742         PR c/32511
6743         * c-common.c (handle_weak_attribute): Reject combination of
6744         weak and inline.
6745
6746 2008-03-27  Richard Guenther  <rguenther@suse.de>
6747
6748         PR tree-optimization/32810
6749         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6750         conversions from DECL_INITIAL.
6751         (fold_const_aggregate_ref): Likewise from constructor elements.
6752
6753 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
6754
6755         * tree-affine.h (aff_combination_expand): Declare.
6756         (get_inner_reference_aff): Likewise.
6757         * tree-affine.c (aff_combination_expand): Split out from
6758         tree_to_aff_combination_expand.
6759         (get_inner_reference_aff): New function.
6760         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6761         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6762         (struct lim_aux_data): sm_done field removed.
6763         (mem_ref_loc_p, mem_ref_locs_p): New types.
6764         (struct mem_ref): Added id, stored, accesses_in_loop,
6765         indep_loop, dep_loop, indep_ref, dep_ref fields.
6766         Removed is_stored, locs and next fields.
6767         (memory_accesses): New variable.
6768         (movement_possibility): Do not allow moving statements
6769         that store to memory.
6770         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6771         New functions.
6772         (determine_max_movement): For statements with memory references,
6773         find the outermost loop in that the reference is independent.
6774         (move_computations_stmt): Mark the virtual operands for renaming.
6775         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6776         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6777         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6778         add_vop_ref_mapping, create_vop_ref_mapping_loop,
6779         create_vop_ref_mapping, analyze_memory_references,
6780         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6781         get_all_locs_in_loop, ref_always_accessed_p,
6782         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6783         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6784         store_motion_loop, store_motion): New functions.
6785         (struct vop_to_refs_elt): New type.
6786         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6787         memref_hash, memref_eq, hoist_memory_references): Rewritten.
6788         (schedule_sm): Replaced by...
6789         (execute_sm): ... this.
6790         (determine_lsm_ref, hoist_memory_references,
6791         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6792         find_more_ref_vops, free_mem_ref, free_mem_refs,
6793         determine_lsm_loop, determine_lsm): Removed.
6794         (tree_ssa_lim_finalize): Free data structures used by store motion.
6795         (tree_ssa_lim): Call analyze_memory_references.  Use
6796         store_motion instead of determine_lsm.
6797
6798 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6799
6800         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6801         rename tmake_file to m68hc11/t-m68hc11.
6802         (mcore): Set inhibit_libc to true.
6803         * config.host (alpha*-dec-*vms*): Set extra_programs.
6804         (interix3*): Don't use host_xmake_file.
6805         * configure.ac: Let config.gcc override inhibit_libc.
6806         * configure: Regenerate.
6807
6808         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6809         * config/t-openbsd-thread: Remove commented out lines.
6810         
6811         * config/x-interix: Remove.
6812
6813         * config/m68hc11/t-m68hc11-gas: Rename to...
6814         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
6815
6816         * config/mcore/t-mcore: Remove T_CFLAGS.
6817         * config/mcore/t-mcore-pe: Likewise.
6818
6819 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
6820
6821         * configure.ac: Replace custom __GNU_SOURCE test with
6822         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
6823         * aclocal.m4: Regenerate.
6824         * configure: Regenerate.
6825         * config.in: Regenerate.
6826
6827 2008-03-27  Richard Guenther  <rguenther@suse.de>
6828
6829         * fold-const.c (target.h): Include.
6830         (fold_comparison): Fold comparison of addresses of decls
6831         that bind locally or of constants.  Consolidate address folding code.
6832         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6833         results from fold_binary_to_constant.
6834         (compare_values_warnv): Likewise.
6835
6836 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
6837
6838         PR middle-end/35429
6839         * fold-const.c (fold_truthop): Check for integeral types when folding
6840         a == 0 && b == 0 and a != 0 || b != 0 .
6841
6842 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6843
6844         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6845
6846 2008-03-26  Andreas Schwab  <schwab@suse.de>
6847
6848         * doc/invoke.texi: Fix use of @item vs. @itemx.
6849
6850 2008-03-26  Tom Tromey  <tromey@redhat.com>
6851
6852         * Makefile.in (build/gensupport.o, build/print-rtl.o,
6853         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6854         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6855         build/gencodes.o, build/genconditions.o, build/genconfig.o,
6856         build/genconstants.o, build/genemit.o, build/genextract.o,
6857         build/genflags.o, build/genmddeps.o, build/genopinit.o,
6858         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6859         options.h.
6860
6861 2008-03-26  Richard Guenther  <rguenther@suse.de>
6862
6863         Revert
6864         2008-03-26  Richard Guenther  <rguenther@suse.de>
6865
6866         * fold-const.c (target.h): Include.
6867         (fold_comparison): Fold comparison of addresses of two decls
6868         that bind locally.  Consolidate address folding code.
6869
6870 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6871
6872         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6873         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6874         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6875         dconstsqrt2, dconstthird, dconste and/or dconst10.
6876         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6877         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6878         dconstsqrt2, dconste): Delete.
6879         (init_emit_once): Likewise.  Simplify initializing dconstm1.
6880         Constify variable.
6881         * real.c (get_real_const): New.
6882         * real.h (dconst3, dconst10, dconstm2, dconstthird,
6883         dconstsqrt2, dconste): Delete.
6884         (real_value_const, get_real_const): New.
6885
6886 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
6887
6888         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6889
6890         * config/i386/i386.c (ix86_function_arg_boundary): Check
6891         BIGGEST_ALIGNMENT instead of 128.
6892         (setup_incoming_varargs_64): Likewise.
6893
6894 2008-03-26  Tom Tromey  <tromey@redhat.com>
6895
6896         * Makefile.in (DEPFILES): Add missing '/'.
6897
6898 2008-03-26  Richard Guenther  <rguenther@suse.de>
6899
6900         * fold-const.c (target.h): Include.
6901         (fold_comparison): Fold comparison of addresses of two decls
6902         that bind locally.  Consolidate address folding code.
6903
6904 2008-03-26  Nick Clifton  <nickc@redhat.com>
6905
6906         PR target/31232
6907         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6908         not allow INT+INT as a legitimate addressing mode.
6909
6910 2008-03-26  Richard Guenther  <rguenther@suse.de>
6911
6912         * tree-flow.h (widen_bitfield): Remove declaration.
6913         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6914         (widen_bitfield): Remove function.
6915         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6916         code.
6917
6918 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6919
6920         PR target/31558
6921         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6922         error_mark_node's.
6923
6924 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
6925
6926         PR rtl-optimization/35232
6927         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6928         (forget_old_reloads_1, forget_marked_reloads): Don't clear
6929         reg_reloaded_call_part_clobbered here.
6930         (reload_regs_reach_end_p): New function.
6931         (reload_reg_rtx_for_input): New variable.
6932         (reload_reg_rtx_for_output): Likewise.
6933         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6934         when reassigning a pseudo register.  Load reloadreg from 
6935         reload_reg_rtx_for_input, moving the mode and register
6936         calculation to...
6937         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
6938         instead of the original when deciding whether an input reload
6939         would be a no-op or whether an output reload can be deleted.
6940         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6941         when setting up new_spill_reg_store.  Load it from
6942         reload_reg_rtx_for_output, moving the mode and register
6943         calculation to...
6944         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
6945         instead of the original when deciding whether an output reload
6946         would be a no-op.  Do the same when modifying insn notes.
6947         Use rtx_equal_p instead of == to compare the registers.
6948         (inherit_piecemeal_p): Take a mode and two register numbers
6949         as argument.
6950         (emit_reload_insns): Clear new_spill_reg_store for every hard
6951         register in the reload register.  Remove spill registers
6952         from reg_reloaded_valid before considering whether to record
6953         inheritance information for them.  Use reload_reg_rtx_for_output
6954         instead of reg_rtx when recording output reloads.  Use
6955         reload_reg_rtx_for_input instead of reg_rtx when recording
6956         input reloads.  Set or clear reg_reloaded_call_part_clobbered
6957         at the same time as setting reg_reloaded_valid.
6958         (delete_output_reload): Add a new_reload_reg parameter and use it
6959         instead of rld[j].reg_rtx.
6960         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6961         calls accordingly.
6962
6963 2008-03-25  Tom Tromey  <tromey@redhat.com>
6964
6965         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6966         (build/genattr.o): Likewise.
6967         (build/genattrtab.o): Likewise.
6968         (build/gencodes.o): Likewise.
6969         (build/genconfig.o): Likewise.
6970         (build/genconstants.o): Likewise.
6971         (build/genemit.o): Likewise.
6972         (build/genextract.o): Likewise.
6973         (build/genflags.o): Likewise.
6974
6975 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
6976         
6977         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6978         instead of size_int for integer types.
6979         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
6980         to match type of MINUS_EXPR.
6981         
6982 2008-03-25  Tom Tromey  <tromey@redhat.com>
6983
6984         * configure: Rebuilt.
6985         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6986         Makefile.
6987
6988 2008-03-25  Tom Tromey  <tromey@redhat.com>
6989
6990         * config/x-solaris (host-solaris.o): Update.
6991         * config/x-linux (host-linux.o): Update.
6992         * config/x-hpux (host-hpux.o): Update.
6993         * config/x-darwin (host-darwin.o): Update.
6994         * config/v850/t-v850e (v850-c.o): Update.
6995         * config/v850/t-v850 (v850-c.o): Update.
6996         * config/t-vxworks (vxworks.o): Update.
6997         * config/t-sol2 (sol2-c.o, sol2.o): Update.
6998         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6999         * config/spu/t-spu-elf (spu-c.o): Update.
7000         (spu.o): Remove.
7001         * config/sh/t-symbian (sh-c.o): Update.
7002         (symbian.o): Update.
7003         * config/sh/t-sh (sh-c.o): Update.
7004         * config/score/t-score-elf (score7.o, score3.o): Update.
7005         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7006         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7007         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7008         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7009         (rs6000.o): Remove.
7010         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7011         * config/m32c/t-m32c (m32c-pragma.o): Update.
7012         * config/ia64/t-ia64 (ia64-c.o): Update.
7013         * config/i386/x-mingw32 (host-mingw32.o): Update.
7014         * config/i386/x-i386 (driver-i386.o): Update.
7015         * config/i386/x-darwin (host-i386-darwin.o): Update.
7016         * config/i386/x-cygwin (host-cygwin.o): Update.
7017         * config/i386/t-nwld (nwld.o): Update.
7018         * config/i386/t-netware (netware.o): Update.
7019         * config/i386/t-interix (winnt.o): Update.
7020         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7021         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7022         msformat-c.o): Update.
7023         * config/bfin/t-bfin-linux (generated_files): Add
7024         linux-sysroot-suffix.h.
7025         * config/arm/t-wince-pe (pe.o): Update.
7026         * config/arm/t-strongarm-pe (pe.o): Update.
7027         * config/arm/t-pe (pe.o): Update.
7028         * config/arm/t-arm (arm-c.o): Update.
7029         * doc/install.texi (Prerequisites): Require make 3.80.
7030         * Makefile.in: Remove .o targets.
7031         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7032         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7033         (simple_generated_h, simple_generated_c): Move earlier.
7034         (generated_files): New variable.
7035         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7036         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7037         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7038         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7039         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7040         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7041         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7042         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7043         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7044         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7045         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7046         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7047         (.c.o): Remove.
7048         (COMPILE.base, COMPILE): New variables.
7049         (%.o): New pattern rule.
7050         (ALL_HOST_OBJS): New variable.
7051         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7052         (dummy-checksum.o, cc1-checksum.o): Remove.
7053         (DRIVER_SHLIB): New variable.
7054         (DRIVER_DEFINES): Use it.
7055         (gencondmd.c): Move out of build/.
7056         (s-conditions): Update.
7057         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7058         (ALL_BUILD_OBJS): Likewise.
7059         (build/%.o): Use BUILDCOMPILE.
7060         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7061         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7062         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7063         build/gencheck.o, build/gencodes.o, build/genconditions.o,
7064         build/genconfig.o, build/genconstants.o, build/genemit.o,
7065         build/genextract.o, build/genflags.o, build/genmddeps.o,
7066         build/genopinit.o, build/genoutput.o, build/genpeep.o,
7067         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7068         build/gen-protos.o, build/scan.o, build/fix-header.o,
7069         build/scan-decls.o): Simplify.
7070         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7071         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7072         prefix.o, toplev.o): Reduce to variable setting.
7073         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
7074         ($(out_object_file), gcc-options.o): New targets.
7075         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
7076         * configure: Rebuilt.
7077         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7078         * doc/sourcebuild.texi (Front End Directory): Document new variable.
7079
7080 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
7081
7082         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7083         complain when we hit an error, return ERROR_MARK_NODE.
7084
7085 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7086
7087         * config/sh/constraints.md (Pso, Psz): New constraints.
7088         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7089         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7090
7091 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7092
7093         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
7094         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7095
7096 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
7097
7098         * config/sh/sh.md (prefetch): Add condition for SH2A target.
7099         (prefetch_sh2a): New.   
7100
7101 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7102             Naveen.H.S  <naveen.hs@kpitcummins.com>
7103
7104         * config/sh/constraints.md (I28): New constraint.
7105         * config/sh/sh.c (broken_move): Add support for movi20s.
7106         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
7107
7108 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
7109             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
7110             Naveen.H.S  <naveen.hs@kpitcummins.com>
7111
7112         * config/sh/sh.c (SH_ATTRIBUTES): Define.
7113         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7114         (print_operand): Handle resbank in %@ operand code.
7115         (sh_encode_section_info): New.
7116         (push_regs): Add conditions for resbank.
7117         (sh_expand_epilogue): Likewise.
7118         (sh_insert_attributes): Likewise.
7119         (sh_attribute_table): Likewise.
7120         (sh_handle_resbank_handler_attribute): New.
7121         (sh2a_handle_function_vector_handler_attribute): New.
7122         (sh2a_is_function_vector_call): New.
7123         (sh2a_get_function_vector_number): New.
7124         (sh2a_function_vector_p): New.
7125         (sh_cfun_resbank_handler_p): New.
7126         * config/sh/sh.md (calli): Emit jsr/n if possible.
7127         (calli_tbr_rel): New.
7128         (calli_pcrel): Emit jsr/n if possible.
7129         (return_i): Emit rts/n if possible.
7130         (call_valuei_tbr_rel): New.
7131         (call_valuei_pcrel): Add condition for SH2A target.
7132         (call_value): Likewise.
7133         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7134         (sh2a_get_function_vector_number): Likewise.
7135         (sh2a_is_function_vector_call): Likewise.
7136         * doc/extend.texi: Document TBR relative addressing of SH2A.
7137         (resbank): Add description for SH2A.
7138
7139 2008-03-24  Richard Guenther  <rguenther@suse.de>
7140
7141         PR c/22371
7142         * gimplify.c (gimplify_modify_expr): For frontend type-correct
7143         pointer assignments change conversions according to middle-end rules.
7144         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7145         * configure.ac: Include type checking in yes.
7146         * configure: Regenerate.
7147
7148 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7149
7150         * diagnostic.c (diagnostic_count_diagnostic): Delete.
7151         (diagnostic_report_diagnostic): Update. Handle ICEs here.
7152         
7153 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
7154
7155         * gthr-vxworks.h (UNUSED): Define.
7156
7157 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
7158
7159         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
7160
7161 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
7162
7163         * doc/extend.texi (Function Attributes): Add missing comma in the
7164         example of the "alloc_size" attribute.
7165         
7166 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
7167
7168         Revert:
7169         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7170
7171         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7172         32bit host.
7173
7174         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7175
7176         PR target/35496
7177         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7178         of the underlying type of a MS bitfield layout to the natural
7179         alignment of the type.
7180
7181         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7182
7183         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7184         to their natural alignment to avoid store forwarding stalls.
7185
7186 2008-03-22  Richard Guenther  <rguenther@suse.de>
7187
7188         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7189         For PHI nodes verify the address is invariant.
7190         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7191         (get_symbol_constant_value): Use is_gimple_min_invariant.
7192         (maybe_fold_stmt_indirect): Likewise.
7193
7194 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7195
7196         PR rtl-optimization/33927
7197         * Makefile.in (dse.o): Depend on $(TM_P_H).
7198         * expr.h (extract_low_bits): Declare.
7199         * expmed.c (extract_low_bits): New function.
7200         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7201         * dse.c: Include tm_p.h.
7202         (find_shift_sequence): Remove the read_reg argument and return the
7203         read value.  Emit the instructions instead of returning them.
7204         Iterate on new_mode rather than calculating it each time.
7205         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
7206         source to NEW_MODE and extract_low_bits to convert the shifted
7207         value to READ_MODE.
7208         (replace_read): Allow the load and store to have different mode
7209         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
7210         or extraction instructions before trying the replacement.  Update
7211         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7212
7213 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
7214
7215         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7216         to their natural alignment to avoid store forwarding stalls.
7217
7218 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7219
7220         PR target/27946
7221         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7222         encouraging but not allowing gprs for input;
7223         change the input constraint to !f#r.
7224         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7225         gprs for output;
7226         change the output constraint to !f#r.
7227
7228 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
7229
7230         PR target/13958
7231         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7232         corresponding post-reload splitters.
7233         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7234         when x87 FP math is selected.
7235         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7236         New function prototype.
7237         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7238         unreachable function to ease macroization of insn patterns.
7239
7240 2008-03-21  Martin Jambor  <mjambor@suse.cz>
7241
7242         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7243         reference dumps if ddr is NULL or dependence is unknown.
7244
7245 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7246
7247         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7248         unsigned extension into account.
7249         (ATOMIC_COMPARE_AND_SWAP): Likewise.
7250         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7251         Do computations on a scratch register.
7252
7253 2008-03-21  Richard Guenther  <rguenther@suse.de>
7254
7255         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7256         Use is_gimple_min_invariant instead of TREE_INVARIANT.
7257         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7258         * tree-ssa-dom.c (record_equality): Likewise.
7259         * tree-inline.c (copy_body_r): Likewise.
7260         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7261         TREE_INVARIANT.
7262
7263 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7264
7265         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7266         as 'delete_unused' argument.
7267
7268 2008-03-20  Richard Guenther  <rguenther@suse.de>
7269
7270         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7271         special casing of constant qualifiers.
7272         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7273         care about them in general.
7274         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7275         regardless of their type.
7276         (fold_stmt_r): Forcefully fold *& if we end up with that.
7277
7278 2008-03-20  Paul Brook  <paul@codesourcery.com>
7279
7280         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7281         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7282         linker flags.
7283         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7284         definition.
7285         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7286         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7287
7288 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
7289
7290         * common.opt (Wmudflap): New option.
7291         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7292         (mx_register_decls): Likewise.
7293         (mudflap_finish_file): Likewise.
7294         * doc/invoke.texi: Document -Wno-mudflap.
7295
7296 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
7297
7298         * c-format.c (replace_format_name_to_system_name): New.
7299         (cmp_attribs): New.
7300         (convert_format_name_to_system_name): New.
7301         (decode_format_attr): Add use of convert_format_name_to_system_name.
7302         (format_types_orig): Add gnu_ prefix to names.
7303         (check_format_info_main): Special treating of \0 escaped names for
7304         supporting multi-character format specifiers as I32, I64.
7305         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7306         (gnu_target_overrides_format_attributes): New.
7307         * c-format.h: Add structure target_ovr_attr to hold
7308         system specific formatter names.
7309         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7310         msformat-c.o file to c_target_objs and cxx_target_objs.
7311         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7312         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7313         (TARGET_N_FORMAT_TYPES): New.
7314         * config/i386/msformat-c.c: New.
7315         * config/i386/t-cygming: Add build rule for msformat-c.o.
7316         * doc/extend.texi: Add new format names gnu_* and ms_* and
7317         further details.
7318         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7319
7320 2008-03-20  Ira Rosen  <irar@il.ibm.com>
7321
7322         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7323         optimizations turned on under -O3.
7324         (ftree-vectorize): Add that the flag is turned on with -O3.
7325
7326 2008-03-20  Ben Elliston  <bje@au.ibm.com>
7327
7328         * regmove.c (try_auto_increment): Fix spelling error in comment.
7329         * final.c (final_scan_insn): Likewise.
7330
7331 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
7332
7333         PR target/14552
7334         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7335         allocator preferences for "y" and "r" class registers.
7336         ("*mov<mode>_internal"): Ditto.
7337         ("*movv2sf_internal_rex64"): Ditto.
7338         ("*movv2sf_internal"): Ditto.
7339
7340 2008-03-19  Michael Matz  <matz@suse.de>
7341
7342         PR middle-end/35616
7343         * calls.c (expand_call): Check overlap of arguments with call
7344         address for sibcalls.
7345
7346 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
7347
7348         PR target/35496
7349         * stor-layout.c (update_alignment_for_field): Set minimum alignment
7350         of the underlying type of a MS bitfield layout to the natural
7351         alignment of the type.
7352
7353 2008-03-19  Jan Hubicka  <jh@suse.cz>
7354
7355         PR other/35094
7356         * toplev.c (decode_d_option): Handle all CPP flags.
7357         * tree-vrp.c: Update tree_pass descriptors.
7358         * regrename.c: Update tree_pass descriptors.
7359         * fwprop.c: Update tree_pass descriptors.
7360         * doc/invoke.texi: Remove documentation of dropped -d? flags.
7361         * tree-into-ssa.c: Update tree_pass descriptors.
7362         * tree-dump.c: Update tree_pass descriptors.
7363         * tree-complex.c: Update tree_pass descriptors.
7364         * tree-dump.h: Update tree_pass descriptors.
7365         * see.c: Update tree_pass descriptors.
7366         * cgraphbuild.c: Update tree_pass descriptors.
7367         * tracer.c: Update tree_pass descriptors.
7368         * tree-loop-distribution.c: Update tree_pass descriptors.
7369         * cgraph.c: Update tree_pass descriptors.
7370         * postreload-gcse.c: Update tree_pass descriptors.
7371         * postreload.c: Update tree_pass descriptors.
7372         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
7373         * tree-tailcall.c: Update tree_pass descriptors.
7374         * tree-pass.h (tree_opt_pass): Rename to ...
7375         (opt_pass) ... this one; add "type" field and remove letter field.
7376         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
7377         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
7378         all_lowering_passes): Update declaration.
7379         * ipa-cp.c: Update tree_pass descriptors.
7380         * final.c: Update tree_pass descriptors.
7381         * omp-low.c: Update tree_pass descriptors.
7382         * tree-ssa-dse.c: Update tree_pass descriptors.
7383         * ipa-reference.c: Update tree_pass descriptors.
7384         * tree-ssa-uncprop.c: Update tree_pass descriptors.
7385         * auto-inc-dec.c: Update tree_pass descriptors.
7386         * reorg.c: Update tree_pass descriptors.
7387         * cgraphunit.c: Update tree_pass descriptors.
7388         * tree-ssa-copyrename.c: Update tree_pass descriptors.
7389         * tree-ssa-ccp.c: Update tree_pass descriptors.
7390         * df-core.c: Update tree_pass descriptors.
7391         * mode-switching.c: Update tree_pass descriptors.
7392         * tree-nomudflap.c: Update tree_pass descriptors.
7393         * modulo-sched.c: Update tree_pass descriptors.
7394         * ipa-pure-const.c: Update tree_pass descriptors.
7395         * cse.c: Update tree_pass descriptors.
7396         * web.c: Update tree_pass descriptors.
7397         * tree-stdarg.c: Update tree_pass descriptors.
7398         * tree-ssa-math-opts.c: Update tree_pass descriptors.
7399         * tree-ssa-dom.c: Update tree_pass descriptors.
7400         * tree-nrv.c: Update tree_pass descriptors.
7401         * tree-ssa-alias.c: Update tree_pass descriptors.
7402         * loop-init.c: Update tree_pass descriptors.
7403         * gimple-low.c: Update tree_pass descriptors.
7404         * ipa-inline.c: Update tree_pass descriptors.
7405         * tree-ssa-sink.c: Update tree_pass descriptors.
7406         * global.c: Update tree_pass descriptors.
7407         * ifcvt.c: Update tree_pass descriptors.
7408         * jump.c: Update tree_pass descriptors.
7409         * predict.c: Update tree_pass descriptors.
7410         * tree-ssa-loop.c: Update tree_pass descriptors.
7411         * recog.c: Update tree_pass descriptors.
7412         * dse.c: Update tree_pass descriptors.
7413         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
7414         * tree-eh.c: Update tree_pass descriptors.
7415         * regmove.c: Update tree_pass descriptors.
7416         * local-alloc.c
7417         * function.c: Update tree_pass descriptors.
7418         * tree-vectorizer.c: Update tree_pass descriptors.
7419         * gcse.c: Update tree_pass descriptors.
7420         * ipa-type-escape.c: Update tree_pass descriptors.
7421         * tree-if-conv.c: Update tree_pass descriptors.
7422         * init-regs.c: Update tree_pass descriptors.
7423         * ipa.c: Update tree_pass descriptors.
7424         * tree-ssa-phiopt.c: Update tree_pass descriptors.
7425         * rtl-factoring.c: Update tree_pass descriptors.
7426         * lower-subreg.c: Update tree_pass descriptors.
7427         * bt-load.c: Update tree_pass descriptors.
7428         * tree-dfa.c: Update tree_pass descriptors.
7429         * except.c: Update tree_pass descriptors.
7430         * emit-rtl.c: Update tree_pass descriptors.
7431         * cfgexpand.c: Update tree_pass descriptors.
7432         * tree-cfgcleanup.c: Update tree_pass descriptors.
7433         * cfgcleanup.c: Update tree_pass descriptors.
7434         * tree-ssa-pre.c: Update tree_pass descriptors.
7435         * tree-sra.c: Update tree_pass descriptors.
7436         * tree-mudflap.c: Update tree_pass descriptors.
7437         * tree-ssa-copy.c: Update tree_pass descriptors.
7438         * cfglayout.c: Update tree_pass descriptors.
7439         * tree-ssa-forwprop.c: Update tree_pass descriptors.
7440         * tree-ssa-dce.c: Update tree_pass descriptors.
7441         * tree-ssa.c: Update tree_pass descriptors.
7442         * regclass.c: Update tree_pass descriptors.
7443         * integrate.c: Update tree_pass descriptors.
7444         * tree-optimize.c: Update tree_pass descriptors.
7445         * tree-ssa-phiprop.c: Update tree_pass descriptors.
7446         * tree-object-size.c: Update tree_pass descriptors.
7447         * combine.c: Update tree_pass descriptors.
7448         * tree-outof-ssa.c: Update tree_pass descriptors.
7449         * bb-reorder.c: Update tree_pass descriptors.
7450         * stack-ptr-mod.c: Update tree_pass descriptors.
7451         * var-tracking.c: Update tree_pass descriptors.
7452         * tree-profile.c: Update tree_pass descriptors.
7453         * tree-vect-generic.c: Update tree_pass descriptors.
7454         * reg-stack.c: Update tree_pass descriptors.
7455         * sched-rgn.c: Update tree_pass descriptors.
7456         * tree-ssa-structalias.c: Update tree_pass descriptors.
7457         * tree-cfg.c: Update tree_pass descriptors.
7458         * passes.c (current_pass): Update declaration.
7459         (finish_optimization_passes): Update.
7460         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
7461         (register_one_dump_file, register_dump_files_1, next_pass_1):
7462         Update arguments.
7463         (init_optimization_passes): Update handling of new types.
7464         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
7465         * ipa-struct-reorg.c: Update tree_pass descriptors.
7466         * tree-ssa-reassoc.c: Update tree_pass descriptors.
7467         * combine-stack-adj.c: Update tree_pass descriptors.
7468         * cfgrtl.c: Update tree_pass descriptors.
7469         * dce.c: Update tree_pass descriptors.
7470         * tree-ssanames.c: Update tree_pass descriptors.
7471
7472 2008-03-19  Richard Guenther  <rguenther@suse.de>
7473
7474         PR middle-end/35609
7475         * tree-ssa.c (walk_data): New structure.
7476         (warn_uninitialized_var): If not always_executed warn with "maybe"
7477         instead of "is".
7478         (execute_early_warn_uninitialized): Compute post-dominators.
7479         Initialize always_executed before processing each basic block.
7480
7481 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
7482
7483         PR target/35504
7484         * config/i386/i386.c (x86_this_parameter): Calculate correct location
7485         of "this" pointer when "regparm = N" or "fastcall" is in effect.
7486
7487 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7488
7489         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
7490
7491 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7492
7493         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
7494         is true.
7495         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
7496         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
7497         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
7498         target after ignore has been set, and move there also the commputation
7499         of subtarget and original_target.
7500         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7501         (LANG_HOOKS_INITIALIZER): Remove it.
7502         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
7503
7504 2008-03-18  Richard Guenther  <rguenther@suse.de>
7505
7506         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
7507         found an expression with constants, note that in the VN for the lhs.
7508         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
7509         fold them to constants if possible.  Run cleanup_cfg if done so.
7510         (execute_pre): Return todo.
7511         (do_pre): Likewise.
7512         (execute_fre): Likewise.
7513         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
7514         of constants.
7515         (get_prop_source_stmt): Look through pointer conversions.
7516
7517 2008-03-18  Jan Hubicka  <jh@suse.cz>
7518
7519         * tree-pretty-print.c: Include predict.h.
7520         (dump_generic_node): Dump predictor.
7521         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
7522         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
7523         * gimple-low.c (lower_stmt): Likewise.
7524         * expr.c (expand_expr_real): Likewise.
7525         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
7526         them.
7527         (build_predict_expr, build_predict_expr): New.
7528         * predict.h (predictor_name, build_predict_expr): Update.
7529         * c-typeck.c (c_finish_bc_stmt): Add prediction.
7530         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
7531         * predict.def (PRED_CONTINUE): Update hitrate.
7532         * tree.def (PREDICT_EXPR): Define.
7533         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
7534         do not handle BIND_EXPR.
7535         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
7536         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
7537         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
7538         operands.
7539
7540 2008-03-18  Michael Matz  <matz@suse.de>
7541
7542         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
7543
7544 2008-03-18  Richard Guenther  <rguenther@suse.de>
7545
7546         * tree-gimple.h (is_gimple_invariant_address): Declare.
7547         (is_gimple_constant): Likewise.
7548         * tree-gimple.c (is_gimple_constant): New function.
7549         (is_gimple_invariant_address): Likewise.
7550         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
7551         and is_gimple_invariant_address.
7552         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
7553         previous change.
7554         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
7555         an addressable base.
7556
7557 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7558
7559         PR middle-end/35611
7560         * gimplify.c (gimplify_expr): Gimplify second operand of
7561         OMP_ATOMIC_LOAD.
7562
7563 2008-03-17  Richard Guenther  <rguenther@suse.de>
7564
7565         PR tree-optimization/19637
7566         * fold-const.c (fold_unary): Remove restrictions of removing
7567         intermediate pointer-conversions (P2)(P1)P0.
7568         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
7569         conversion to void pointer.
7570         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
7571
7572 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
7573
7574         PR debug/31510
7575         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
7576         emulated thread local variables.
7577
7578 2008-03-16  Richard Guenther  <rguenther@suse.de>
7579
7580         PR middle-end/35607
7581         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7582         expand TREE_INVARIANT operations that are not gimple invariant.
7583
7584 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
7585
7586         * doc/extend.texi (Alignment): Say that the ABI controls
7587         the __alignof__ for non-strict-alignment targets rather
7588         than being a recommendation.
7589
7590 2008-03-15  Paul Brook  <paul@codesourcery.com>
7591
7592         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
7593         annotations.
7594         (arm_output_fn_unwind): Mark functions that can not be unwound.
7595
7596 2008-03-15  Paul Brook  <paul@codesourcery.com>
7597
7598         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
7599         extension instructions.
7600
7601 2008-03-15  Richard Guenther  <rguenther@suse.de>
7602
7603         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
7604         and fold constant aggregate refs.
7605         (fold_const_aggregate_ref): Handle string constants
7606         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
7607         (evaluate_stmt): Simplify now that ccp_fold folds constant
7608         aggregate refs.
7609
7610 2008-03-15  Paul Brook  <paul@codesourcery.com>
7611
7612         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
7613         (extzv): Use gen_extzv_t2.
7614         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
7615
7616 2008-03-15  Richard Guenther  <rguenther@suse.de>
7617
7618         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
7619         (fold_const_aggregate_ref): Likewise.
7620         (get_value): Return NULL if we don't have any values.
7621         (ccp_finalize): Set const_val to NULL after freeing it.
7622         * tree-flow.h (get_symbol_constant_value): Declare.
7623         (fold_const_aggregate_ref): Likewise.
7624         * tree-ssa-sccvn.c (try_to_simplify): Use them.
7625
7626 2008-03-15  Richard Guenther  <rguenther@suse.de>
7627
7628         PR middle-end/35593
7629         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
7630         to not produce negative array indices if not allowed.  Add
7631         parameter to indicate that.
7632         (maybe_fold_offset_to_component_ref): Allow negative array
7633         indices only for the first member of a structure.
7634         (maybe_fold_offset_to_reference): Allow negative array indices.
7635         (maybe_fold_stmt_addition): Likewise.
7636
7637 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
7638             Anatoly Sokolov <aesok@post.ru>
7639
7640         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
7641         (avr_arch): Add ARCH_AVR6.
7642         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
7643         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
7644         instead of fixed value 2.
7645         (print_operand_address): Use gs() asm specifier instead of pm().
7646         (avr_assemble_integer): (Ditto.).
7647         (avr_output_addr_vec_elt): (Ditto.).
7648         (print_operand): Handle "!" code.
7649         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
7650         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
7651         (AVR_HAVE_EIJMP_EICALL): Define.
7652         (AVR_3_BYTE_PC): Redefine.
7653         (AVR_2_BYTE_PC): (Ditto.).
7654         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
7655         (LINK_SPEC): Add atmega2560 and atmega2561.
7656         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
7657         (crtm2561.o).
7658         * config/avr/avr.md (call_insn): Use eicall instead of icall 
7659         for 3 byte PC devices.
7660         (call_value_insn): (Ditto.).
7661         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
7662         (indirect_jump): Use only for for 2 byte PC devices.
7663         (*tablejump): (Ditto.).
7664         (*indirect_jump_avr6): Add insn.
7665         (*tablejump_rjmp): Don't use for 3 byte PC devices.
7666         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
7667         instead of ijmp for 3 byte PC devices.
7668         (__tablejump2__): (Ditto.).
7669         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
7670         (MULITLIB_DIRNAMES): (Ditto.). 
7671         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
7672
7673 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
7674
7675         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
7676         "sse2_umulsidi3".  Use V1DI mode for operand 0.
7677         ("mmx_psadbw"): Use V1DI mode for operand 0.
7678         * config/i386/i386-modes.def (V1SI): New vector mode.
7679         * config/i386/i386.c (struct builtin_description)
7680         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
7681         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
7682         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
7683         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
7684         v1di_ftype_v8qi_v8qi type.
7685         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
7686
7687         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
7688         __builtin_ia32_pmuludq]: Fix the mode of return value.
7689
7690 2008-03-15  Richard Guenther  <rguenther@suse.de>
7691
7692         PR middle-end/35595
7693         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
7694         being a PHI_NODE.
7695
7696 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
7697         
7698         * doc/invoke.texi (Option Summary, Xtensa Options): Document
7699         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
7700         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
7701         unless TARGET_SERIALIZE_VOLATILE is enabled.
7702         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
7703         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
7704         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
7705
7706 2008-03-14  Richard Guenther  <rguenther@suse.de>
7707
7708         PR tree-optimization/34172
7709         * tree-flow.h (refs_may_alias_p): Declare.
7710         (get_single_def_stmt): Likewise.
7711         (get_single_def_stmt_from_phi): Likewise.
7712         (get_single_def_stmt_with_phi): Likewise.
7713         * tree-dfa.c (refs_may_alias_p): New function.
7714         (get_single_def_stmt): Likewise.
7715         (get_single_def_stmt_from_phi): Likewise.
7716         (get_single_def_stmt_with_phi): Likewise.
7717         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
7718         (vn_reference_lookup_1): New helper function.
7719         (vn_reference_lookup): Walk the virtual use-def chain to
7720         continue searching for a match if the def does not alias the
7721         reference we are looking for.
7722
7723 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
7724
7725         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
7726         archive and Perzl.  Update The Written Word listing.
7727
7728 2008-03-14  Richard Guenther  <rguenther@suse.de>
7729
7730         PR tree-optimization/34043
7731         PR tree-optimization/33989
7732         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7733         when doing FRE.
7734         (bitmap_find_leader): Use extra argument to verify dominance
7735         relationship inside a basic-block.
7736         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7737         (find_leader_in_sets): Adjust.
7738         (create_component_ref_by_pieces): Take extra argument for
7739         dominance check, handle lookup failures.
7740         (find_or_generate_expression): Likewise.
7741         (create_expression_by_pieces): Likewise.
7742         (insert_into_preds_of_block): Adjust.
7743         (create_value_expr_from): If asked for, verify all operands
7744         are in the blocks AVAIL_OUT set.
7745         (make_values_for_stmt): Check for SSA_NAMEs that are life
7746         over an abnormal edge.
7747         (compute_avail): Remove such check.
7748         (do_SCCVN_insertion): New function.
7749         (eliminate): If we do not find a leader suitable for replacement
7750         insert a replacement expression from SCCVN if available.
7751         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7752         (struct vn_ssa_aux): Add needs_insertion flag.
7753         * tree-ssa-sccvn.c (may_insert): New global flag.
7754         (copy_reference_ops_from_ref): Value-number union member access
7755         based on its size, not type and member if insertion is allowed.
7756         (visit_reference_op_load): For a weak match from union type
7757         punning lookup a view-converted value and insert a SSA_NAME
7758         for that value if that is not found.
7759         (visit_use): Make dumps shorter.  Do not disallow value numbering
7760         SSA_NAMEs that are life over an abnormal edge to constants.
7761         (free_scc_vn): Release inserted SSA_NAMEs.
7762         (run_scc_vn): New flag to specify whether insertion is allowed.
7763         Process SSA_NAMEs in forward order.
7764         * tree-ssa-loop-im.c (for_each_index): Handle invariant
7765         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7766         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7767         pointer type to/from integral types that do not change the
7768         precision to regular conversions.
7769
7770 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7771
7772         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7773         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7774         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7775         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7776         input arguments and the mode of return value.  Built-in functions
7777         that operate on whole 64-bit MMX register now use V1DI mode.
7778
7779 2008-03-13  Alon Dayan  <alond@il.ibm.com>
7780             Olga Golovanevsky  <olga@il.ibm.com>
7781
7782         PR tree-optimization/35041
7783         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7784         to locate the right position in a statement.
7785
7786 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
7787
7788         PR target/34000
7789         PR target/35553
7790         * config/i386/xmmintrin.h:  Change all static inline functions to
7791         extern inline and add __gnu_inline__ attribute.
7792         * config/i386/bmintrin.h: Ditto.
7793         * config/i386/smmintrin.h: Ditto.
7794         * config/i386/tmmintrin.h: Ditto.
7795         * config/i386/mmintrin-common.h: Ditto.
7796         * config/i386/ammintrin.h: Ditto.
7797         * config/i386/emmintrin.h: Ditto.
7798         * config/i386/pmmintrin.h: Ditto.
7799         * config/i386/mmintrin.h: Ditto.
7800         * config/i386/mm3dnow.h: Ditto.
7801
7802 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7803
7804         PR middle-end/35185
7805         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7806         (lower_omp_2): New function.
7807         (lower_omp_1, lower_omp): Rewritten.
7808
7809 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
7810
7811         PR 35054
7812         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7813         with the phrase "Microsoft Windows compilers".
7814         (Push/Pop Macro Pragmas): New subsection. Document
7815         #pragma push_macro and pragma pop_macro.
7816
7817 2008-03-12  Paul Brook  <paul@codesourcery.com>
7818
7819         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7820
7821 2008-03-12  Paul Brook  <paul@codesourcery.com>
7822
7823         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7824         (thumb2_alusi3_short): Exclude PLUS and MINUS.
7825         (thumb2_addsi_shortim): Rename ...
7826         (thumb2_addsi_short): ... to this.  Allow register operands.
7827         (thumb2_subsi_short): New pattern.
7828         (thumb2_one_cmplsi2_short,
7829         thumb2_negsi2_short): New patterns and peepholes.
7830
7831 2008-03-12  Paul Brook  <paul@codesourcery.com>
7832
7833         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7834
7835 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
7836
7837         * config/i386/i386.md (int_cond): New code iterator.
7838         (fp_cond): Ditto.
7839         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7840         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7841         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7842         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7843         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7844         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7845         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7846         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7847
7848 2008-03-12  Paul Brook  <paul@codesourcery.com>
7849
7850         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7851         instead of {arm,thumb}_compute_save_reg_mask.
7852         (output_return_instruction): Ditto.
7853         (thumb_unexpanded_epilogue): Ditto.
7854         (thumb1_expand_prologue): Ditto.
7855         (thumb1_output_function_prologue): Ditto.
7856         (arm_set_return_address): Ditto.
7857         (thumb_set_return_address): Ditto.
7858         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
7859         regs to achieve stack alignment.
7860         (thumb1_compute_save_reg_mask): Fix compiler warning.
7861         (arm_output_epilogue): Use offsets->saved_regs_mask.
7862         Adjust stack pointer by poping call clobered registers.
7863         (arm_expand_prologue): Use offsets->saved_regs_mask.
7864         Adjust stack pointer by pushing extra registers.
7865         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7866
7867 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
7868
7869         PR tree-opt/35422
7870         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7871         conversion to the operands of a multiplication.
7872
7873 2008-03-12  Richard Guenther  <rguenther@suse.de>
7874
7875         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7876         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7877         * timevar.def (TV_TREE_PHIPROP): Add.
7878         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7879         pass description.  Use TV_TREE_PHIPROP.
7880         * tree-ssa-forwprop.c: Remove phiprop code.
7881
7882 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7883
7884         PR middle-end/35549
7885         * omp-low.c (maybe_lookup_decl): Constify first argument.
7886         (use_pointer_for_field): Change last argument from bool to
7887         omp_context *.  Disallow shared copy-in/out in nested
7888         parallel if decl is shared in outer parallel too.
7889         (build_outer_var_ref, scan_sharing_clauses,
7890         lower_rec_input_clauses, lower_copyprivate_clauses,
7891         lower_send_clauses, lower_send_shared_vars): Adjust callers.
7892
7893 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
7894             Ira Rosen  <irar@il.ibm.com>
7895
7896         * tree-vectorizer.c (free_stmt_vec_info): New function.
7897         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7898         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7899         * tree-vectorizer.h (free_stmt_vec_info): Declare.
7900         * tree-vect-transform.c (vectorizable_conversion): Free
7901         vec_oprnds0 if it was allocated.
7902         (vect_permute_store_chain): Remove unused VECs.
7903         (vectorizable_store): Free VECs that are allocated in the..
7904         function.
7905         (vect_transform_strided_load, vectorizable_load): Likewise.
7906         (vect_remove_stores): Simplify the code.
7907         (vect_transform_loop): Move code to vect_remove_stores().
7908         Call vect_remove_stores() and free_stmt_vec_info().
7909
7910 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7911
7912         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7913         TARGET_HPUX.  Revise comment.
7914         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7915         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7916         Use sr4 variant of `be' instruction when not generating PIC code.
7917         (attr_length_call): Adjust for above change.
7918
7919 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7920
7921         * ipa-reference.c (static_execute): Remove module_statics_const and
7922         associated setting code.
7923
7924 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7925
7926         PR target/35540
7927         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7928         predicate for operand 1.
7929         (paritysi2_cmp): Use register_operand predicate for operand 2.
7930         Use earlyclobber modifier for operand 1.  Remove support for
7931         memory operands.
7932         (paritydi2_cmp): Use register_operand predicate for operand 3.
7933         Use earlyclobber modifier for operand 1.  Remove support for
7934         memory operands.
7935
7936 2008-03-11  Paul Brook  <paul@codesourcery.com>
7937             Vladimir Prus  <vladimir@codesourcery.com>
7938
7939         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7940         (arm_compute_save_reg0_reg12_mask): Always
7941         check if register 11 must be saved.  Always safe hard frame pointer
7942         when frame_pointer_needeed.
7943         (arm_compute_save_reg_mask): Save IP and PC
7944         only with apcs frames.
7945         (arm_output_epilogue): Adjust Thumb2 codepath to
7946         be also invoked and work for ARM non-apcs frames.
7947         (arm_expand_prologue): Don't bother saving IP
7948         for non-apcs frame, since it's not clobbered by
7949         prologue code.  Implement non-apcs frame
7950         layout.
7951
7952 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7953
7954         PR rtl-optimization/35281
7955         * expr.c (convert_move): Use a new pseudo for the intermediate
7956         from_mode->word_mode result.
7957
7958 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
7959
7960         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7961         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7962         * toplev.c (compile_file): Don't call it.
7963
7964 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
7965
7966         PR middle-end/35526
7967         * expr.c (store_expr): Call emit_block_move if the mode
7968         of "temp" RTX is BLKmode.
7969
7970 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7971             Richard Guenther  <rguenther@suse.de>
7972
7973         PR tree-optimization/31358
7974         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7975         the step with a NULL_TREE.
7976         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7977         to sizetype if type is a pointer type.
7978         (add_candidate_1): Don't convert the base and step to
7979         the generic type if the orginal type is a pointer type.
7980         (add_iv_value_candidates): Use sizetype for the step
7981         if type is a pointer type.
7982         (cand_value_at): Likewise.
7983         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7984         for pointer types.
7985         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7986         Don't convert the tem affine to the type.
7987         (add_elt_to_tree): Use sizetype for the step if a pointer.
7988         Use POINTER_PLUS_EXPR for pointers.
7989         (aff_combination_to_tree): Use sizetype for the step if a
7990         pointer.
7991
7992 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
7993
7994         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7995         Remove commutativity hint.
7996
7997 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
7998
7999         PR c/35438
8000         PR c/35439
8001         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8002         errorneous type.  Check that v is a VAR_DECL.
8003
8004         PR middle-end/35099
8005         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8006
8007 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
8008
8009         PR tree-optimization/35494
8010         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8011         may be overriden at link and run time.
8012
8013 2008-03-10  Richard Guenther  <rguenther@suse.de>
8014
8015         PR tree-optimization/34677
8016         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8017         (poolify_tree): Likewise.
8018         (modify_expr_template): Likewise.
8019         (poolify_modify_stmt): Likewise.
8020         (insert_fake_stores): Handle all component-ref style stores
8021         in addition to INDIRECT_REF.  Also handle complex types.
8022         Do not poolify the inserted load.
8023         (realify_fake_stores): Do not rebuild the tree but only
8024         make it a SSA_NAME copy.
8025         (init_pre): Remove initialzation of modify_expr_template.
8026         Do not allocate modify_expr_node_pool.
8027         (fini_pre): Do not free modify_expr_node_pool.
8028
8029 2008-03-10  Paul Brook  <paul@codesourcery.com>
8030
8031         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8032         to avoid conflicts.
8033
8034 2008-03-10  Paul Brook  <paul@codesourcery.com>
8035             Mark Shinwell  <shinwell@codesourcery.com>
8036
8037         * config/arm/cortex-r4.md: New.
8038         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8039         insn attributes.
8040         * config/arm/arm.md: Include cortex-r4.md.
8041         (insn): Add smmls, sdiv and udiv values.
8042         (generic_sched): Don't use generic scheduling for Cortex-R4.
8043         (arm_issue_rate): New function.
8044         (TARGET_SCHED_ISSUE_RATE): Define.
8045
8046 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
8047
8048         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8049
8050 2008-03-10  Richard Guenther  <rguenther@suse.de>
8051
8052         * tree-ssa-pre.c (get_sccvn_value): Simplify.
8053         (compute_avail): Do not add stmt uses to AVAIL_OUT.
8054
8055 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
8056
8057         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8058         Set default to true.
8059
8060 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8061
8062         * c.opt (Wsynth): Deprecate.
8063         * doc/invoke.texi (Option Summary, Warning Options): Document
8064         -Wno-format-contains-nul.
8065
8066 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
8067
8068         PR target/35496
8069         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
8070         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8071
8072 2008-03-09  Ira Rosen  <irar@il.ibm.com>
8073
8074         * config/rs6000/rs6000.c (builtin_description): Rename vector
8075         left shift operations.
8076         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8077         (altivec_vsl<VI_char>): Rename to ...
8078         (ashl<mode>3): ... new name.
8079         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8080         gen_ashlv4si3.
8081         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8082
8083 2008-03-08  Richard Guenther  <rguenther@suse.de>
8084
8085         * coverage.h (tree_coverage_counter_addr): Declare.
8086         * coverage.c (tree_coverage_counter_addr): New function.
8087         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8088         before using again.
8089         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8090         (tree_gen_one_value_profiler): Likewise.
8091         (tree_gen_ic_profiler): Likewise.
8092         (tree_gen_average_profiler): Likewise.
8093         (tree_gen_ior_profiler): Likewise.
8094
8095 2008-03-08  Richard Guenther  <rguenther@suse.de>
8096
8097         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8098         (vn_binary_op_insert): Likewise.
8099         (vn_unary_op_lookup): Likewise.
8100         (vn_unary_op_insert): Likewise.
8101         (vn_nary_op_lookup): Declare.
8102         (vn_nary_op_insert): Likewise.
8103         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8104         and binary hashes, use a single obstack for unary_op_pool
8105         and binary_op_pool.
8106         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8107         a single struct vn_nary_op_s.  Store tree code length and
8108         a variable number of operands.
8109         (struct vn_reference_op_struct): Remove unused op2.
8110         (vn_reference_op_eq): Do not compare op2.
8111         (vn_reference_op_compute_hash): Do not compute hash of op2.
8112         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8113         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8114         with vn_nary_op_compute_hash.
8115         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8116         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8117         vn_nary_op_lookup.
8118         (vn_unary_op_insert, vn_binary_op_insert): Replace with
8119         vn_nary_op_insert.
8120         (visit_unary_op): Call nary functions.
8121         (visit_binary_op): Likewise.
8122         (process_scc): Adjust for struct vn_tables_s changes.
8123         (allocate_vn_table): Likewise.
8124         (free_vn_table): Likewise.
8125         * tree-vn.c (vn_add): Call nary functions.
8126         (vn_lookup): Likewise.
8127
8128 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
8129
8130         PR target/35498
8131         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8132         wdst back after sync_compare_and_swapqhi_internal.
8133
8134 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
8135
8136         PR target/22152
8137         * config/i386/i386-modes.def (V1DI): New vector mode.
8138         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8139         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8140         (MMXMODE248): Ditto.
8141         (MMXMODE): Add V1DI mode.
8142         (mmxvecsize): Change DI mode to V1DI mode.
8143         ("mov<mode>): Use MMXMODEI8 mode iterator.
8144         ("*mov<mode>_internal_rex64"): Ditto.
8145         ("*mov<mode>_internal"): Ditto.
8146         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
8147         ("mmx_sub<mode>3"): Ditto.
8148         ("mmx_adddi3"): Remove insn pattern.
8149         ("mmx_subdi3"): Ditto.
8150         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8151         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8152         ("mmx_ashl<mode>3"): Ditto.
8153         ("mmx_lshrdi3"): Remove insn pattern.
8154         ("mmx_ashldi3"): Ditto.
8155         * config/i386/i386.c (classify_argument): Handle V1DImode.
8156         (function_arg_advance_32): Ditto.
8157         (function_arg_32): Ditto.
8158         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8159         mmx_addv1di3 insn pattern.
8160         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8161         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8162         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8163         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8164         Remove definitions of built-in functions.
8165         (V1DI_type_node): New node.
8166         (v1di_ftype_v1di_int): Ditto.
8167         (v1di_ftype_v1di_v1di): Ditto.
8168         (v2si_ftype_v2si_si): Ditto.
8169         (v4hi_ftype_v4hi_di): Remove node.
8170         (v2si_ftype_v2si_di): Ditto.
8171         (ix86_init_mmx_sse_builtins): Handle V1DImode.
8172         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8173         Redefine builtins using def_builtin_const with *_ftype_*_int node.
8174         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8175         Add new builtins using def_builtin_const.
8176         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8177         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8178         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8179         * config/i386/mmintrin.h (__v1di): New typedef.
8180         (_mm_add_si64): Cast arguments to __v1di type.
8181         (_mm_sub_si64): Ditto.
8182         (_mm_sll_pi16): Cast __count to __v4hi type.
8183         (_mm_sll_pi32): Cast __count to __v2si type.
8184         (_mm_sll_si64): Cast arguments to __v1di type.
8185         (_mm_srl_pi16): Cast __count to __v4hi type.
8186         (_mm_srl_pi32): Cast __count to __v2si type.
8187         (_mm_srl_si64): Cast arguments to __v1di type.
8188         (_mm_sra_pi16): Cast __count to __v4hi type.
8189         (_mm_sra_pi32): Cast __count to __v2si type.
8190         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8191         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8192         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8193         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8194         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8195         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8196         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8197         (_mm_srai_pi32): Use __builtin_ia32_psradi.
8198         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8199         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8200         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8201         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8202
8203 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
8204
8205         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8206
8207 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
8208
8209         PR target/35373
8210         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8211         reg+const addressing for Altivec modes.  Don't generate reg+reg
8212         addressing for TFmode or TDmode quantities.
8213
8214 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
8215
8216         * c-common.c (vector_types_convertible_p): Call langhook
8217         instead of comptypes.
8218
8219 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8220
8221         PR tree-opt/35402
8222         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8223         integral and scalar float variables which have a
8224         NULL DECL_INITIAL.
8225
8226 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
8227
8228         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8229         dwarf_register_span hook when emitting unwind information for
8230         register-to-memory saves.
8231         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8232         (rs6000_frame_related): Remove call to spe_synthesize_frame.
8233
8234 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
8235
8236         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8237         for the same VAR_DECL.
8238
8239 2008-03-06  Tom Tromey  <tromey@redhat.com>
8240
8241         * treelang: Delete.
8242         * doc/standards.texi (Standards): Don't mention treelang.
8243         * doc/invoke.texi (Overall Options): Don't mention treelang.
8244         * doc/install.texi (Prerequisites): Don't mention bison or
8245         treelang.
8246         (Configuration): Don't mention treelang.
8247         (Building): Likewise.
8248         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8249
8250 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
8251
8252         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8253         word-extractions out of a multi-word object.
8254
8255 2008-03-06  Richard Guenther  <rguenther@suse.de>
8256
8257         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8258         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8259         result type and precision.
8260         * expr.c (get_inner_reference): Set unsignedp based on the result
8261         type of BIT_FIELD_REF.
8262         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8263         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8264         (try_instantiate_multiple_fields): Likewise.  Use the correct type
8265         for BIT_FIELD_REF.
8266         (sra_build_assignment): Likewise.
8267         (sra_build_elt_assignment): Likewise.
8268         (sra_explode_bitfield_assignment): Likewise.
8269         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8270         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8271         set BIT_FIELD_REF_UNSIGNED.
8272         (vectorizable_load): Likewise.
8273
8274 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8275
8276         * cse.c (cse_extended_basic_block): Invalidate artificial defs
8277         at bb start.
8278
8279 2008-03-06  Richard Guenther  <rguenther@suse.de>
8280
8281         * alias.c (struct alias_set_entry): Move has_zero_child field
8282         to pack with alias_set.
8283
8284 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8285
8286         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8287         32bit host.
8288
8289 2008-03-05  Ian Lance Taylor  <iant@google.com>
8290
8291         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8292
8293 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
8294
8295         * fwprop.c (update_df): Support width and offset parameters of
8296         df_ref_create.
8297         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8298         global_conflicts): Change DF_REF_EXTRACT to either
8299         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8300         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8301         * df-scan.c (df_ref_record, df_defs_record,
8302         df_ref_create_structure, df_def_record_1, df_uses_record,
8303         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8304         df_bb_refs_collect, df_entry_block_defs_collect,
8305         df_exit_block_uses_collect): Support new width and offset fields.
8306         (ref_extract_pool): New storage pool.
8307         (df_free_ref): New function.
8308         (df_reg_chain_unlink, df_free_collection_rec,
8309         df_sort_and_compress_refs): Call df_free_ref.
8310         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8311         of df_ref_extract.
8312         (df_ref_create_structure): Allocate df_ref_extract if offset and
8313         width fields are used.
8314         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8315         (df_uses_record): Get offset and width from ZERO_EXTRACT 
8316         and SIGN_EXTRACT.
8317         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8318         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8319         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8320         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8321         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
8322         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8323         (df_ref_extract): New structure.
8324         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8325         (df_ref_create): Add width and offset parameters.
8326         
8327 2008-03-05  Richard Guenther  <rguenther@suse.de>
8328
8329         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8330         Use ranges_overlap_p.
8331         (offset_overlaps_with_access): Rename
8332         to ranges_overlap_p and move ...
8333         * tree-flow-inline.h (ranges_overlap_p): ... here.
8334
8335         * tree.h (get_inner_reference, handled_component_p): Update
8336         comments.
8337
8338         * tree.h (record_component_aliases, get_alias_set,
8339         alias_sets_conflict_p, alias_sets_must_conflict_p,
8340         objects_must_conflict_p): Move declarations ...
8341         * alias.h (record_component_aliases, get_alias_set,
8342         alias_sets_conflict_p, alias_sets_must_conflict_p,
8343         objects_must_conflict_p): ... here.
8344         Include coretypes.h.
8345         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8346
8347 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
8348
8349         * cfg.c: Include tree-flow.h.
8350         (remove_edge_raw): Call redirect_edge_var_map_clear.
8351         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8352         * tree-flow-inline.h (redirect_edge_var_map_def): New.
8353         (redirect_edge_var_map_result): New.
8354         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8355         PENDING_STMT use with redirect_edge_var_map_*.
8356         * tree-ssa.c (edge_var_maps): New definition.
8357         (redirect_edge_var_map_add): New.
8358         (redirect_edge_var_map_clear): New.
8359         (redirect_edge_var_map_dup): New.
8360         (redirect_edge_var_map_vector): New.
8361         (redirect_edge_var_map_destroy): New.
8362         (ssa_redirect_edge): Replace PENDING_STMT use with
8363         redirect_edge_var_map_*.
8364         (flush_pending_stmts): Same.
8365         (delete_tree_ssa): Destroy edge var map.
8366         * tree-flow.h (struct _edge_var_map): New.
8367         Define edge_var_map vector type.
8368         Declare redirect_edge_var_map_* prototypes.
8369         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8370         * tree-cfg.c (reinstall_phi_args): Replace
8371         PENDING_STMT use with redirect_edge_var_map_*.
8372
8373 2008-03-05  Richard Guenther  <rguenther@suse.de>
8374
8375         PR tree-optimization/35472
8376         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
8377         whose single use_stmt has a overlapping set of loaded and
8378         stored symbols as that use_stmt might be a noop assignment then.
8379
8380 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
8381
8382         * gthr-rtems.h: Implement __gthread_mutex_destroy.
8383
8384 2008-03-05  Richard Guenther  <rguenther@suse.de>
8385
8386         PR c++/35336
8387         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
8388         should be constants.
8389         * tree-cfg.c (verify_expr): Verify it.
8390         * fold-const.c (fold_truthop): Remove code generating
8391         BIT_FIELD_REFs of structure bases.
8392         (fold_binary): Likewise.
8393         (fold_ternary): Position and size of BIT_FIELD_REFs are
8394         always host integers.
8395         (make_bit_field_ref): Remove.
8396         (optimize_bit_field_compare): Remove.
8397         (all_ones_mask_p): Remove.
8398
8399 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
8400
8401         PR gcc/33009
8402         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
8403         (split_block_and_df_analyze): New. Split basic block and rebuild
8404         dataflow.
8405         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
8406         SPLIT_BLOCK.
8407         (split_pattern_seq): Likewise.
8408         (erase_matching_seqs): Likewise.
8409         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
8410
8411 2008-03-04  Geoff Keating  <geoffk@apple.com>
8412
8413         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
8414         declaration and code.
8415         (tree_invalid_nonnegative_warnv_p): Likewise.
8416
8417 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
8418
8419         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
8420         examples.  Truncate option-names then causing overfull hbox.
8421
8422 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8423
8424         PR target/35222
8425         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
8426         on hpux10.
8427         * configure: Rebuilt.
8428
8429 2008-03-04  Rafael Espindola  <espindola@google.com>
8430
8431         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
8432         (tree_unary_nonnegative_warnv_p): New.
8433         (tree_binary_nonnegative_warnv_p): New.
8434         (tree_single_nonnegative_warnv_p): New.
8435         (tree_invalid_nonnegative_warnv_p): New.
8436         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
8437
8438 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8439
8440         PR 28322
8441         * opts.c (handle_option): Postpone 'unknown option' errors only for
8442         warning options.
8443
8444 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
8445
8446         PR target/35453
8447         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
8448         (_SIDD_XXX): This.
8449
8450 2008-03-04  Rafael Espindola  <espindola@google.com>
8451
8452         * fold-const.c (tree_unary_nonzero_warnv_p): New.
8453         (tree_binary_nonzero_warnv_p): New.
8454         (tree_single_nonzero_warnv_p): New.
8455         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
8456
8457 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
8458
8459         PR middle-end/35456
8460         * fold-const.c (fold_cond_expr_with_comparison): Prevent
8461         transformations for modes that have signed zeros.
8462         * ifcvt.c (noce_try_abs): Ditto.
8463
8464 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
8465
8466         * config/i386/i386.c (override_options): Force
8467         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
8468
8469 2008-03-04  Jan Hubicka  <jh@suse.cz>
8470
8471         PR c++/35262
8472         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
8473         in last commit.
8474
8475 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8476
8477         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
8478         label to probe the stack.
8479
8480 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
8481
8482         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
8483         (__gthr_win32_mutex_destroy): Declare.
8484         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
8485         __gthr_win32_mutex_destroy.
8486         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
8487
8488 2008-03-03  Jan Hubicka  <jh@suse.cz>
8489
8490         PR c++/35262
8491         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
8492         aggressive on inlining cold calls.
8493
8494 2008-03-03  Richard Guenther  <rguenther@suse.de>
8495
8496         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
8497         struct copies into the expression table.
8498         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
8499         (try_to_simplify): Likewise.
8500         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
8501         integral and pointer arguments which do not change the
8502         precision to NOP_EXPRs.
8503         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
8504         VIEW_CONVERT_EXPR case.
8505
8506 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8507
8508         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
8509         defined in a loop at depth 0 is invariant.
8510         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8511         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
8512         be called at loop depth 0.
8513
8514 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
8515
8516         PR driver/35420
8517         * gcc.c (process_command): Update copyright notice dates.
8518         * gcov.c (print_version): Likewise.
8519         * gcov-dump.c (print_version): Likewise.
8520         * mips-tfile.c (main): Likewise.
8521         * mips-tdump.c (main): Likewise.
8522
8523 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8524
8525         PR 24924
8526         * c-common.c (flag_permissive): Delete.
8527         (constant_expression_warnings): Check flags first.
8528         (constant_expression_error): New.
8529         * c-common.h (flag_permissive): Delete.
8530         (constant_expression_error): Declare.
8531         * flags.h (flag_permissive): Declare. Update description.
8532         * diagnostic.c (pedwarn): Update.
8533         (permerror): New.
8534         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
8535         (permissive_error_kind): New.
8536         * toplev.c (flag_permissive): Define. Update description.
8537         * toplev.h (permissive_error_kind): Declare.
8538         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
8539         (pedwarn_c90): Use pedantic_warning_kind.
8540         * c-opts.c (c_common_post_options): flag_permissive does not affect
8541         flag_pedantic_errors.
8542
8543 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
8544
8545         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
8546         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
8547         __absvsi2, __absvDI2): Use unsigned arithmetic.
8548
8549 2008-03-02  Andi Kleen  <ak@suse.de>
8550             Richard Guenther  <rguenther@suse.de>
8551
8552         * struct-equiv.c: Remove file.
8553         * cfg_cleanup.c (condjump_equiv_p): Remove.
8554         * Makefile.in (OBJS-common): Remove struct-equiv.o.
8555         (struct-equiv.o): Remove rule.
8556         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
8557         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
8558         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
8559
8560 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8561
8562         * ifcvt.c (noce_process_if_block): Try to handle only the then
8563         block if the else block exists but isn't suitable.
8564
8565 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8566
8567         PR gcc/35063
8568         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
8569         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
8570         regression from previous patch.
8571
8572 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
8573
8574         PR gcc/35063
8575         * gthr.h: Add __gthread_mutex_destroy as a function that must be
8576         implemented.
8577         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
8578         * gthr-single.h (__gthread_mutex_destroy): Likewise.
8579         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
8580         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
8581         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
8582         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
8583         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
8584         (__gthread_mutex_destroy_function): Rename to
8585         __gthread_mutex_destroy.
8586         * gthr-dce.h (__gthread_mutex_destroy): Call
8587         pthread_mutex_destroy.
8588         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
8589         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
8590         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
8591
8592 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8593
8594         * df-scan.c (df_ref_chain_change_bb): Simplify.
8595         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
8596         set_block_for_insn if there's any change.
8597         * df.h ((df_insn_change_bb): Fix prototype.
8598         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
8599         df_insn_change_bb, don't call set_block_for_insn.
8600         * emit-rtl.c (reorder_insns): Likewise.
8601         * haifa-sched.c (move_insn): Likewise.
8602
8603 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8604
8605         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
8606
8607 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
8608
8609         * tree-flow-inline.h (next_readonly_imm_use): Return
8610         NULL_USE_OPERAND_P after the end.
8611
8612 2008-03-01  Richard Guenther  <rguenther@suse.de>
8613
8614         PR tree-optimization/35411
8615         * tree-sra.c (sra_build_assignment): Split conversion to
8616         final type to a separate statement if we are not assigning
8617         to a register.
8618
8619 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8620
8621         * fold-const.c (fold_convertible_p): Correct the logic to follow
8622         that in fold_convert().
8623
8624 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
8625
8626         PR c++/35315
8627         * tree-inline.c (build_duplicate_type): When we make a
8628         duplicate type, make it unique in the canonical types system.
8629
8630 2008-02-29  Tom Tromey  <tromey@redhat.com>
8631
8632         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
8633         input_file_stack_history, input_file_stack_restored): Remove.
8634         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8635         * input.h (struct file_stack): Remove.
8636         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
8637         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
8638         Likewise.
8639         * diagnostic.h (struct diagnostic_context) <last_module>: Change
8640         type.
8641         (diagnostic_last_module_changed): Add 'map' argument.
8642         (diagnostic_set_last_function): Likewise.
8643         * diagnostic.c (undiagnostic_report_current_module): Iterate using
8644         line map, not input_file_stack.
8645         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
8646
8647 2008-02-29  Paul Brook  <paul@codesourcery.com>
8648
8649         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
8650
8651 2008-02-29  Paul Brook  <paul@codesourcery.com>
8652
8653         * config/arm/ieee754-df.S (muldf3): Use RET macros.
8654
8655 2008-02-29  Richard Guenther  <rguenther@suse.de>
8656
8657         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
8658         vn_lookup_or_add.
8659         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
8660         value for comparing for a store match.
8661         (simplify_unary_expression): Do nothing for SSA_NAMEs.
8662         (try_to_simplify): Do not do a full-blown reference lookup.
8663
8664 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8665
8666         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
8667         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8668
8669         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
8670
8671 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
8672
8673         * tree-loop-linear.c (try_interchange_loops): Compare memory access
8674         strides against cache sizes.
8675
8676 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8677
8678         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
8679         constant to fpul.
8680
8681 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
8682
8683         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
8684         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
8685         is smaller than the original promoted value.
8686         (simplify_subreg): If OP is a SUBREG, try to preserve its
8687         SUBREG_PROMOTED_VAR_P information.
8688
8689 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8690
8691         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
8692         (VN_INFO_GET): Allocate new objects on the obstack.
8693         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
8694         for rpo_numbers_temp, for consistency.
8695         (free_scc_vn): Free the obstack.
8696
8697 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
8698
8699         * doc/invoke.texi: Document -ftree-loop-distribution.
8700         * tree-loop-distribution.c: New.
8701         * tree-pass.h (pass_loop_distribution): New.
8702         * graphds.h (struct graph): Add htab_t indices.
8703         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8704         * tree-vectorizer.c (rename_variables_in_loop): Extern.
8705         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
8706         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
8707         * tree-data-ref.c (debug_data_dependence_relations): New.
8708         (dump_data_dependence_relation): Also print data references.
8709         (free_data_ref): Extern.
8710         (same_access_functions): Moved...
8711         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
8712         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8713         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
8714         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
8715         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
8716         (stmts_from_loop): Skip LABEL_EXPR.
8717         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
8718         New.
8719         (build_rdg): Initialize rdg->indices htab.
8720         (free_rdg, stores_from_loop, ref_base_address,
8721         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
8722         have_similar_memory_accesses_1, ref_base_address_1,
8723         remove_similar_memory_refs): New.
8724         * tree-data-ref.h: Depend on tree-chrec.h.
8725         (debug_data_dependence_relations, free_data_ref): Declared.
8726         (same_access_functions): ... here.
8727         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8728         New.
8729         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8730         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8731         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8732         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8733         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8734         rdg_vertex_for_stmt): Declared.
8735         (struct rdg_edge): Add level.
8736         (RDGE_LEVEL): New.
8737         (free_rdg, stores_from_loop, remove_similar_memory_refs,
8738         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8739         Declared.
8740         (rdg_has_similar_memory_accesses): New.
8741         * tree-vect-analyze.c: Remove unused static decls.
8742         * lambda.h (dependence_level): New.
8743         * common.opt (ftree-loop-distribution): New.
8744         * tree-flow.h (mark_virtual_ops_in_bb, 
8745         slpeel_tree_duplicate_loop_to_edge_cfg,
8746         rename_variables_in_loop): Declared.
8747         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8748         (OBJS-common): Add tree-loop-distribution.o.
8749         (tree-loop-distribution.o): New rule.
8750         * tree-cfg.c (mark_virtual_ops_in_bb): New.
8751         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8752         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8753
8754 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
8755
8756         PR target/33963
8757         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8758         other than structures and unions.
8759
8760 2008-02-28  Richard Guenther  <rguenther@suse.de>
8761
8762         Revert:
8763         2008-02-26  Richard Guenther  <rguenther@suse.de>
8764
8765         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8766         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8767         (lookup_decl_from_uid): Declare.
8768         (remove_decl_from_map): Likewise.
8769         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8770         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8771         (decl_for_uid_map): New global hashtable mapping DECL_UID
8772         to the decl tree.
8773         (init_ttree): Allocate it.
8774         (insert_decl_to_uid_decl_map): New helper function.
8775         (make_node_stat): Insert new decls into the map.
8776         (copy_node_stat): Likewise.
8777         (lookup_decl_from_uid): New function.
8778         (remove_decl_from_map): Likewise.
8779         (print_decl_for_uid_map_statistics): New helper.
8780         (dump_tree_statistics): Call it.
8781
8782         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8783         (referenced_var_iterator): Adjust.
8784         (FOR_EACH_REFERENCED_VAR): Adjust.
8785         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8786         (num_referenced_vars): Adjust.
8787         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8788         (first_referenced_var): Remove.
8789         (end_referenced_vars_p): Likewise.
8790         (next_referenced_var): Likewise.
8791         (referenced_var_iterator_set): New helper function.
8792         * tree-dfa.c (referenced_var_lookup): Adjust.
8793         (referenced_var_check_and_insert): Likewise.
8794         (remove_referenced_var): Likewise.
8795         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8796         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8797         (verify_call_clobbering): Likewise.
8798         (verify_memory_partitions): Likewise.
8799         (init_tree_ssa): Allocate bitmap instead of hashtable for
8800         referenced_vars.
8801         (delete_tree_ssa): Adjust.
8802         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8803         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8804         (compute_tag_properties): Likewise.
8805         (set_initial_properties): Likewise.
8806         (find_partition_for): Likewise.
8807         (update_reference_counts): Likewise.
8808         (dump_may_aliases_for): Likewise.
8809         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8810         (add_call_clobber_ops): Likewise.
8811         (add_call_read_ops): Likewise.
8812         (get_asm_expr_operands): Likewise.
8813         * tree-into-ssa.c (dump_decl_set): Likewise.
8814         (update_ssa): Likewise.
8815         * tree-sra.c (scan_function): Likewise.
8816         (decide_instantiations): Likewise.
8817         (scalarize_parms): Likewise.
8818         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8819         (dsa_named_for): Likewise.
8820         * tree-ssa-structalias.c (update_alias_info): Likewise.
8821         (merge_smts_into): Likewise.
8822
8823 2008-02-27  David Daney  <ddaney@avtrex.com>
8824
8825         PR target/34409
8826         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8827         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8828         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8829         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8830         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8831
8832 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
8833
8834         PR target/25477
8835         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8836         (BUILT_IN_NEXTTOWARD): Remove.
8837         (BUILT_IN_NEXTTOWARDF): Ditto.
8838         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8839         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
8840
8841 2008-02-27  Tom Tromey  <tromey@redhat.com>
8842
8843         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8844         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8845
8846 2008-02-27  Jan Beulich  <jbeulich@novell.com>
8847
8848         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8849         update the respective field on newdecl.
8850
8851 2008-02-27  Revital Eres  <eres@il.ibm.com>
8852
8853         PR rtl-optimization/34999
8854         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8855         crossing edges that ends with a call insn.
8856         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8857         call insn and clear the EDGE_CROSSING flag of the crossing edge
8858         when fixing fallthru edges.
8859
8860 2008-02-27  Richard Guenther  <rguenther@suse.de>
8861
8862         PR middle-end/35390
8863         * fold-const.c (fold_unary): Return the correct argument,
8864         converted to the result type.
8865
8866 2008-02-27  Richard Guenther  <rguenther@suse.de>
8867
8868         PR middle-end/34971
8869         * expr.c (expand_expr_real_1): Assert on rotates that operate
8870         on partial modes.
8871         * fold-const.c (fold_binary): Use the types precision, not the
8872         bitsize of the mode if folding rotate expressions.  Build rotates
8873         only for full modes.
8874
8875 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
8876
8877         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8878         and CPP_PRAGMA_EOL.
8879         * c-pragma.c (pragma_ns_name): New typedef.
8880         (registered_pp_pragmas): New variable.
8881         (c_pp_lookup_pragma): New function.
8882         (c_register_pragma_1): If flag_preprocess_only, do nothing
8883         for non-expanded pragmas, for expanded ones push pragma's
8884         namespace and name into registered_pp_pragmas vector.
8885         (c_invoke_pragma_handler): Register OpenMP pragmas even when
8886         flag_preprocess_only, don't register GCC pch_preprocess
8887         pragma if flag_preprocess_only.
8888         * c-opts.c (c_common_init): Call init_pragma even if
8889         flag_preprocess_only.
8890         * c-pragma.c (c_pp_lookup_pragma): New prototype.
8891         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8892         cpp_register_pragma if flag_preprocess_only.
8893
8894 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8895
8896         PR c/28800
8897         * c-parser.c (c_parser_translation_unit): Warn for empty
8898         translation unit, not empty source file.
8899
8900 2008-02-26  Paul Brook  <paul@codesourcery.com>
8901
8902         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8903         operand for Thumb-2.
8904         * config/arm/arm.h (reg_class): Add CORE_REGS.
8905         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8906         (BASE_REG_CLASS): Use CORE_REGS.
8907         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8908         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8909         (REGNO_OK_FOR_INDEX_P): Exclude SP.
8910         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
8911         ARM_REGNO_OK_FOR_INDEX_P.
8912         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8913         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8914         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8915         (ldm/stm peepholes): Ditto.
8916         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8917         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8918         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8919         * config/arm/constraints.md: Enable "k" constraint on ARM.
8920
8921 2008-02-27  Ben Elliston  <bje@au.ibm.com>
8922
8923         * config/rs6000/rs6000.c: Annotate cache line size field in all
8924         instances of struct processor_costs.
8925
8926 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
8927
8928         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8929         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8930         jump_bypass): New counters.
8931         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8932         * dce.c (gate_ud_dce): Same.
8933         (gate_fast_dce): Same.
8934         * dse.c (gate_dse1): New function.
8935         (gate_dse2): New function.
8936         (gate_dse): Merge results of new gate functions.
8937         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8938         (gate_handle_jump_bypass): Add dbg_cnt.
8939         (gate_handle_gcse): Add dbg_cnt.
8940         * ifcvt.c (gate_handle_if_conversion): Same.
8941         (gate_handle_if_after_combine): Same.
8942         (gate_handle_if_after_reload): Same.
8943         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8944
8945 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
8946
8947         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8948         line sizes.
8949         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8950
8951 2008-02-26  Jason Merrill  <jason@redhat.com>
8952
8953         PR c++/35315
8954         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
8955         alone if it's the naming decl for the type's main variant.
8956
8957 2008-02-26  Tom Tromey  <tromey@redhat.com>
8958
8959         * system.h (USE_MAPPED_LOCATION): Poison.
8960         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8961         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8962         (make_goto_expr_edges): Likewise.
8963         (remove_bb): Likewise.
8964         (execute_warn_function_return): Likewise.
8965         * basic-block.h (struct edge_def) <goto_locus>: Change type to
8966         location_t.
8967         * c-common.c (fname_decl): Remove old location code.
8968         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8969         location code.
8970         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8971         variant.
8972         (ASM_INPUT_SOURCE_LOCATION): Likewise.
8973         (gen_rtx_ASM_INPUT): Likewise.
8974         (gen_rtx_ASM_INPUT_loc): Likewise.
8975         (get_rtx_asm_OPERANDS): Remove.
8976         * cfglayout.c (insn_locators_alloc): Remove old location code.
8977         (set_curr_insn_source_location): Likewise.
8978         (curr_insn_locator): Likewise.
8979         * print-tree.c (print_node): Remove old location code.
8980         * tree-mudflap.c (mf_varname_tree): Remove old location code.
8981         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8982         * cfgexpand.c (expand_gimple_cond_expr): Don't use
8983         location_from_locus.
8984         (construct_exit_block): Remove old location code.
8985         * emit-rtl.c (force_next_line_note): Remove old location code.
8986         * profile.c (branch_prob): Remove old location code.
8987         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8988         LOC_LINE): Remove old-location variants.
8989         * langhooks.c (lhd_print_error_function): Remove old location
8990         code.
8991         * configure, config.in: Rebuilt.
8992         * configure.ac (--enable-mapped-location): Remove.
8993         * c-decl.c (c_init_decl_processing): Remove old location code.
8994         (finish_function): Likewise.
8995         * recog.c (decode_asm_operands): Remove old location code.
8996         * c-pch.c (c_common_read_pch): Remove old location code.
8997         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8998         variants.
8999         * gimple-low.c (lower_function_body): Remove old location code.
9000         * toplev.c (unknown_location): Remove.
9001         (push_srcloc): Remove old-location variant.
9002         (process_options): Remove old location code.
9003         (lang_dependent_init): Likewise.
9004         * input.h (UNKNOWN_LOCATION): Move definition.
9005         (location_t): Undeprecate.
9006         (source_locus): Remove.
9007         (location_from_locus): Remove.
9008         (struct location_s): Remove.
9009         Remove all old-location code.
9010         (input_line, input_filename): Remove.
9011         * final.c (final_scan_insn): Remove old location code.
9012         * diagnostic.c (diagnostic_build_prefix): Remove
9013         USE_MAPPED_LOCATION test.
9014         * tree.h (gimple_stmt) <locus>: Now a location_t.
9015         (tree_exp) <locus>: Likewise.
9016         (DECL_IS_BUILTIN): Remove old-location variant.
9017         (annotate_with_file_line, annotate_with_locus): Likewise.
9018         (expr_locus, set_expr_locus): Update.
9019         * tree.c (build1_stat): Remove old location code.
9020         (last_annotated_node): Remove.
9021         (annotate_with_file_line): Remove old-location variant.
9022         (annotate_with_locus): Likewise.
9023         (expr_location): Remove old location code.
9024         (set_expr_location): Likewise.
9025         (expr_has_location): Likewise.
9026         (expr_locus): Likewise.
9027         (set_expr_locus): Likewise.
9028         (expr_filename): Don't use location_from_locus.
9029         (expr_lineno): Likewise.
9030         * rtl-error.c (location_for_asm): Remove old location code.
9031         * c-lex.c (cb_line_change): Remove old location code.
9032         (fe_file_change): Likewise.
9033         (cb_def_pragma): Likewise.
9034         (c_lex_with_flags): Likewise.
9035         * gengtype.c (do_typedef): Don't special-case location types.
9036         (define_location_structures): Remove.
9037         (main): Don't call define_location_structures.
9038         * tree-pretty-print.c (dump_implicit_edges): Remove old location
9039         code.
9040
9041 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9042
9043         PR 26264
9044         * builtins.def (BUILT_IN_STDARG_START): Remove.
9045         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9046         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9047         * tree-inline.c (inline_forbidden_p_1): Likewise.
9048         
9049 2008-02-26  Richard Guenther  <rguenther@suse.de>
9050
9051         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9052         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9053         (lookup_decl_from_uid): Declare.
9054         (remove_decl_from_map): Likewise.
9055         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9056         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9057         (decl_for_uid_map): New global hashtable mapping DECL_UID
9058         to the decl tree.
9059         (init_ttree): Allocate it.
9060         (insert_decl_to_uid_decl_map): New helper function.
9061         (make_node_stat): Insert new decls into the map.
9062         (copy_node_stat): Likewise.
9063         (lookup_decl_from_uid): New function.
9064         (remove_decl_from_map): Likewise.
9065         (print_decl_for_uid_map_statistics): New helper.
9066         (dump_tree_statistics): Call it.
9067
9068         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9069         (referenced_var_iterator): Adjust.
9070         (FOR_EACH_REFERENCED_VAR): Adjust.
9071         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9072         (num_referenced_vars): Adjust.
9073         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9074         (first_referenced_var): Remove.
9075         (end_referenced_vars_p): Likewise.
9076         (next_referenced_var): Likewise.
9077         (referenced_var_iterator_set): New helper function.
9078         * tree-dfa.c (referenced_var_lookup): Adjust.
9079         (referenced_var_check_and_insert): Likewise.
9080         (remove_referenced_var): Likewise.
9081         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9082         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9083         (verify_call_clobbering): Likewise.
9084         (verify_memory_partitions): Likewise.
9085         (init_tree_ssa): Allocate bitmap instead of hashtable for
9086         referenced_vars.
9087         (delete_tree_ssa): Adjust.
9088         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9089         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9090         (compute_tag_properties): Likewise.
9091         (set_initial_properties): Likewise.
9092         (find_partition_for): Likewise.
9093         (update_reference_counts): Likewise.
9094         (dump_may_aliases_for): Likewise.
9095         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9096         (add_call_clobber_ops): Likewise.
9097         (add_call_read_ops): Likewise.
9098         (get_asm_expr_operands): Likewise.
9099         * tree-into-ssa.c (dump_decl_set): Likewise.
9100         (update_ssa): Likewise.
9101         * tree-sra.c (scan_function): Likewise.
9102         (decide_instantiations): Likewise.
9103         (scalarize_parms): Likewise.
9104         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9105         (dsa_named_for): Likewise.
9106         * tree-ssa-structalias.c (update_alias_info): Likewise.
9107         (merge_smts_into): Likewise.
9108
9109 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9110
9111         PR 34351
9112         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9113         * c-opts.c (c_common_handle_option): Wall enables
9114         Wvolatile-register-var.
9115         * common.opt: Move Wvolatile-register-var to...
9116         * c.opt: ...here.
9117         
9118 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9119
9120         * common.opt (Wlarger-than=): New.
9121         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9122         -Wlarger-than=.
9123         * opts.c (common_handle_option): Handle -Wlarger-than=.
9124         * optc-gen.awk: Likewise.
9125         * opth-gen.awk: Likewise.
9126         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9127         * tree-optimize.c (tree_rest_of_compilation): Likewise.
9128         
9129 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9130
9131         * c-common.c (match_case_to_enum_1): Add appropriate
9132         OPT_W* parameter to warning.
9133         (c_do_switch_warnings): Likewise.
9134         * c-typeck.c (warning_init): Add one more parameter following
9135         'warning' function.
9136         (push_init_level): Update call to warning_init.
9137         (pop_init_level): Likewise.
9138         (add_pending_init): Likewise.
9139         (output_init_element: Likewise.
9140
9141 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9142
9143         PR 28322
9144         * toplev.c (toplev_main): If there are warnings or error, print
9145         errors for ignored options.
9146         * opts.c (ignored_options): New static variable.
9147         (postpone_unknown_option_error): New.
9148         (print_ignored_options): New.
9149         (handle_option): Postpone errors for unknown -Wno-* options.
9150         * opts.h (print_ignored_options): Declare.
9151         
9152 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
9153
9154         * config/mips/mips.md (loadgp_blockage, blockage): Change type
9155         to "ghost".
9156
9157 2008-02-25  Richard Guenther  <rguenther@suse.de>
9158
9159         Revert:
9160         2008-02-25  Richard Guenther  <rguenther@suse.de>
9161
9162         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9163         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9164         (lookup_decl_from_uid): Declare.
9165         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9166         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9167         (decl_for_uid_map): New global hashtable mapping DECL_UID
9168         to the decl tree.
9169         (init_ttree): Allocate it.
9170         (insert_decl_to_uid_decl_map): New helper function.
9171         (make_node_stat): Insert new decls into the map.
9172         (copy_node_stat): Likewise.
9173         (lookup_decl_from_uid): New function.
9174         (print_decl_for_uid_map_statistics): New helper.
9175         (dump_tree_statistics): Call it.
9176
9177         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9178         (referenced_var_iterator): Adjust.
9179         (FOR_EACH_REFERENCED_VAR): Adjust.
9180         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9181         (num_referenced_vars): Adjust.
9182         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9183         (first_referenced_var): Remove.
9184         (end_referenced_vars_p): Likewise.
9185         (next_referenced_var): Likewise.
9186         (referenced_var_iterator_set): New helper function.
9187         * tree-dfa.c (referenced_var_lookup): Adjust.
9188         (referenced_var_check_and_insert): Likewise.
9189         (remove_referenced_var): Likewise.
9190         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9191         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9192         (verify_call_clobbering): Likewise.
9193         (verify_memory_partitions): Likewise.
9194         (init_tree_ssa): Allocate bitmap instead of hashtable for
9195         referenced_vars.
9196         (delete_tree_ssa): Adjust.
9197         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9198         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9199         (compute_tag_properties): Likewise.
9200         (set_initial_properties): Likewise.
9201         (find_partition_for): Likewise.
9202         (update_reference_counts): Likewise.
9203         (dump_may_aliases_for): Likewise.
9204         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9205         (add_call_clobber_ops): Likewise.
9206         (add_call_read_ops): Likewise.
9207         (get_asm_expr_operands): Likewise.
9208         * tree-into-ssa.c (dump_decl_set): Likewise.
9209         (update_ssa): Likewise.
9210         * tree-sra.c (scan_function): Likewise.
9211         (decide_instantiations): Likewise.
9212         (scalarize_parms): Likewise.
9213         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9214         (dsa_named_for): Likewise.
9215         * tree-ssa-structalias.c (update_alias_info): Likewise.
9216         (merge_smts_into): Likewise.
9217
9218 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9219
9220         PR fortran/29549
9221         * doc/invoke.texi (-fcx-limited-range): Document new option.
9222         * toplev.c (process_options): Handle -fcx-fortran-rules.
9223         * common.opt: Add documentation for -fcx-fortran-rules.
9224
9225 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
9226
9227         PR c/35162
9228         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9229         actual behaviour and C99.
9230         
9231 2008-02-26  Ben Elliston  <bje@au.ibm.com>
9232
9233         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9234         (ASM_CPU_POWER6_SPEC): Likewise.
9235         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9236         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9237         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9238
9239 2008-02-25  Richard Guenther  <rguenther@suse.de>
9240
9241         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9242         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9243         (lookup_decl_from_uid): Declare.
9244         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9245         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9246         (decl_for_uid_map): New global hashtable mapping DECL_UID
9247         to the decl tree.
9248         (init_ttree): Allocate it.
9249         (insert_decl_to_uid_decl_map): New helper function.
9250         (make_node_stat): Insert new decls into the map.
9251         (copy_node_stat): Likewise.
9252         (lookup_decl_from_uid): New function.
9253         (print_decl_for_uid_map_statistics): New helper.
9254         (dump_tree_statistics): Call it.
9255
9256         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9257         (referenced_var_iterator): Adjust.
9258         (FOR_EACH_REFERENCED_VAR): Adjust.
9259         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9260         (num_referenced_vars): Adjust.
9261         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9262         (first_referenced_var): Remove.
9263         (end_referenced_vars_p): Likewise.
9264         (next_referenced_var): Likewise.
9265         (referenced_var_iterator_set): New helper function.
9266         * tree-dfa.c (referenced_var_lookup): Adjust.
9267         (referenced_var_check_and_insert): Likewise.
9268         (remove_referenced_var): Likewise.
9269         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9270         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9271         (verify_call_clobbering): Likewise.
9272         (verify_memory_partitions): Likewise.
9273         (init_tree_ssa): Allocate bitmap instead of hashtable for
9274         referenced_vars.
9275         (delete_tree_ssa): Adjust.
9276         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9277         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9278         (compute_tag_properties): Likewise.
9279         (set_initial_properties): Likewise.
9280         (find_partition_for): Likewise.
9281         (update_reference_counts): Likewise.
9282         (dump_may_aliases_for): Likewise.
9283         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9284         (add_call_clobber_ops): Likewise.
9285         (add_call_read_ops): Likewise.
9286         (get_asm_expr_operands): Likewise.
9287         * tree-into-ssa.c (dump_decl_set): Likewise.
9288         (update_ssa): Likewise.
9289         * tree-sra.c (scan_function): Likewise.
9290         (decide_instantiations): Likewise.
9291         (scalarize_parms): Likewise.
9292         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9293         (dsa_named_for): Likewise.
9294         * tree-ssa-structalias.c (update_alias_info): Likewise.
9295         (merge_smts_into): Likewise.
9296
9297 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
9298
9299         PR target/35258
9300         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9301         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9302         * alias.h (nonoverlapping_memrefs_p): Likewise.
9303
9304 2008-02-25  Jan Beulich  <jbeulich@novell.com>
9305
9306         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
9307         * config/i386/netware-libgcc.exp: Add __bswap?i2,
9308         __emultls_get_address, __emultls_register_common,
9309         __floatundi?f, and _Unwind_GetIPInfo.
9310         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9311         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9312         (gen_regparm_prefix): Likewise.
9313         (i386_nlm_encode_section_info): Sync with
9314         config/i386/winnt.c:i386_pe_encode_section_info().
9315         (i386_nlm_maybe_mangle_decl_assembler_name): New.
9316         i386_nlm_mangle_decl_assembler_name): New.
9317         (netware_override_options): New.
9318         * config/i386/netware.h (netware_override_options): Declare.
9319         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9320         (i386_nlm_mangle_decl_assembler_name): Declare.
9321         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9322
9323 2008-02-25  Ben Elliston  <bje@au.ibm.com>
9324
9325         PR other/32948
9326         * c-decl.c (grokdeclarator): Remove unused local variables
9327         `typedef_type' and `type_as_written'.
9328         * bb-reorder.c
9329         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9330         unused local variable `has_hot_blocks'.
9331         (fix_crossing_conditional_branches): Remove unused local variable
9332         `prev_bb'.
9333         
9334 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
9335
9336         PR middle-end/19984
9337         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9338         using DEF_C99_BUILTIN.
9339         (BUILT_IN_NANF): Ditto.
9340         (BUILT_IN_NANL): Ditto.
9341
9342 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
9343             Revital Eres  <eres@il.ibm.com>
9344
9345         * modulo-sched.c (calculate_must_precede_follow): Address TODO
9346         regarding the order of two dependent insns in the same row.
9347
9348 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
9349
9350         * stor-layout.c (layout_decl): Do not bump the alignment of a
9351         bit-field to more than byte alignment if it is packed.
9352
9353 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
9354
9355         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9356         e300c2 and e300c3.
9357
9358 2008-02-24  Diego Novillo  <dnovillo@google.com>
9359
9360         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9361
9362         PR 33738
9363         * tree-vrp.c (vrp_evaluate_conditional): With
9364         -Wtype-limits, emit a warning when comparing against a
9365         constant outside the natural range of OP0's type.
9366         * c.opt (Wtype-limits): Move ...
9367         * common.opt (Wtype-limits): ... here.
9368
9369 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
9370
9371         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9372         * config/rs6000/e300c2c3.md: New file.
9373         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9374         e300c2 and e300c3.
9375         (rs6000_override_options): Add e300c2 and e300c3 cases to
9376         processor_target_table. Do not allow usage of Altivec or Spe
9377         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
9378         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
9379         * config/rs6000/rs6000.h (processor_type): Add
9380         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
9381         (ASM_CPU_SPEC): Add e300c2 and e300c3.
9382         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
9383         and ppce300c3. Include e300c2c3.md.
9384
9385 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
9386
9387         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
9388         instead of TARGET_STRICT_ALIGN.
9389
9390 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
9391
9392         * explow.c (memory_address): Assert that the generated address is
9393         valid.
9394
9395 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9396
9397         PR target/25477
9398         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
9399         * config/darwin-ppc-ldouble-patch.def: New file.
9400         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
9401         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
9402         SUBTARGET_INIT_BUILTINS if defined.
9403         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
9404         New functions.
9405
9406 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9407
9408         PR rtl-opt/33512
9409         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
9410         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
9411
9412 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9413
9414         PR pch/35027
9415         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
9416         file" warning condtional on -Winvalid-PCH.
9417
9418 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
9419
9420         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
9421
9422 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
9423
9424         PR target/22076
9425         PR target/34256 
9426         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
9427         prevent reload from using MMX registers.
9428         (*mov<mode>_internal): Ditto.
9429         (*movv2sf_internal_rex64): Ditto.
9430         (*movv2sf_internal): Ditto.
9431
9432 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9433
9434         PR documentation/31569
9435         * doc/install.texi2html: Use makeinfo --no-number-sections.
9436
9437 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9438
9439         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
9440         ensure that we can address an entire entity > 8 bytes.  Don't
9441         generate reg+reg addressing for such data.
9442
9443 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9444
9445         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
9446         strings when optimizing for size, unless the target cares about
9447         alignment.
9448
9449 2008-02-22  Tom Tromey  <tromey@redhat.com>
9450
9451         * regclass.c (current_pass): Remove declaration.
9452
9453 2008-02-22  Anatoly Sokolov <aesok@post.ru>
9454
9455         * config/avr/libgcc.S (__RAMPZ__): Define.
9456         (__do_copy_data): Add for devices with 128KB code memory.
9457
9458 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
9459
9460         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
9461         Use spe_abi.
9462         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
9463
9464 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
9465
9466         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
9467         GENNONACR_REGS.
9468
9469 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9470
9471         PR c/19999
9472         * c-typeck.c (build_binary_op): Warn about floating point
9473         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
9474
9475 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
9476
9477         PR target/34526
9478         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
9479         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
9480         add vrsave.
9481         (rs6000_override_options): Set altivec_abi as default, not override,
9482         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
9483         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
9484         is used; use new member spe_abi.
9485         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
9486         spe_abi and altivec_abi.
9487
9488 2008-02-22  Tomas Bily  <tbily@suse.cz>
9489
9490         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
9491
9492 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9493
9494         PR bootstrap/35273
9495         * config.build (build_file_translate): Set to `CMD //c' only if
9496         it works.
9497         * Makefile.in (build_file_translate): Improve comment.
9498
9499 2008-02-21  Jan Hubicka  <jh@suse.cz>
9500
9501         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
9502         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
9503         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
9504
9505 2008-02-21  Michael Matz  <matz@suse.de>
9506
9507         PR target/35264
9508         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
9509
9510 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
9511
9512         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
9513         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
9514         as insn constraint.
9515         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
9516         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
9517         SSE_VEC_FLOAT_MODE_P as insn constraint.
9518         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
9519         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
9520         sse4a_movntdf using MODEF mode iterator.
9521         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
9522         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
9523         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
9524         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
9525         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
9526         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
9527         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
9528
9529 2008-02-21  Richard Guenther  <rguenther@suse.de>
9530
9531         * tree.def (PAREN_EXPR): New tree code.
9532         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
9533         and PAREN_EXPR.
9534         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
9535         * expr.c (expand_expr_real_1): Likewise.
9536         * tree-inline.c (estimate_num_insns_1): Likewise.
9537         * tree-complex.c (expand_complex_move): Likewise.
9538         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
9539         as plain x.
9540
9541 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9542
9543         PR target/35225
9544         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
9545
9546 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9547
9548         PR target/35190
9549         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
9550
9551         * config/sh/sh.c (find_barrier): Don't go past
9552         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
9553
9554 2008-02-20  DJ Delorie  <dj@redhat.com>
9555
9556         * config/h8300/h8300.md (insv): Force source operand to be a register.
9557
9558         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
9559         as a jump, not as a plain insn.
9560         
9561 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
9562
9563         * doc/invoke.texi (Warning Options): Add new option
9564         -Wframe-larger-than=.
9565         (-Wframe-larger-than): Document.
9566
9567         * flags.h (warn_frame_larger_than, frame_larger_than_size):
9568         Add declarations for new option variables.
9569
9570         * final.c (final_start_function): Check the frame size
9571         before emission and issue a Wframe-larger-than warning.
9572
9573         * opts.c (warn_frame_larger_than, frame_larger_than_size):
9574         Add definitions for new option variables.
9575         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
9576
9577         * common.opt (Wframe-larger-than=): New option.
9578
9579 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9580
9581         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
9582         (<sse>_div<mode>3): Ditto.
9583         (<sse>_vmdiv<mode>3): Ditto.
9584         (<sse>_vmsqrt<mode>2): Ditto.
9585         (*smax<mode>3): Ditto.
9586         (sse5_frcz<mode>2): Ditto.
9587         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
9588         as insn constraint.
9589
9590 2008-02-20  Richard Guenther  <rguenther@suse.de>
9591
9592         PR middle-end/35265
9593         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
9594         be happy with INTEGRAL_TYPE_P.
9595
9596 2008-02-20  Richard Guenther  <rguenther@suse.de>
9597
9598         * fold-const.c (split_tree): Associate floatig-point expressions
9599         if flag_associative_math is set.
9600
9601 2008-02-20  Richard Guenther  <rguenther@suse.de>
9602
9603         * tree.h (fold_real_zero_addition_p): Declare.
9604         * fold-const.c (fold_real_zero_addition_p): Export.
9605         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
9606         floating-point operations with zero and one.
9607
9608 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
9609
9610         * doc/install.texi: Correct references to CFLAGS, replacing them
9611         with BOOT_CFLAGS.  Document flags used during bootstrap for
9612         target libraries.
9613                                 
9614 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
9615
9616         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
9617         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
9618         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
9619         insn constraint.
9620         (smin<mode>3): Ditto from similar patterns.
9621         (smax<mode>3): Ditto.
9622         (*ieee_smin<mode>3): Ditto.
9623         (*ieee_smax<mode>3): Ditto.
9624         * config/i386/sse.md (sse): New mode attribute.
9625         (mov<mode>): Macroize expander from movv4sf and movv2df using
9626         SSEMODEF2P mode iterator.
9627         (<sse>_movnt<mode>): Ditto from similar patterns. Use
9628         SSE_VEC_FLOAT_MODE_P as insn constraint.
9629         (storent<mode>): Ditto.
9630         (storent<mode>): Macroize expander from storentsf and storentdf using
9631         MODEF mode iterator.
9632         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
9633         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
9634         (abs<mode>2): Ditto from similar patterns.
9635         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
9636         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
9637         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
9638         (<sse>_vmsqrt<mode>2): Ditto.
9639         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
9640         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
9641         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
9642         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
9643         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
9644         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
9645         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
9646         insn constraint.
9647         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
9648         iterator and SSE_FLOAT_MODE_P as insn constraint.
9649         (<sse>_ucomi): Ditto from similar patterns.
9650         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
9651         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
9652         SSE_VEC_FLOAT_MODE_P as insn constraint.
9653         (vcond<mode>): Ditto from similar patterns.
9654         (and<mode>3, *and<mode>3): Ditto.
9655         (<sse>_nand<mode>3): Ditto.
9656         (ior<mode>3, *ior<mode>3): Ditto.
9657         (xor<mode>3, *xor<mode>3): Ditto.
9658         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
9659         iterator and SSE_FLOAT_MODE_P as insn constraint.
9660         (*nand<mode>3): Ditto from similar patterns.
9661         (*ior<mode>3): Ditto.
9662         (*xor<mode>3): Ditto.
9663
9664 2008-02-20  Ira Rosen  <irar@il.ibm.com>
9665
9666         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
9667         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
9668         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
9669
9670 2008-02-19  Jan Hubicka  <jh@suse.cz>
9671
9672         * predict.c (tree_bb_level_predictions): Remove variable next
9673         mistakely introduced by previous commit.
9674
9675 2008-02-19  Jan Hubicka  <jh@suse.cz>
9676
9677         * predict.c (predict_paths_leading_to): Rewrite.
9678         (predict_paths_for_bb): New.
9679         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
9680
9681 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9682
9683         PR bootstrap/35218
9684         * Makefile.in (build_file_translate): New.
9685         (gcc-vers.texi): Use it for translating $(abs_srcdir).
9686         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
9687         * configure.ac (build_file_translate): Substitute it.
9688         * configure: Regenerate.
9689
9690 2008-02-19  Jan Hubicka  <jh@suse.cz>
9691
9692         PR rtl-optimization/34408
9693         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
9694         invalid sharing.
9695
9696 2008-02-19  Jan Hubicka  <jh@suse.cz>
9697
9698         PR middle-end/28779
9699         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
9700         call_expr.
9701
9702 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9703
9704         PR Ada/35186
9705         * config/i386/i386-modes.def: Revert the last DI alignment
9706         change until Ada people can look into it.
9707
9708 2008-02-19  Nick Clifton  <nickc@redhat.com>
9709
9710         * opts.c (print_specific_help): Fix typo in --help text.
9711
9712 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
9713
9714         PR target/35239
9715         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
9716         32-bit inline asm without asm alternatives for host GCC < 3.0.
9717
9718 2008-02-19  Richard Guenther  <rguenther@suse.de>
9719
9720         PR tree-optimization/34989
9721         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
9722         Allow propagation to INDIRECT_REF if we can simplify only.
9723
9724 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9725
9726         * c-common.c (warn_for_collisions_1): Use appropriate option when
9727         warning.
9728
9729 2008-02-19  Nick Clifton  <nickc@redhat.com>
9730
9731         PR other/31349
9732         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9733         (handle_options): Fix indentation.
9734         (print_filtered_help): If no language-specific options were
9735         displayed tell the user how to list all the options supported by
9736         the language's front-end.
9737         (print_specific_help): Fix indentation and remove duplicate line.
9738         (common_handle_option): Handle the -v option.
9739         For --help enable the display of undocumented options if the -v
9740         switch has been included on the command line.
9741         For --help= check for overlaps in the arguments between the option
9742         classes and the language names and issue a warning when they
9743         cannot be disambiguated.
9744         * c.opt (v): Pass on to the common option handler.
9745
9746 2008-02-19  Revital Eres  <eres@il.ibm.com> 
9747
9748         * modulo-sched.c (sms_schedule): Change dump message when
9749         create_ddg function fails.
9750         (try_scheduling_node_in_cycle): Rename row to cycle.
9751         (print_partial_schedule): Rename CYCLE to ROW.
9752
9753 2008-02-19  Christian Bruel  <christian.bruel@st.com>
9754             Zdenek Dvorak  <ook@ucw.cz>
9755
9756         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9757
9758 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9759
9760         PR target/33555
9761         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9762         (*x86_movdicc_0_m1_se): Ditto.
9763
9764 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
9765
9766         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9767         (CMPtype): Define as __gcc_CMPtype.
9768         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9769         (CMPtype): Define as __gcc_CMPtype.
9770
9771 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
9772
9773         Support valgrind 3.3 for --enable-checking=valgrind.
9774         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9775         here.
9776         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9777         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9778         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9779         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9780         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9781         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9782         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9783         respectively.
9784         * ggc-zone.c: Similar.
9785         * ggc-page.c: Similar.
9786
9787 2008-02-19  Paul Brook  <paul@codesourcery.com>
9788
9789         PR target/35071
9790         * config/arm/ieee754-df.S: Fix do_it typo.
9791         * config/arm/ieee754-sf.S: Fix do_it typo.
9792
9793 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9794
9795         PR target/35189
9796         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9797         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9798         (OPTION_MASK_ISA_SSE_SET): Likewise.
9799         (OPTION_MASK_ISA_SSE2_SET): Likewise.
9800         (OPTION_MASK_ISA_SSE3_SET): Likewise.
9801         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9802         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9803         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9804         (OPTION_MASK_ISA_SSE4_SET): Likewise.
9805         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9806         (OPTION_MASK_ISA_SSE5_SET): Likewise.
9807         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9808         (OPTION_MASK_ISA_MMX_UNSET): Updated.
9809         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9810         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9811         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9812         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9813         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9814         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9815         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9816         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9817         (OPTION_MASK_ISA_SSE4): Removed.
9818         (ix86_handle_option): Turn on bits in ix86_isa_flags and
9819         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9820         (override_options): Don't turn on implied SSE/MMX bits in
9821         ix86_isa_flags.
9822
9823 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9824
9825         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9826         32bit host.
9827
9828 2008-02-18  Joey Ye  <joey.ye@intel.com>
9829
9830         PR middle-end/34921
9831         * tree-nested.c (insert_field_into_struct): Set type alignment
9832         to field alignment if the former is less than the latter.
9833
9834 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
9835
9836         * BASE-VER: Set to 4.4.0.
9837
9838 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9839
9840         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9841         * doc/cfg.texi: Likewise.
9842         * doc/extend.texi: Likewise.
9843         * doc/gty.texi: Likewise.
9844         * doc/invoke.texi: Likewise.
9845         * doc/loop.texi: Likewise.
9846         * doc/md.texi: Likewise.
9847         * doc/passes.texi: Likewise.
9848         * doc/rtl.texi: Likewise.
9849         * doc/sourcebuild.texi: Likewise.
9850         * doc/tm.texi: Likewise.
9851         * doc/tree-ssa.texi: Likewise.
9852
9853 2008-02-17  Richard Guenther  <rguenther@suse.de>
9854
9855         PR middle-end/35227
9856         * tree-complex.c (init_parameter_lattice_values): Handle parameters
9857         without default definition.
9858
9859 2008-02-17  Richard Guenther  <rguenther@suse.de>
9860
9861         PR tree-optimization/35231
9862         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9863         if A | B != 1.
9864
9865 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
9866
9867         Revert:
9868         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
9869         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9870         libgcc_cmp_return mode.
9871
9872 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9873
9874         PR c/28368
9875         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9876
9877 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
9878
9879         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9880         multilibs.
9881
9882 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9883
9884         * doc/c-tree.texi: Use `@.' where appropriate.
9885         * doc/extend.texi: Likewise.
9886         * doc/install.texi: Likewise.
9887         * doc/invoke.texi: Likewise.
9888         * doc/loop.texi: Likewise.
9889         * doc/makefile.texi: Likewise.
9890         * doc/md.texi: Likewise.
9891         * doc/passes.texi: Likewise.
9892         * doc/standards.texi: Likewise.
9893         * doc/tm.texi: Likewise.
9894
9895 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9896
9897         PR middle-end/35196
9898         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9899         in entry_bb.
9900         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9901         rather than in entry_bb.
9902
9903 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9904
9905         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9906         libgcc_cmp_return mode.
9907
9908 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9909
9910         PR middle-end/35130
9911         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9912         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9913
9914 2008-02-15  Richard Guenther  <rguenther@suse.de>
9915             Zdenek Dvorak  <ook@ucw.cz>
9916
9917         PR tree-optimization/35164
9918         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9919         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9920         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9921         Only propagate addresses which do not have abnormal SSA_NAMEs
9922         in their operands.
9923
9924 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
9925
9926         PR target/35088
9927         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9928
9929 2008-02-15  Jan Hubicka  <jh@suse.cz>
9930
9931         PR middle-end/35149
9932         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9933
9934 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9935
9936         PR middle-end/34621
9937         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9938         when calculating alignment_pad.
9939
9940 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
9941
9942         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9943         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9944         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9945         and STACK_BOUNDARY define.
9946
9947 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
9948
9949         PR preprocessor/35061
9950         * c-pragma.c (handle_pragma_pop_macro): Check that
9951         pushed_macro_table has been allocated.
9952
9953 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9954
9955         PR middle-end/35136
9956         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9957         (force_gimple_operand): Likewise.
9958         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9959         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9960         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9961         (find_interesting_uses_address): Check addressability and alignment
9962         of the base expression only after substituting bases of IVs into it.
9963
9964 2008-02-14  Michael Matz  <matz@suse.de>
9965
9966         PR target/34930
9967         * function.c (instantiate_virtual_regs_in_insn): Reload address
9968         before falling back to reloading the whole operand.
9969
9970 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9971
9972         * config/s390/s390.c (s390_mainpool_start): Emit the pool
9973         before the first section switch note.
9974
9975 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9976
9977         * doc/bugreport.texi: Update copyright years.
9978         * doc/c-tree.texi: Likewise.
9979         * doc/cfg.texi: Likewise.
9980         * doc/cpp.texi: Likewise.
9981         * doc/cppinternals.texi: Likewise.
9982         * doc/fragments.texi: Likewise.
9983         * doc/frontends.texi: Likewise.
9984         * doc/gcc.texi: Likewise.
9985         * doc/gty.texi: Likewise.
9986         * doc/hostconfig.texi: Likewise.
9987         * doc/implement-c.texi: Likewise.
9988         * doc/libgcc.texi: Likewise.
9989         * doc/loop.texi: Likewise.
9990         * doc/makefile.texi: Likewise.
9991         * doc/options.texi: Likewise.
9992         * doc/passes.texi: Likewise.
9993         * doc/rtl.texi: Likewise.
9994         * doc/sourcebuild.texi: Likewise.
9995         * doc/standards.texi: Likewise.
9996         * doc/tree-ssa.texi: Likewise.
9997         * doc/trouble.texi: Likewise.
9998
9999         * doc/extend.texi: Use @: or add comma where appropriate.
10000         * doc/invoke.texi: Likewise.
10001         * doc/tm.texi: Likewise.
10002
10003 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
10004
10005         PR target/34393
10006         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10007         to a reg.
10008
10009 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
10010
10011         * doc/md.texi (clz, ctz): Add reference.
10012         * doc/rtl.texi (clz, ctz): Likewise.
10013
10014 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10015
10016         PR other/35148
10017         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10018         srcdir.
10019
10020 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
10021
10022         * config/s390/s390.c (struct constant_pool): New field
10023         emit_pool_after added.
10024         (s390_mainpool_start): Set the emit_pool_after flag according
10025         to the section switch notes.
10026         (s390_mainpool_finish): Consider emit_pool_after when emitting
10027         the literal pool at the end of the function.
10028         (s390_chunkify_start): Force literal pool splits at section
10029         switch notes.
10030
10031 2008-02-13  Michael Matz  <matz@suse.de>
10032
10033         PR debug/35065
10034         * var-tracking.c (clobber_variable_part): Correctly traverse the
10035         list.
10036
10037 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10038
10039         PR 29673
10040         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10041         Add -fdump-ipa-inline.
10042         * tree-dump.c (dump_files): Remove tree-inlined dump.
10043         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10044         
10045 2008-02-12  Richard Guenther  <rguenther@suse.de>
10046
10047         PR tree-optimization/35171
10048         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10049         default defs.
10050
10051 2008-02-12  Richard Guenther  <rguenther@suse.de>
10052
10053         PR middle-end/35163
10054         * fold-const.c (fold_widened_comparison): Use get_unwidened in
10055         value-preserving mode.  Disallow final truncation.
10056
10057 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10058
10059         PR middle-end/35136
10060         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10061         code from here to...
10062         (force_gimple_operand): ...here.
10063
10064 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
10065
10066         PR c++/35144
10067         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10068         non-compatible pointers.
10069         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10070         different FIELD_DECLs, try harder by comparing field offsets, sizes
10071         and types.
10072
10073         PR inline-asm/35160
10074         * function.c (match_asm_constraints_1): Don't replace the same input
10075         multiple times.
10076
10077 2008-02-12  Anatoly Sokolov <aesok@post.ru>
10078
10079         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10080         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10081         (expand_epilogue): Restore RAMPZ register.
10082         * config/avr/avr.md (RAMPZ_ADDR): New constant.
10083
10084 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
10085
10086         * config/i386/cygwin.asm: (__alloca): Correct calling
10087         convention and alignment.
10088         (__chkstk): Force 8 byte stack alignment.
10089
10090 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
10091             Richard Guenther  <rguenther@suse.de>
10092
10093         PR tree-optimization/33992
10094         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10095         the zero we compare against.
10096
10097 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
10098
10099         PR libfortran/35063
10100         * gthr-win32.h (__gthread_mutex_destroy_function): New function
10101         to CloseHandle after unlocking to prevent accumulation of handle
10102         count.
10103
10104 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10105
10106         PR middle_end/34150
10107         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10108         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
10109         and update LABEL_NUSES during and after reload.
10110
10111 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10112
10113         PR middle-end/34627
10114         * combine.c (simplify_if_then_else): Make sure the comparison is
10115         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10116
10117 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
10118
10119         PR bootstrap/35051
10120         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10121         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10122         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10123         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10124         * tree.h (get_type_static_bounds): Likewise.
10125
10126 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10127
10128         * doc/invoke.texi (Option Summary, C++ Dialect Options)
10129         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10130         Make -Wfoo language annotations match what the compiler outputs.
10131
10132 2008-02-08  Sa Liu  <saliu@de.ibm.com>
10133
10134         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
10135         intrinsics spu_convts, spu_convtu, spu_convtf.
10136
10137 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
10138
10139         * doc/extend.texi (Function Attributes) <noinline>: Mention
10140         asm ("") as method to keep calls.
10141
10142 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10143
10144         PR other/32754
10145         * doc/options.texi (Options): Replace references to opts.sh with
10146         optc-gen.awk.
10147         * opts-common.c: Likewise.
10148         * optc-gen.awk: Likewise.
10149         
10150 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10151
10152         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10153
10154 2008-02-07  Richard Henderson  <rth@redhat.com>
10155
10156         PR rtl-opt/33410
10157         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10158         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
10159         funny mode.
10160
10161 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
10162
10163         PR tree-optimization/35085
10164         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10165         for operand entry oe2 in addition to operand entry oe3 in order to
10166         expose more opportunities for vectorizer sum reduction.
10167
10168 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10169
10170         PR other/35107
10171         * Makefile.in (LIBS): Remove $(GMPLIBS).
10172         (cc1-dummy, cc1): Add $(GMPLIBS).
10173
10174 2008-02-06  Jan Hubicka  <jh@suse.cz>
10175
10176         PR target/23322
10177         * i386.md (moddf_integer): Do not produce partial memory stalls for
10178         targets where it hurts.
10179
10180 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
10181
10182         PR target/35083
10183         * optabs.c (expand_float): Do not check for decimal modes when
10184         expanding unsigned integer through signed conversion.
10185
10186 2008-02-06  Nick Clifton  <nickc@redhat.com>
10187
10188         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10189         inside the clobber with a match_operand and duplicated operand
10190         number in the constraint.
10191         (ineqbranchsi): Delete redundant comment.
10192
10193 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
10194
10195         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
10196         builtin_define ("__USE_INIT_FINI__").
10197         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10198         -msx multilibs.
10199         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10200
10201 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10202
10203         PR documentation/30330
10204         * doc/invoke.texi (C++ Dialect Options)
10205         (Objective-C and Objective-C++ Dialect Options, Warning Options):
10206         For each warning option -Wfoo that allows -Wno-foo, ensure both
10207         -Wfoo and -Wno-foo are listed in the option index.  Fix index
10208         entry of -Wswitch-default, index -Wnormalized= including the
10209         `=', and -Wlarger-than-@var{len} including @var{len}.
10210
10211 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10212
10213         * config/i386/i386.md (floatunssisf2): Use
10214         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10215         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10216         Macroize expander using MODEF mode iterator.
10217
10218 2008-02-05  Diego Novillo  <dnovillo@google.com>
10219
10220         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10221
10222         PR 33738
10223         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
10224
10225 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10226
10227         PR other/35070
10228         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10229
10230 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
10231
10232         PR target/35084
10233         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10234         to indicate if a message should be generated.
10235         (init_cumulative_args): Updated.
10236         (function_value_32): Likewise.
10237
10238 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
10239
10240         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10241
10242 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
10243
10244         PR target/35083
10245         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10246         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10247
10248 2008-02-04  Diego Novillo  <dnovillo@google.com>
10249
10250         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10251
10252         PR 33738
10253         * tree-vrp.c (vrp_evaluate_conditional): With
10254         -Wtype-limits, emit a warning when comparing against a
10255         constant outside the natural range of OP0's type.
10256
10257 2008-02-04  Richard Guenther  <rguenther@suse.de>
10258
10259         PR middle-end/33631
10260         * expr.c (count_type_elements): Give for unions instead of
10261         guessing.
10262
10263 2008-02-04  Richard Guenther  <rguenther@suse.de>
10264
10265         PR middle-end/35043
10266         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10267         to TYPE_DOMAINs base type instead of using bitsizetype here.
10268
10269 2008-02-03  Jason Merrill  <jason@redhat.com>
10270
10271         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10272
10273 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10274
10275         PR other/29972
10276         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10277         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10278         (RS/6000 and PowerPC Options): Fix typos and markup.
10279         * doc/passes.texi (Tree-SSA passes): Likewise.
10280
10281 2008-02-02  Michael Matz  <matz@suse.de>
10282
10283         PR target/35045
10284         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10285         from record_last_reg_set_info.
10286         (record_last_reg_set_info): Take an RTX argument, iterate over all
10287         constituent hardregs.
10288         (record_last_set_info, record_opr_changes): Change calls to
10289         new signature or to record_last_reg_set_info_regno.
10290
10291 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10292
10293         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10294
10295 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
10296
10297         PR rtl-optimization/34773
10298         * reg-notes.def (EQUAL): Mention significance of combination of
10299         REG_EQUAL and REG_RETVAL.
10300         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10301         insn that has a REG_RETVAL.
10302
10303 2008-02-01  Roger Sayle  <roger@eyesopen.com>
10304
10305         PR bootstrap/33781
10306         * configure.ac (--enable-fixed-point): Disable unless explicitly
10307         requested on IRIX.
10308         * configure: Regenerate.
10309
10310 2008-02-01  Richard Guenther  <rguenther@suse.de>
10311
10312         PR other/35042
10313         * invoke.texi (-finline-limit): Remove no longer true parts
10314         of the documentation.  Note that there is no default value.
10315
10316 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
10317             Mark Mitchell  <mark@codesourcery.com>
10318             Ben Elliston  <bje@au.ibm.com>
10319
10320         PR c/29326
10321         * doc/extend.texi (Other Builtins): Document.
10322
10323 2008-01-31  Tom Browder <tom.browder@gmail.com>
10324
10325         * doc/c-tree.texi (Types): Fix grammar.
10326         (Expression trees): Ditto.
10327         * doc/passes.texi (Tree-SSA passes): Ditto.
10328         
10329         * doc/configterms.texi (Configure Terms): Fix typo.
10330         * doc/cpp.texi (Common Predefined Macros): Ditto.
10331         * doc/md.texi (Machine Constraints): Ditto.
10332         
10333         * doc/makefile.texi (Makefile): Add comma.
10334
10335 2008-01-31  Tom Browder  <tom.browder@gmail.com>
10336             Gerald Pfeifer  <gerald@pfeifer.com>
10337         
10338         * doc/sourcebuild.texi (Front End): Remove references to CVS
10339         and CVSROOT/modules.
10340         (Texinfo Manuals): Replace reference to CVS by one to SVN.
10341         (Back End): Remove reference to CVS.
10342
10343 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10344
10345         PR target/34900
10346         * config/mips/mips.c (gen_load_const_gp): New function, taking a
10347         comment from...
10348         (mips16_gp_pseudo_reg): ...here.
10349         * config/mips/mips.md (load_const_gp): Replace with...
10350         (load_const_gp_<mode>): ...this :P-based insn.
10351
10352 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10353
10354         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10355         options. Minor fixes.
10356         (-std): Move reference to standards closer to where language
10357         standards are first mentioned.
10358         
10359 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
10360
10361         PR rtl-optimization/34995
10362         * reload.c (alternative_allows_const_pool_ref): Take an rtx
10363         parameter and return a bool.  If the rtx parameter is nonnull,
10364         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10365         (find_reloads): Update call accordingly.  Pass the new operand
10366         if it needed no address reloads, otherwise pass null.
10367
10368 2008-01-30  Richard Henderson  <rth@redhat.com>
10369
10370         PR c/34993
10371         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10372         for unbounded arrays.
10373
10374 2008-01-30  Silvius Rus  <rus@google.com>
10375
10376         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
10377
10378 2008-01-30  Jan Hubicka  <jh@suse.cz>
10379
10380         PR target/34982
10381         * i386.c (init_cumulative_args): Use real function declaration when
10382         calling locally.
10383
10384 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
10385
10386         PR rtl-optimization/34998
10387         * global.c (build_insn_chain): Treat non-subreg_lowpart
10388         SUBREGs of pseudos as clobbering all the words covered by the
10389         SUBREG, not just all the bytes.
10390         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
10391         original df_ref rather than an extract parameter.
10392         (global_conflicts): Update call accordingly.
10393
10394 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10395
10396         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
10397         the overflow check to make it easier to read.
10398         (__fixtfdi): Change the type of the ll member in union
10399         long_double to UDItype_x.
10400
10401 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
10402
10403         PR middle-end/34969
10404         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
10405         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
10406         * tree-inline.c (fold_marked_statements): Call
10407         cgraph_update_edges_for_call_stmt if folding a call statement.
10408         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
10409         debug_generic_stmt calls, reset it back afterwards.
10410
10411         PR c/35017
10412         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
10413         static decls.
10414         * c-typeck.c (build_external_ref): Don't pedwarn about
10415         static vars in current function's scope.
10416
10417 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
10418
10419         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
10420
10421 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
10422
10423         PR c/35002
10424         * ipa-struct-reorg.c: Fix spelling.
10425         * params.def: Ditto.
10426
10427 2008-01-29  Richard Guenther  <rguenther@suse.de>
10428
10429         PR middle-end/35006
10430         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
10431         field.
10432         * tree-inline.c (remap_type): Increment remapping_type_depth
10433         around remapping types.
10434         (copy_body_r): Only add referenced variables if they are referenced
10435         from code, not types.
10436
10437 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
10438
10439         PR c++/34055
10440         PR c++/34103
10441         PR c++/34219
10442         PR c++/34606
10443         PR c++/34753
10444         PR c++/34754
10445         PR c++/34755
10446         PR c++/34919
10447         PR c++/34961
10448         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
10449         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
10450
10451 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
10452
10453         PR target/34412
10454         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
10455         pointer for tiny stack.
10456
10457 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10458
10459         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
10460
10461 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
10462
10463         * config/vx-common.h: Fix typo in comment.
10464
10465 2008-01-28  Ian Lance Taylor  <iant@google.com>
10466
10467         PR c++/34862
10468         PR c++/33407
10469         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10470         coalesce pointers if they have different DECL_NO_TBAA_P values.
10471         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
10472         between variables with different DECL_NO_TBAA_P values.
10473
10474 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
10475
10476         PR 31535
10477         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
10478         are not legitimate small data references on SPE targets.
10479
10480 2008-01-28  David Daney  <ddaney@avtrex.com>
10481
10482         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
10483
10484 2008-01-28  David Daney  <ddaney@avtrex.com>
10485
10486         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
10487
10488 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
10489
10490         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
10491         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
10492         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
10493         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
10494         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10495         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
10496         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
10497         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
10498
10499 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10500
10501         * basic-block.h (condjump_equiv_p): Fix comment.
10502
10503 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10504
10505         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
10506         print_generic_stmt_indented): Fix comment.
10507
10508 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
10509
10510         * configure.ac (__stack_chk_fail): Add detecion for availability
10511         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
10512         * configure: Regenerate.
10513
10514 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
10515
10516         PR middle-end/34688
10517         * final.c (output_addr_const): Handle TRUNCATE.
10518
10519 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
10520
10521         PR target/34711
10522         * tree-ssa-loop-ivopts.c (comp_cost): New type.
10523         (zero_cost, infinite_cost): New constants.
10524         (struct cost_pair): Change type of cost to comp_cost.
10525         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
10526         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
10527         New functions.
10528         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
10529         split_address_cost, ptr_difference_cost, difference_cost,
10530         get_computation_cost_at, get_computation_cost,
10531         determine_use_iv_cost_generic, determine_use_iv_cost_address,
10532         determine_use_iv_cost_condition, determine_use_iv_costs,
10533         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
10534         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
10535         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
10536         Change type of cost to comp_cost.
10537         (determine_iv_cost): Increase cost of non-original ivs, instead
10538         of decreasing the cost of original ones.
10539         (get_address_cost): Indicate the complexity of the addressing mode 
10540         in comp_cost.
10541         (try_add_cand_for): Prefer using ivs not specific to some object.
10542         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
10543
10544 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
10545             Janis Johnson  <janis187@us.ibm.com>
10546
10547         PR target/34814
10548         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
10549         (TARGET_INSTANTIATE_DECLS): Likewise.
10550         * target.h (expand_to_rtl_hook): New target hook.
10551         (instantiate_decls): Likewise.
10552         * function.c (instantiate_decl): Make non-static.  Rename to...
10553         (instantiate_decl_rtl): ... this.
10554         (instantiate_expr): Use instantiate_decl_rtl.
10555         (instantiate_decls_1): Likewise.
10556         (instantiate_decls): Likewise.
10557         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
10558         * function.h (instantiate_decl_rtl): Add prototype.
10559         * cfgexpand.c (target.h): New include.
10560         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
10561         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
10562         (TARGET_INSTANTIATE_DECLS): Likewise.
10563         (TARGET_INITIALIZER): New target hooks added.
10564         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
10565         New prototype.
10566         * config/rs6000/rs6000.c (tree-flow.h): New include.
10567         (machine_function): Add sdmode_stack_slot field.
10568         (rs6000_alloc_sdmode_stack_slot): New function.
10569         (rs6000_instantiate_decls): Likewise.
10570         (rs6000_secondary_memory_needed_rtx): Likewise.
10571         (rs6000_check_sdmode): Likewise.
10572         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
10573         (TARGET_INSTANTIATE_DECLS): Likewise.
10574         (rs6000_hard_regno_mode_ok): Allow SDmode.
10575         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
10576         (rs6000_emit_move): Handle SDmode.
10577         (function_arg_advance): Likewise.
10578         (function_arg): Likewise.
10579         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
10580         SDmode var args for 32-bit compiles.
10581         (rs6000_secondary_reload_class): Handle SDmode.
10582         (rs6000_output_function_epilogue): Likewise.
10583         (rs6000_function_value): Simplify if statement.
10584         (rs6000_libcall_value): Likewise.
10585         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
10586         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
10587         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
10588         (movsd_hardfloat): New define_insn.
10589         (movsd_softfloat): Likewise.
10590         (movsd_store): Likewise.
10591         (movsd_load): Likewise.
10592         (extendsddd2): Likewise.
10593         (extendsdtd2): Likewise.
10594         (truncddsd2): Likewise.
10595         (movdd_hardfloat64): Fixup comment.
10596         (UNSPEC_MOVSD_LOAD): New constant.
10597         (UNSPEC_MOVSD_STORE): Likewise.
10598
10599 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
10600
10601         PR c++/34965
10602         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
10603         TRUTH_XOR_EXPR.
10604         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
10605         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
10606         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
10607         and TRUTH_XOR_EXPR.
10608
10609 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
10610
10611         PR target/34794
10612         * config.gcc: Separate AIX 5.3 from AIX 6.1.
10613         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10614         __LONGDOUBLE128 too.
10615         * config/rs6000/aix61.h: New file.
10616
10617 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10618
10619         PR rtl-optimization/34959
10620         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
10621         popcount and parity rtxes the same mode as their operand.
10622         Truncate or extend the result to the return value's mode
10623         if necessary.
10624
10625 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
10626
10627         PR target/34981
10628         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
10629         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
10630         to GOT_VERSION_REGNUM.
10631         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
10632         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
10633         * config/mips/mips.c (mips_emit_call_insn): New function.
10634         (mips_call_tls_get_addr): Call mips_expand_call directly.
10635         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
10636         emit_call_insn.
10637         (mips16_build_call_stub): Likewise.  Return the call insn or null.
10638         (mips_expand_call): Update the call to mips16_build_call_stub
10639         accordingly and a remove redundant condition.  Assert that MIPS16
10640         stubs do not use lazy binding.  Use mips_emit_call_insn and return
10641         the call insn.
10642         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
10643         TARGET_USE_GOT.
10644         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
10645         (mips_avoid_hazard): Remove hazard_set handling.
10646         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
10647         (UNSPEC_RESTORE_GP): ...this.
10648         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
10649         (FAKE_CALL_REGNO): Rename to...
10650         (GOT_VERSION_REGNUM): ...this.
10651         (type): Add "ghost" value.  Add an associated insn reservation.
10652         (hazard_set): Remove.
10653         (exception_receiver): Rename to...
10654         (restore_gp): ...this and update the unspec identifier accordingly.
10655         (exception_receiver, nonlocal_got_receiver): New expanders.
10656         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
10657         FAKE_CALL_REGNO.  Remove hazard_set attribute.
10658         (set_got_version, update_got_version): New patterns.
10659
10660 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
10661
10662         PR target/34970
10663         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
10664
10665 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10666
10667         PR other/31955
10668         * doc/install.texi2html: Generate gcc-vers.texi.
10669
10670 2008-01-25  DJ Delorie  <dj@redhat.com>
10671
10672         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10673
10674 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
10675
10676         * config/c4x: Remove directory.
10677         * config.gcc (crx-*, mt-*): Mark obsolete.
10678         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
10679         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
10680         sh-*-rtemscoff*): Remove cases.
10681         * defaults.h (C4X_FLOAT_FORMAT): Remove.
10682         * real.c (encode_c4x_single, decode_c4x_single,
10683         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
10684         c4x_extended_format): Remove.
10685         * real.h (c4x_single_format, c4x_extended_format): Remove.
10686         * doc/extend.texi (interrupt, naked): Remove mention of attributes
10687         on C4x.
10688         (Pragmas): Remove comment about c4x pragmas.
10689         * doc/install.texi (c4x): Remove target-specific instructions.
10690         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
10691         * doc/md.texi (Machine Constraints): Remove C4x documentation.
10692         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
10693         refer to C4x source files as examples.
10694         (C4X_FLOAT_FORMAT): Remove documentation.
10695
10696 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
10697
10698         * config/bfin/bfin.c (override_options): Reorder tests so that
10699         flag_pic gets enabled for -msep-data.
10700
10701 2008-01-25  Richard Guenther  <rguenther@suse.de>
10702
10703         PR middle-end/32244
10704         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
10705         to its bitfield precision if required.
10706
10707 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10708
10709         PR middle-end/33880
10710         * tree-nested.c (walk_omp_for): New function.
10711         (convert_nonlocal_reference, convert_local_reference): Call
10712         walk_omp_for on OMP_FOR.
10713         (convert_call_expr): Call walk_body on OMP_FOR's
10714         OMP_FOR_PRE_INIT_BODY.
10715
10716 2008-01-25  Richard Guenther  <rguenther@suse.de>
10717
10718         PR tree-optimization/34966
10719         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
10720         default defs and PHI_NODEs we have to insert after the
10721         defining statement.
10722
10723 2008-01-24  Nick Clifton  <nickc@redhat.com>
10724
10725         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
10726         Provide a default definition.
10727         (LIBGCC2_UNITS_PER_WORD): Likewise.
10728
10729         * config/stormy16/stormy16.c: Include df.h for the prototype
10730         for df_regs_ever_live_p.
10731         (xstormy16_expand_builtin_va_start): Convert the stack offset
10732         into a component_ref and then use POINTER_PLUS_EXPR to add it
10733         to the incoming_virtual_args_rtx.
10734         (xstormy16_gimplify_va_arg_expr): Rename to
10735         xstormy16_gimplify_va_arg_expr.
10736         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10737         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10738         xstormy16_gimplify_va_arg_expr.
10739         Fix up some formatting issues.
10740
10741         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10742         Move to predicates.md.
10743         (xs_hi_general_operand): Likewise.
10744         (xs_hi_nonmemory_operand): Likewise.
10745         * config/stormy16/predicates.md:
10746         (xstormy16_carry_plus_operand): New predicate.
10747         (xs_hi_general_operand): New predicate.
10748         (xs_hi_nonmemory_operand): New predicate.
10749         * config/stormy16/stormy16-protos.h:
10750         (xstormy16_carry_plus_operand): Delete prototype.
10751         (xs_hi_general_operand): Likewise.
10752         (xs_hi_nonmemory_operand): Likewise.
10753
10754         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10755         modifiers as they are no longer needed and they can trigger
10756         reload spill failures.
10757
10758         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10759         with a match_operand in order to help reload.
10760
10761         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10762         constraint with 'e' for the 8th alternative as this version of
10763         the mov.w instruction only accepts the lower 8 registers.
10764
10765 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
10766
10767         PR target/34856
10768         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10769         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10770         vector elements.
10771
10772 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10773
10774         PR middle-end/33333
10775         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10776
10777 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10778
10779         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10780         New functions.
10781         (remove_structure): Update allocations list before removing structure.
10782         
10783 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
10784
10785         * ipa-struct-reorg.c (is_safe_cond_expr, 
10786         create_new_stmts_for_cond_expr): Use integer_zerop function,
10787         that recognize not only zero-pointer, but zero-integer too.
10788
10789 2008-01-25  Ben Elliston  <bje@au.ibm.com>
10790
10791         PR other/22232
10792         * fixproto: Escape "." in sed expression that strips leading "./".
10793
10794 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10795
10796         PR driver/34904
10797         * gcc.c (SWITCH_OK): Removed.
10798         (SWITCH_LIVE): Changed to bit.
10799         (SWITCH_FALSE): Likewise.
10800         (SWITCH_IGNORE): Likewise.
10801         (switchstr): Change live_cond to unsigned int.
10802         (process_command): Replace SWITCH_OK with 0.
10803         (do_self_spec): Likewise.
10804         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10805         (give_switch): Likewise.
10806         (used_arg): Likewise.
10807         (do_spec_1): Set the SWITCH_IGNORE bit.
10808         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10809         bits.  Set the SWITCH_LIVE bit.
10810
10811 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
10812
10813         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10814
10815 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
10816
10817         PR tree-optimization/34472
10818         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10819         parameter to a "bool *" and set *DATA to false if there is
10820         an unsafe access.  Do not delete the structure here.
10821         (check_cond_exprs): Delete it here instead.
10822         (check_cond_exprs, exclude_cold_structs): Do not increase
10823         I when removing a structure.
10824
10825 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
10826
10827         PR target/34856
10828         * config/i386/i386.c (ix86_expand_vector_init): Consider only
10829         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10830
10831 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
10832
10833         PR middle-end/34934
10834         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10835         a fixed vector for stack.
10836
10837 2008-01-24  Ben Elliston  <bje@au.ibm.com>
10838
10839         PR c++/25701
10840         * doc/gcc.texi (Software development): Add a direntry for g++.
10841         
10842 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
10843
10844         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10845         stale and straggling -fforce-addr comments above.
10846
10847         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10848         define.
10849         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10850         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10851
10852 2008-01-23  Michael Matz  <matz@suse.de>
10853
10854         PR debug/34895
10855         * dwarf2out.c (force_type_die): Use modified_type_die instead of
10856         gen_type_die.
10857
10858 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
10859
10860         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10861         malloc result type.
10862
10863 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10864
10865         * config/avr/avr.c (avr_current_arch): New variable.
10866         (avr_arch_types): Add 'avr31' and 'avr51' entries.
10867         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10868         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10869         (avr_override_options): Init 'avr_current_arch'. 
10870         (base_arch_s): Move from here...
10871         * config/avr/avr.h (base_arch_s): ... here. Add new members 
10872         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
10873         'mega' to 'have_jmp_call'.
10874         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
10875         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
10876         macros.
10877         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
10878         architectures.
10879         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
10880         MULTILIB_MATCHES): (Ditto.).
10881
10882 2008-01-23  Richard Guenther  <rguenther@suse.de>
10883
10884         PR middle-end/31529
10885         * cgraphunit.c (cgraph_reset_node): Always mark the node
10886         not reachable if it is not queued already.
10887
10888 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
10889
10890         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10891         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10892         (cputype_selected): New static variable.
10893         (bfin_handle_option): Set it if -mcpu is used.
10894         (override_option): Select default set of workarounds if no cpu type
10895         selected on the command line.
10896         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10897
10898         From  Michael Frysinger  <michael.frysinger@analog.com>
10899         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10900         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10901
10902         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10903         for bf547, bf523, bf524, and bf526.
10904         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
10905         bf526.
10906         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10907         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10908         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10909         __ADSPBF547__ and __ADSPBF54x__ for bf547.
10910         * doc/invoke.texi (Blackfin Options): Document that
10911         -mcpu now accept bf547, bf523, bf524, and bf526.
10912
10913 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10914
10915         PR rtl-optimization/34628
10916         * combine.c (try_combine): Stop and undo after the first combination
10917         if an autoincrement side-effect on the first insn has effectively
10918         been lost.
10919
10920 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
10921
10922         PR target/34529
10923         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10924         Offset addresses are not valid for Altivec or paired float modes.
10925
10926 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
10927
10928         PR c++/34607
10929         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10930         if DECL_INITIAL (decl) is error_mark_node.
10931
10932         PR c++/34914
10933         * c-common.c (handle_vector_size_attribute): Only allow
10934         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
10935         the same way as pointer, array etc. types.
10936         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10937
10938         PR c++/34917
10939         * tree.c (build_type_attribute_qual_variant): Call
10940         build_qualified_type if attributes are equal, but quals are not.
10941
10942 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10943
10944         PR 32102
10945         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10946         * flags.h (warn_strict_aliasing): Remove.
10947         (warn_strict_overflow): Remove.
10948         * opts.c (warn_strict_aliasing): Remove.
10949         (warn_strict_overflow): Remove.
10950         * c-opts.c (c_common_handle_option): -Wall only sets
10951         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10952         (c_common_post_options): Give default values to -Wstrict-aliasing
10953         and -Wstrict-overflow if they are uninitialized.
10954         * common.opt (Wstrict-aliasing): Specify Var and Init.
10955         (Wstrict-overflow): Likewise.
10956
10957 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
10958
10959         PR rtl-optimization/26854
10960         PR rtl-optimization/34400
10961         PR rtl-optimization/34884
10962         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10963         DF_RD->gen.
10964         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10965         (df_rd_bb_info.expanded_lr_out): Deleted
10966         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10967         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
10968         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10969         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10970         Removed code to allocate, initialize or free expanded_lr_out.
10971         (df_rd_bb_local_compute_process_def): Restructured to make more
10972         understandable.
10973         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10974         sets if the sets are being trimmed.
10975
10976 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10977
10978         PR bootstrap/32287
10979         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10980         (as_vers): Likewise.
10981         * configure: Regenerated.
10982
10983 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10984
10985         PR middle-end/33092
10986         * tree-pass.h (pass_build_alias): New pass.
10987         * tree-ssa-alias.c (gate_build_alias): New.
10988         (pass_build_alias): New.
10989         * passes.c (init_optimization_passes): Add pass_build_alias after
10990         pass_create_structure_vars.
10991
10992 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
10993
10994         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10995         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10996         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10997         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10998         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10999         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11000         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11001         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11002         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11003         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11004         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11005         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11006         * config/s390/s390.md (FP_ALL): New mode iterator.
11007         (_d): New mode attribute.
11008         ("*signbit<mode>2>"): Changed mode of first operand.
11009         ("isinf<mode>2"): Changed mode of first operand.
11010         ("*TDC_insn"): Adaptation for DFP modes.
11011
11012 2008-01-22  Ben Elliston  <bje@au.ibm.com>
11013
11014         * tree.c (check_qualified_type): Improve function description.
11015
11016 2008-01-21  Jason Merrill  <jason@redhat.com>
11017
11018         PR c++/34196
11019         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11020         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11021         if it is set.
11022
11023 2008-01-21  DJ Delorie  <dj@redhat.com>
11024
11025         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11026         return zero.
11027
11028 2008-01-21  Richard Guenther  <rguenther@suse.de>
11029
11030         PR middle-end/34856
11031         * tree-cfg.c (verify_expr): Allow all invariant expressions
11032         instead of just constant class ones as reference argument.
11033         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11034         like any other constant.
11035         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11036
11037 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11038
11039         * regmove.c (fixup_match_1): Update call crossed frequencies.
11040
11041 2008-01-21  Richard Guenther  <rguenther@suse.de>
11042
11043         PR c/34885
11044         * tree-inline.c (setup_one_parameter): Deal with mismatched
11045         types using a VIEW_CONVERT_EXPR.
11046
11047 2008-01-21  Alon Dayan  <alond@il.ibm.com>
11048             Olga Golovanevsky  <olga@il.ibm.com>
11049         
11050         PR tree-optimization/34701
11051         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11052         when the structure size is not a power of 2.
11053
11054 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11055
11056         * doc/install.texi: Add doc for --enable-checking=df.
11057         
11058 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11059
11060         PR rtl-optimization/34808
11061         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11062
11063 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11064
11065         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11066         input.
11067
11068 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
11069
11070         PR rtl-optimization/26854
11071         PR rtl-optimization/34400
11072         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11073         DF_RD->gen.
11074         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11075         (df_rd_bb_info.expanded_lr_out): New.
11076         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11077         * loop_iv.c (iv_analysis_loop_init): Ditto.
11078         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11079         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11080         Added code to allocate, initialize or free expanded_lr_out.
11081         (df_rd_bb_local_compute_process_def): Restructured to make
11082         more understandable.
11083         (df_rd_confluence_n): Add code to do nothing with fake edges and
11084         code to no apply invalidate_by_call sets if the sets are being trimmed.
11085         (df_lr_local_finalize): Renamed to df_lr_finalize.
11086         (df_live_local_finalize): Renamed to df_live_finalize.
11087
11088 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
11089
11090         PR target/34831
11091         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11092         deciding whether to use reciprocal instructions.
11093
11094 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
11095
11096         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11097         dwarf2out_note_section_used if cold_text_section is NULL.
11098
11099 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
11100
11101         PR gcov-profile/34610
11102         * tree-cfg.c (make_edges): Mark both outgoing edges from
11103         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11104         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11105         from OMP_FOR and OMP_CONTINUE outgoing edges.
11106
11107         * tree-profile.c (tree_profiling): Return early if
11108         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
11109         at the end.
11110         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11111         from cfun to child_cfun.
11112         * function.h (struct function): Add after_tree_profile bit.
11113
11114 2008-01-19 Anatoly Sokolov <aesok@post.ru>
11115
11116         * config/avr/avr.S (_exit): Disable interrupt.
11117
11118 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
11119             Steven Bosscher  <stevenb.gcc@gmail.com>
11120
11121         PR rtl-optimization/26854
11122         PR rtl-optimization/34400
11123         * df-problems.c (df_live_scratch): New scratch bitmap.
11124         (df_live_alloc): Allocate df_live_scratch when doing df_live.
11125         (df_live_reset): Clear the proper bitmaps.
11126         (df_live_bb_local_compute): Only process the artificial defs once
11127         since the order is not important.
11128         (df_live_init): Init the df_live sets only with the variables
11129         found live by df_lr.
11130         (df_live_transfer_function): Use the df_lr sets to prune the
11131         df_live sets as they are being computed.  
11132         (df_live_free): Free df_live_scratch.
11133
11134 2008-01-18  Ian Lance Taylor  <iant@google.com>
11135
11136         * common.opt: Add fmerge-debug-strings.
11137         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11138         flag_merge_debug_strings rather than flag_merge_constants.
11139         * doc/invoke.texi (Option Summary): Mention
11140         -fmerge-debug-strings.
11141         (Debugging Options): Document -fmerge-debug-strings.
11142
11143 2008-01-18  Ian Lance Taylor  <iant@google.com>
11144
11145         PR c++/33407
11146         * tree.h (DECL_IS_OPERATOR_NEW): Define.
11147         (struct tree_function_decl): Add new field operator_new_flag.
11148         * tree-inline.c (expand_call_inline): When inlining a call to
11149         operator new, force the return value to go into a variable, and
11150         set DECL_NO_TBAA_P on that variable.
11151         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11152
11153 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
11154
11155         PR debug/34484
11156         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11157         DWARF2_DEBUGGING_INFO.
11158         (dwarf2out_note_section_used): Ditto.  Add prototype.
11159         (have_multiple_function_sections, text_section_used,
11160         cold_text_section_used, *cold_text_sections): Move declarations
11161         before their uses.
11162
11163 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
11164
11165         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11166         field and add signal_ra.
11167         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11168         assignments to frame state pc.  Move end of stack check after
11169         MD_FALLBACK_FRAME_STATE_FOR.
11170         (uw_update_context_1): Use frame state signal_regs if set, instead
11171         of checking signal_frame flag.
11172         (uw_update_context): Use frame state signal_ra if set.
11173         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11174         * config/xtensa/linux-unwind.h: New file.
11175
11176 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
11177
11178         * modulo-sched.c (get_sched_window): Fix comment typo.
11179
11180 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
11181
11182         PR tree-optimization/34648
11183         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11184
11185 2008-01-17  Anatoly Sokolov <aesok@post.ru>
11186
11187         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11188         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11189
11190 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
11191
11192         PR rtl-optimization/34400
11193         * df-core.c (df_worklist_dataflow_overeager,
11194         df_worklist_dataflow_doublequeue): New functions.
11195         (df_worklist_dataflow): Two different worklist solvers.
11196         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11197         New param.
11198
11199 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11200
11201         PR testsuite/34821
11202         * doc/invoke.texi: Document the dependence on pthread for fopenmp
11203         and ftree-parallelize-loops.
11204
11205 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
11206
11207         PR rtl-optimization/34826
11208         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11209
11210 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
11211
11212         * global.c (find_reg): Mark the eh regs as used if necessary.
11213         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11214         * ra.h (struct allocno): no_eh_reg field added.  Changed
11215         no_stack_reg type to bitfield.
11216
11217 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11218
11219         * tree.c (substitute_in_expr): Add missing 'break'.
11220
11221 2008-01-17  Richard Guenther  <rguenther@suse.de>
11222
11223         PR tree-optimization/34825
11224         * tree-ssa-math-opts.c (is_division_by): Do not recognize
11225         x / x as division to handle.
11226
11227 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11228
11229         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11230         "-pthread" is specified.
11231         * pa-hpux11.h (LIB_SPEC): Likewise.
11232
11233 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
11234             Peter Bergner  <bergner@vnet.ibm.com>
11235
11236         PR rtl-optimization/33796
11237         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11238
11239 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11240
11241         PR libgfortran/34699
11242         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11243         static links.
11244         * pa-hpux10.h (LINK_SPEC): Likewise.
11245         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11246
11247 2008-01-16  Richard Guenther  <rguenther@suse.de>
11248
11249         PR middle-end/32628
11250         * fold-const.c (fold_convert_const_int_from_int): Do not
11251         set overflow if that occured only because of a sign extension
11252         change when converting from/to a sizetype with the same
11253         precision and signedness.
11254
11255 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11256
11257         PR debug/34249
11258         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11259         location address to the correct place.  Update copyright year.
11260
11261 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11262
11263         * lambda-code.c (lambda_transform_legal_p): Handle the case of
11264         no dependences in the dependence_relations vector.
11265
11266 2008-01-16  Jan Hubicka  <jh@suse.cz>
11267
11268         PR rtl-optimization/31396
11269         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11270         * cfg.c (dump_reg_info): Print it.
11271         * regs.h (struct reg_info_t): add freq_calls_crossed.
11272         (REG_FREQ_CALLS_CROSSED): New macro.
11273         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11274         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11275         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11276         regmove_optimize): Update call crossed frequencies.
11277         * local-alloc.c (struct qty): Add freq_calls_crossed.
11278         (alloc_qty): Copute freq_calls_crossed.
11279         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11280         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11281         * ra.h (struct allocno): Add freq_calls_crossed.
11282
11283 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11284
11285         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11286         libgomp when compiling with ftree-parallelize-loops.
11287         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11288
11289 2008-01-16  Richard Guenther  <rguenther@suse.de>
11290
11291         PR tree-optimization/34769
11292         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11293         * tree.c (int_cst_value): Instead make this function more
11294         permissive in what it accepts as valid input.  Document this
11295         function always sign-extends the value.
11296
11297 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
11298             Richard Guenther  <rguenther@suse.de>
11299
11300         PR c/34668
11301         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11302         (gimple_fold_indirect_ref_rhs): ... this.
11303         (gimple_fold_indirect_ref): New function with foldings
11304         that preserve lvalueness.
11305         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11306         * tree-flow.h (gimple_fold_indirect_ref): Declare.
11307         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11308         to fold an INDIRECT_REF, fall back to the old use of
11309         fold_indirect_ref_1.
11310
11311 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11312
11313         * tree-data-ref.c (subscript_dependence_tester_1): Call 
11314         free_conflict_function.
11315         (compute_self_dependence): Same.
11316
11317 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
11318
11319         PR debug/34249
11320         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11321         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
11322         function global.
11323         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11324         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11325         for DWARF2_UNWIND_INFO targets.
11326
11327 2008-01-16  Richard Guenther  <rguenther@suse.de>
11328
11329         PR c/34768
11330         * c-typeck.c (common_pointer_type): Do not merge inconsistent
11331         type qualifiers for function types.
11332
11333 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
11334
11335         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11336         loop_iterator li from previous commit.
11337
11338 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11339
11340         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11341
11342 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11343
11344         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11345         (parallelize_loops): Don't parallelize irreducible components.
11346
11347 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11348
11349         PR c++/24924
11350         * c-opts (c_common_post_options): Do not enable CPP
11351         flag_pedantic_errors by default.
11352         
11353 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
11354
11355         PR rtl-optimization/31944
11356         * cse.c (remove_pseudo_from_table): New function.
11357         (merge_equiv_classes): Use above function to remove pseudo-registers.
11358         (invalidate): Likewise.
11359
11360 2008-01-13  Richard Guenther  <rguenther@suse.de>
11361
11362         PR middle-end/34601
11363         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11364         instead of TYPE_MODE to deal with calls from expand_one_error_var.
11365
11366 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
11367
11368         * gcse.c (cprop_jump): Call validate_unshare_change instead of
11369         validate_change to unshare the source of the PC set.
11370
11371 2008-01-12  Jan Hubicka  <jh@suse.cz>
11372
11373         PR middle-end/32135
11374         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
11375         references above array bounds.  This might trigger bounds checks for
11376         pointers to arrays.
11377
11378 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
11379
11380         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
11381         new_replaceable_dependencies.
11382
11383 2008-01-12  Doug Kwan  <dougkwan@google.com>
11384
11385         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
11386         instead of OPT_Wreturn_type in warning due to ignored return type
11387         qualifiers.
11388         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
11389         options included in -Wextra.
11390         * c.opt: New option -Wignored_qualifiers.
11391         * doc/invoke.texi (Warning Options, -Wextra): Add new option
11392         -Wignore_qualifiers.
11393         (-Wignored-qualifiers): Document.
11394         (-Wreturn-type): Remove description of functionality now handled
11395         by -Wignored-qualifiers.
11396
11397 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
11398
11399         PR ada/33788
11400         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
11401         NOP_EXPR if it is between integral types with the same precision.
11402
11403 2008-01-12  Jan Hubicka  <jh@suse.cz>
11404
11405         PR other/28023
11406         * invoke.texi (max-inline-recursive-depth): Fix default value.
11407
11408 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
11409
11410         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
11411         correct type.
11412
11413 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
11414         
11415         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
11416         
11417 2008-01-11  James E. Wilson  <wilson@specifix.com>
11418
11419         PR target/26015
11420         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
11421
11422 2008-01-11  Anatoly Sokolov <aesok@post.ru>
11423
11424         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
11425         save/restore frame pointer register and don't use 'call-prologues' 
11426         optimization in function with "OS_task" attribute.
11427
11428 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
11429
11430         PR middle-end/31309
11431         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
11432         when copying to memory.
11433
11434 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
11435
11436         PR rtl-optimization/30905
11437         * cfgcleanup.c: Include dce.h
11438         (crossjumps_occured): New global variable.
11439         (try_crossjump_bb): Exit loop after finding a fallthru edge.
11440         If something changed, set crossjumps_occured to true.
11441         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
11442         Don't add/remove fake edges to exit here...
11443         (cleanup_cfg): ...but do it here, when crossjumping.
11444         Run a fast DCE when successful crossjumps occured in the latest
11445         iteration of try_optimize_cfg.
11446
11447 2008-01-11  Richard Guenther  <rguenther@suse.de>
11448
11449         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
11450         (struct vn_unary_op_s): Likewise.
11451         (vn_reference_insert): Free old reference on hash collision.
11452
11453 2008-01-10  Raksit Ashok  <raksit@google.com>
11454
11455         PR rtl-optimization/27971
11456         * combine.c (find_split_point): Split PLUS expressions which are
11457         inside a MEM rtx, and whose first operand is complex.
11458
11459 2008-01-10  DJ Delorie  <dj@redhat.com>
11460
11461         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
11462         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
11463         (m32c_hard_regno_ok): Call the underlying function.
11464
11465 2008-01-10  Richard Guenther  <rguenther@suse.de>
11466
11467         PR middle-end/34683
11468         * tree-cfg.c (tree_merge_blocks): Do not go through the
11469         full-blown folding and stmt updating path if we just deal
11470         with virtual operands.
11471         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
11472         test for abnormal SSA_NAMEs.
11473
11474 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
11475
11476         PR middle-end/34641
11477         * reload.c (push_reload): Add assertions.  All constants from
11478         reg_equiv_constant should have been used for replacing the respective
11479         pseudo earlier.
11480         (find_reloads_address): Invoke find_reloads_address_part for
11481         constant taken from the reg_equiv_constant array.
11482
11483 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
11484
11485         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
11486         field (valnum) the first in the struct.  Replace bools with
11487         unit bit fields.
11488
11489 2008-01-10  Richard Guenther  <rguenther@suse.de>
11490
11491         PR tree-optimization/34651
11492         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
11493         types and ordering for masking and converting.
11494
11495 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
11496
11497         PR tree-optimization/34017
11498         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
11499         also for PHI_NODE expressions.
11500
11501 2008-01-09  Jan Hubicka  <jh@suse.cz>
11502
11503         PR tree-optimization/34708
11504         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
11505         based on number of case labels.
11506         (init_inline_once): Remove switch_cost.
11507         * tree-inline.h (eni_weights_d): Remove switch_cost.
11508
11509 2008-01-09  Richard Guenther  <rguenther@suse.de>
11510         Andrew Pinski  <andrew_pinski@playstation.sony.com>
11511
11512         PR middle-end/30132
11513         * gimplify.c (gimplify_cond_expr): Do not create an addressable
11514         temporary if an rvalue is ok or an lvalue is not required.
11515
11516 2008-01-09  Richard Guenther  <rguenther@suse.de>
11517
11518         PR middle-end/34458
11519         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
11520         adjust return type.
11521
11522 2008-01-09  Richard Guenther  <rguenther@suse.de>
11523
11524         PR middle-end/34679
11525         * tree.c (host_integerp): Check for sizetype only if the
11526         type is an integer type.
11527
11528 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
11529
11530         PR debug/26364
11531         * opts.c (decode_options): Disable inlining of functions called
11532         once if not in unit-at-a-time mode.
11533
11534 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
11535
11536         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
11537
11538 2008-01-08  Richard Guenther  <rguenther@suse.de>
11539
11540         PR middle-end/31863
11541         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
11542         out early if the result will be unused.
11543
11544 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11545
11546         PR target/34709
11547         Revert:
11548
11549         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11550         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11551         for TARGET_RECIP.       
11552         
11553 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
11554         
11555         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
11556         for vectorization tuned.
11557         
11558 2008-01-08  Richard Guenther  <rguenther@suse.de>
11559
11560         PR tree-optimization/34683
11561         * tree-ssa-operands.c (operand_build_cmp): Export.
11562         * tree-ssa-operands.h (operand_build_cmp): Declare.
11563         * tree-vn.c (vuses_compare): Remove.
11564         (sort_vuses): Use operand_build_cmp.
11565         (sort_vuses_heap): Likewise.
11566         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
11567         to re-use old VEC if available.  Do not sort already sorted VUSEs.
11568         (vdefs_to_vec): Do not sort already sorted VDEFs.
11569
11570 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
11571
11572         PR middle-end/34694
11573         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
11574
11575 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
11576
11577         PR target/34702
11578         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
11579         limitations of reciprocal sequences on x86 targets.
11580
11581 2008-01-08  Richard Guenther  <rguenther@suse.de>
11582
11583         PR tree-optimization/34683
11584         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
11585
11586 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
11587
11588         PR target/34622
11589         * config/darwin.c (darwin_mergeable_string_section): Don't use
11590         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
11591
11592 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
11593
11594         PR target/34682
11595         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
11596         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
11597         predicates of op0 and op1 to register_operand.
11598         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
11599         expander using X87MODEF mode iterator.  Change predicates of
11600         op0 and op1 to register_operand.
11601         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
11602         corresponding patterns and macroize using MODEF macro.  Change
11603         predicates of op0 and op1 to register_operand and remove
11604         "m" constraint. Disparage "r" alternative with "!".
11605         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
11606         macroize using X87MODEF macro.  Change predicates of op0 and op1
11607         to register_operand and remove "m" constraint.  Disparage "r"
11608         alternative with "!".
11609         (absneg splitter with memory operands): Remove.
11610         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
11611         patterns and macroize using X87MODEF mode iterator.
11612         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
11613         Change predicate of op1 to register_operand.
11614         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
11615         for memory operands.
11616
11617 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11618
11619         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
11620
11621 2008-01-07  Richard Guenther  <rguenther@suse.de>
11622
11623         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
11624         fields.
11625
11626 2008-01-07  Richard Guenther  <rguenther@suse.de>
11627
11628         PR tree-optimization/34683
11629         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
11630         VOPs of the needed size to save memory.  Use VEC_quick_push
11631         to save compile-time.
11632         (vdefs_to_vec): Likewise.
11633
11634 2008-01-07  Sa Liu  <saliu@de.ibm.com>
11635
11636         * config/spu/spu.md (divdf3): Genetate inline code for double
11637         division.  The implementation doesn't handle INF or NAN, therefore it
11638         only applies when -ffinite-math-only is given.
11639
11640 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
11641
11642         PR libstdc++/34680
11643         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
11644         * doc/cpp.texi ([Common Predefined Macros]): Document.
11645
11646 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
11647
11648         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
11649         order to use commutative addition instead of subtraction.
11650
11651 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11652             Mircea Namolaru  <namolaru@il.ibm.com>
11653             Vladimir Yanovsky  <yanov@il.ibm.com>
11654             Revital Eres  <eres@il.ibm.com>
11655
11656         PR tree-optimization/34263
11657         * tree-outof-ssa.c (process_single_block_loop_latch,
11658         contains_tree_r): New functions.
11659         (analyze_edges_for_bb): Call process_single_block_loop_latch
11660         function to empty single-basic-block latch block if possible.
11661
11662 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11663
11664         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
11665         for TARGET_RECIP.
11666         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
11667
11668 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11669
11670         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
11671
11672 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
11673
11674         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
11675
11676 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
11677
11678         PR tree-optimization/34618
11679         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
11680         flag from T.
11681
11682 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
11683
11684         PR target/34673
11685         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
11686         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
11687         Update copyright year.
11688
11689         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
11690         Update copyright year.
11691         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
11692         using NR fixup.
11693
11694 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
11695
11696         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
11697         edge does not point to current bb before changing need_assert.
11698
11699 2008-01-04  Richard Guenther  <rguenther@suse.de>
11700
11701         PR middle-end/34029
11702         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
11703         for verifying purposes if they are is_gimple_min_invariant.
11704
11705 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
11706
11707         PR tree-optimization/34448
11708         PR tree-optimization/34465
11709         * gimplify.c (gimplify_init_constructor): Add new parameter
11710         notify_temp_creation.  Use it.
11711         (gimplify_modify_expr_rhs): Take volatiles into account when
11712         optimizing constructors.
11713         Do not optimize constructors if gimplify_init_constructor will dump to
11714         memory.
11715         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
11716         * gcc.c-torture/compile/pr34448.c: New.
11717
11718 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
11719
11720         PR gcov-profile/34609
11721         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
11722         return_slot if result is TREE_ADDRESSABLE.
11723
11724 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
11725
11726         * config/mips/mips.md (sqrt_condition): Tweak comment.
11727         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
11728
11729 2008-01-03  Tom Tromey  <tromey@redhat.com>
11730
11731         PR c/34457
11732         * c-common.c (c_type_hash): Handle VLAs.
11733
11734 2008-01-03  Jan Hubicka  <jh@suse.cz>
11735
11736         PR tree-optimization/31081
11737         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11738         0 when inlining and not inlining to first basic block.
11739         (remap_decl): When var is initialized to 0, don't set default_def.
11740         (expand_call_inline): Set entry_bb.
11741         * tree-inline.h (copy_body_data): Add entry_bb.
11742
11743 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11744
11745         PR c++/34619
11746         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11747         before returning.
11748
11749         PR tree-optimization/29484
11750         * tree-inline.c (inline_forbidden_p_2): New function.
11751         (inline_forbidden_p): Disallow inlining if some static var
11752         has an address of a local LABEL_DECL in its initializer.
11753         * doc/extend.texi (Labels as Values): Document &&foo behaviour
11754         vs. inlining.
11755
11756 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11757
11758         PR tree-optimization/34635
11759         * tree-data-ref.c (add_other_self_distances): Make sure that the
11760         evolution step is constant.
11761
11762 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
11763
11764         PR middle-end/34608
11765         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11766
11767 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
11768
11769         * tree-sra.c (scalarize_init): Insert the generate_element_init
11770         statements after the generate_element_zero statements.
11771
11772 2008-01-02  Richard Guenther  <rguenther@suse.de>
11773
11774         PR middle-end/34093
11775         PR middle-end/31976
11776         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11777         for very large number of operands instead of ICEing.
11778
11779 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
11780
11781         PR target/34013
11782         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11783         while stack probing.
11784
11785 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
11786
11787         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11788         in C++0x mode.
11789
11790 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
11791
11792         PR libmudflap/26442
11793         * tree-mudflap.c (mx_register_decls): Guard warning by
11794         !DECL_ARTIFICIAL check.
11795
11796 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
11797
11798         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11799         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11800         sse5_perm<mode>): Fix constraints.