OSDN Git Service

Fix IA-64 breakage; Make hot/cold optimization conversation port specific; Move disab...
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
2
3         * doc/extend.texi (hot attribute): Document that the hot attribute
4         turns on -O3 for some ports.
5         (cold attribute): Document that the cold attribute turns on -Os
6         for some ports
7
8         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
9         reflect function specific option support.
10
11         * target.h (struct target_option_hooks): Add fields to say whether
12         the cold attribute implies -Os and the hot attribute implies -O3.
13
14         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
15         By default, do not turn on -Os for cold functions.
16         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
17         not turn on -O3 for hot functions.
18
19         * c-common.c (handle_hot_attribute): Use target hook to determine
20         if hot functions should enable -O3.
21         (handle_cold_attribute): Use target hook to determine if cold
22         functions should enable -Os.
23
24         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
25         (override_options): Move disable scheduling to
26         optimization_options.
27         (optimization_options): Disable scheduling here, not
28         override_options.
29         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
30         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
31
32         * config/ia64/ia64.c (ia64_override_options): Move setting
33         scheduling flags to ia64_optimization_options.
34         (ia64_optimization_options): Disable scheduling options here, and
35         not in ia64_override_options.
36         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
37         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
38
39 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
40
41         PR target/36936
42         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
43
44 2008-07-25  Martin Jambor  <mjambor@suse.cz>
45
46         PR tree-optimization/36926
47         * ipa-prop.c (ipa_analyze_call_uses): Call
48         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
49
50 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
51
52         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
53         movv2si_internal): Add mem = reg alternative.
54
55 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
56
57         PR bootstrap/36918
58         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
59         DEFAULT_PCC_STRUCT_RETURN to 127.
60
61 2008-07-24  Jan Hubicka  <jh@suse.cz>
62
63         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
64         (build_cgraph_edges): Likewise.
65         * cgraph.c (cgraph_node): Do not update assembler hash.
66         (cgraph_remove_node): Drop non-unit-at-a-time code.
67         * tree-pass.h (pass_O0_always_inline): Remove.
68         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
69         * toplev.c (process_options): Flag unit-at-a-time does not imply
70         no section anchors.
71         * cgraphunit.c: Update comments.
72         (decide_is_function_needed): Drop non-unit-at-a-time mode.
73         (cgraph_assemble_pending_functions): Remove.
74         (cgraph_reset_node): Drop non-unit-at-a-time code.
75         (cgraph_finalize_function): Likewise.
76         (cgraph_analyze_function): Likewise.
77         (cgraph_finalize_compilation_unit): Likewise.
78         (cgraph_expand_function): Likewise.
79         (cgraph_optimize): Likesise.
80         (save_inline_function_body): Likewise.
81         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
82         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
83         * ipa-inline.c: Update comments.
84         (enum inlining_mode): remove INLINE_SPEED.
85         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
86         (cgraph_mark_inline_edge): Likewise.
87         (try_inline): Likewise.
88         (cgraph_decide_inlining_incrementally): Likewise.
89         (cgraph_gate_inlining): Remove.
90         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
91         (cgraph_gate_early_inlining): Likewise.
92         (gate_inline_passes): Remove.
93         (pass_inline_parameters, pass_ipa_inline): Remove gates.
94         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, 
95         pass_O0_always_inline): Remove.
96         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
97         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
98         * opts.c (no_unit_at_a_time_default): Remove.
99         (decode_options): Remove flag_unit_at_a_time reset and warning.
100         * opts.h (no_unit_at_a_time_default): Remove.
101         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
102         early in GNU dialect.
103         (merge_decls): Update comment; drop unit-at-a-time check.
104         (finish_decl): Likewise.
105         (grok_declaration): Remove flag_inline_trees code.
106         (finish_functions): Return on function returning non-void on all
107         statics.
108         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
109         * cfgexpand.c (expand_one_static_var): Remove.
110         (expand_one_var): Remove expand_one_static_var call.
111         (expand_used_vars_for_block): Remove flag_unit_a_time check.
112         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
113         and flag_unit_at_a-time compatibility checks.
114         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
115         * tree-inline.c (flag_inline_trees): Remove.
116         (inlinable_function_p): Don't check it.
117         (expand_call_inline): Remove non-unit-at-a-time code.
118         * tree-inline.h (flag_inline_trees): Remove.
119         * tree-optimize.c (execute_early_local_optimizations): Remove
120         unit-at-a-time checks.
121         (tree_rest_of_compilation): Likewise.
122         * combine.c (setup_incoming_promotions): Likewise.
123         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
124         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
125         * passes.c (pass_inline_parameters): Update comments; remove
126         O0_alwaysinline pass.
127         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
128         (execute_one_pass): Likewise.
129         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
130         (ix86_function_sseregparm): Likewise.
131         * arm.c (arm_function_in_section_p): Likewise.
132         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
133         * varpool.c: Update comments.
134         (decide_is_variable_needed): Remove unit-at-a-time checks.
135         (varpool_finalize_decl): Likewise.
136
137 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
138
139         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
140         to 2 instead of -1.
141         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal
142         to 2.
143
144 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
145
146         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
147         imp symbol extension.
148
149         2008-07-23  Ian Lance Taylor  <iant@google.com>
150
151         * tree-vrp.c (infer_value_range): Ignore asm statements when
152         looking for memory accesses for -fdelete-null-pointer-checks.
153
154 2008-07-24  Ben Elliston  <bje@au.ibm.com>
155
156         * config/spu/spu-c.c (__vector_keyword): New variable.
157         (vector_keyword): Likewise.
158         (spu_categorize_keyword): New function.
159         (spu_macro_to_expand): Likewise.
160         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
161         compiling an ISO C dialect.
162
163 2008-07-24  Ben Elliston  <bje@au.ibm.com>
164
165         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
166         conventional usage.
167
168 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
169
170         * configure: Regenerate.
171         * configure.ac: Require texinfo 4.7.
172         * doc/install.texi: Document texinfo 4.7 requirement.
173
174 2008-07-23  Martin Jambor  <mjambor@suse.cz>
175
176         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
177         rather than for DECL_SAVED_TREE.
178         * ipa-prop.c: Include diagnostic.h.
179         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
180         thoroughly.
181         (ipa_detect_param_modifications): Function rewritten from scratch.
182         (ipa_compute_jump_functions): Changed accesses to modification flags.
183         (ipa_free_node_params_substructures): Update flags destruction.
184         (ipa_node_duplication_hook): Update flags duplication.
185         (ipa_print_all_params_modified): Updated flag access.
186         * ipa-prop.h (struct ipa_param_flags): New structure.
187         (struct ipa_node_params): New field modification_analysis_done,
188         modified_flags changed into param_flags.
189         (ipa_is_ith_param_modified): Changed to use new flags.
190         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
191
192         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
193         ipa-cp.c and split into two functions.
194         (ipa_print_node_jump_functions): New function.
195         (compute_scalar_jump_functions): New function.
196         (type_like_member_ptr_p): New function.
197         (compute_pass_through_member_ptrs): New function.
198         (fill_member_ptr_cst_jump_function): New function.
199         (determine_cst_member_ptr): New function.
200         (compute_cst_member_ptr_arguments): New function.
201         (ipa_compute_jump_functions): Complete rewrite.
202         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
203         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
204         (struct ipa_member_ptr_cst): New structure.
205         (union jump_func_value): New field member_cst.
206         * ipa-cp.c (ipcp_lat_is_insertable): New function.
207         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
208         jump function types.
209         (ipcp_print_all_lattices): Slight fprintf rearrangement.
210         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
211         instead of ipcp_print_all_jump_functions.
212         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
213         only for replacable scalars.
214
215         * doc/invoke.texi (Optimize options): Add description of
216         -findirect-inlining.
217         * common.opt (flag_indirect_inlining): New flag.
218         * opts.c (decode_options): Set flag_indirect_inlining when 
219         optimize >= 3.
220
221         * ipa-inline.c: Include ipa-prop.h.
222         (inline_indirect_intraprocedural_analysis): New function.
223         (inline_generate_summary): Allocate parameter and argument info
224         structures, call inline_indirect_intraprocedural_analysis on each
225         node when doing indirect inlining and deallocate indirect inlining 
226         data structures in the end.
227         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
228         (free_all_ipa_structures_after_iinln): New function.
229         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be 
230         done.
231         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
232
233         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
234         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
235         of computing the frequency separately.
236         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
237         of computing the frequency separately.
238         * ipa-cp.c (ipcp_print_all_structures): Replace a call to 
239         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
240         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
241         (ipa_get_stmt_member_ptr_load_param): New function.
242         (ipa_is_ssa_with_stmt_def): New function.
243         (ipa_note_param_call): New function.
244         (ipa_analyze_call_uses): New function.
245         (ipa_analyze_stmt_uses): New function.
246         (ipa_analyze_params_uses): New function.
247         (ipa_free_node_params_substructures): Also free the param_calls linked
248         list.
249         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
250         (ipa_print_node_param_flags): New function.
251         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
252         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
253         * ipa-prop.h (struct ipa_param_flags): New field called.
254         (struct ipa_param_call_note): New structure.
255         (struct ipa_node_params): New fields param_calls and
256         uses_analysis_done.
257         (ipa_is_ith_param_called): New function.
258         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
259         ipa_analyze_params_uses and dump parameter flags.
260
261         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
262         ipa_propagate_indirect_call_infos if performing indirect inlining,
263         pass a new parameter new_edges to it.
264         (add_new_edges_to_heap): New fucntion.
265         (cgraph_decide_inlining_of_small_functions): New vector
266         new_indirect_edges for newly found indirect edges , call
267         ipa_propagate_indirect_call_infos after inlining.
268         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
269         inlining if performing indirect inlining.  Call
270         free_all_ipa_structures_after_iinln when doing so too.
271         (inline_generate_summary): Do not call
272         free_all_ipa_structures_after_iinln here.
273         * ipa-prop.c (update_jump_functions_after_inlining): New function.
274         (print_edge_addition_message): New function.
275         (update_call_notes_after_inlining): New function.
276         (propagate_info_to_inlined_callees): New function.
277         (ipa_propagate_indirect_call_infos): New function.
278         * ipa-prop.h: Include cgraph.h
279         (struct ipa_param_call_note): Fields reordered, new field processed.
280         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
281         flag indirect_call.
282         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
283         rediscovered call statements.
284         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
285         (dump_cgraph_node): Dump also the indirect_call flag.
286         (cgraph_clone_edge): Copy also the indirect_call flag.
287         * tree-inline.c (copy_bb): Do not check for fndecls from call
288         expressions, check for edge availability when moving clones.
289         (get_indirect_callee_fndecl): New function.
290         (expand_call_inline): If callee declaration is not apprent from
291         the statement, try calling get_indirect_callee_fndecl.  Do not
292         issue warnings or call sorry when not inlinings an indirect edge.
293         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
294
295         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
296         bit more frandly to matching.
297         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
298         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
299         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
300         
301 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
302
303         PR 36907
304         * opth-gen.awk: Suppress function specific features when building
305         target libraries.
306         * optc-gen.awk: Ditto.
307
308 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
309
310         PR 35058
311         * diagnostic.c (pedwarn): Add opt parameter.
312         (pedwarn0): New.
313         * c-tree.h (pedwarn_init): Add opt parameter.
314         (pedwarn_c90): Likewise.
315         (pedwarn_c99): Likewise.
316         * c-errors.c (pedwarn_c99): Likewise.
317         (pedwarn_c90): Likewise.
318         * toplev.h (pedwarn): Update declaration.
319         (pedwarn0): Declare.
320         * c-lex.c: All calls to pedwarn changed.
321         * builtins.c: All calls to pedwarn changed.
322         * toplev.c: All calls to pedwarn changed.
323         * c-decl.c: All calls to pedwarn changed.
324         * c-typeck.c: All calls to pedwarn changed.
325         * c-common.c: All calls to pedwarn changed.
326         * c-parser.c: All calls to pedwarn changed.
327         
328 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
329             Karthik Kumar  <karthikkumar@gmail.com>
330
331         * attribs.c (file scope): Include c-common.h.
332         (decl_attributes): Add support for #pragma GCC optimize and
333         #pragma GCC option.
334
335         * targhooks.c (default_can_inline_p): New function that is the
336         default for the TARGET_CAN_INLINE_P target hook.
337
338         * targhooks.h (default_can_inline_p): Add declaration.
339
340         * tree.c (cl_optimization_node): New static tree for building
341         OPTIMIZATION_NODE tree.
342         (cl_target_option_node): New static tree for building
343         TARGET_OPTION_NODE tree.
344         (cl_option_hash_table): New hash table for hashing
345         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
346         (cl_option_hash_hash): New function to provide the hash value for
347         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
348         (cl_option_hash_eq): New function to provide an equality test for
349         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
350         (tree_code_size): Add support for OPTIMIZATION_NODE and
351         TARGET_OPTION_NODE trees.
352         (tree_code_structure): Add support for OPTIMIZATION_NODE and
353         TARGET_OPTION_NODE trees.
354         (build_optimization_node): Build a tree that has all of the
355         current optimization options.
356         (build_target_option_node): Build a tree that has the target
357         options that might be changed on a per function basis.
358
359         * tree.h (file scope): Include options.h.
360         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
361         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
362         (TREE_OPTIMIZATION): Ditto.
363         (TREE_TARGET_SPECIFIC): Ditto.
364         (struct tree_function_decl): Add fields for remembering the
365         current optimization options and target specific options.
366         (struct tree_optimization_option): New tree variant that remembers
367         the optimization options.
368         (struct tree_target_option): New tree variant that remembers the
369         target specific flags that might change for compiling a particular
370         function.
371         (union tree_node): Include tree_optimization_option and
372         tree_target_option fields.
373         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
374         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
375         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
376         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
377         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
378         optimization and target options.
379         (optimization_default_node): New macro to refer to global_trees
380         field.
381         (optimization_current_node): Ditto.
382         (optimization_cold_node): Ditto.
383         (optimization_hot_node): Ditto.
384         (target_option_default_node): Ditto.
385         (target_option_current_node): Ditto.
386         (current_option_pragma): Ditto.
387         (current_optimize_pragma): Ditto.
388
389         * target.h (struct gcc_target): Add valid_option_attribute_p,
390         target_option_save, target_option_restore, target_option_print,
391         target_option_pragma_parse, and can_inline_p hooks.
392
393         * toplev.h (parse_optimize_options): Add declaration.
394         (fast_math_flags_struct_set_p): Ditto.
395
396         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
397         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
398         optimize is used.
399
400         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
401         tree_can_inline_p hook to see if one function can inline another.
402         (cgraph_decide_inlining): Ditto.
403         (cgraph_decide_inlining_incrementally): Ditto.
404
405         * opts.c (decode_options): Add support for running multiple times
406         to allow functions with different target or optimization options
407         than was specified on the command line.
408         (fast_math_flags_struct_set_p): New function that is similar to
409         fast_math_flags_set_p, except it uses the values in the
410         cl_optimization structure instead of global variables.
411
412         * optc-gen.awk: Add support for TargetSave to allow a back end to
413         declare new fields that need to be saved when using function
414         specific options.  Include flags.h and target.h in the options.c
415         source.  Add support for Save to indicate which options can be set
416         for individual functions.  Generate cl_optimize_save,
417         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
418         cl_target_option_restore, cl_target_option_print functions to
419         allow functions to use different optimization or target options.
420
421         * opt-functions.awk (var_type_struct): Return the type used for
422         storing the field in a structure.
423
424         * opth-gen.awk: Add support for TargetSave to allow a back end to
425         declare new fields that need to be saved when using function
426         specific options.  Add support for Save to indicate which options
427         can be set for individual functions.  Only generate one extern for
428         Mask fields.  Generate cl_optimization and cl_target_option
429         structures to remember optimization and target options.
430
431         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
432         collecting new tree nodes.
433         (TS_TARGET_OPTION): Ditto.
434
435         * c-decl.c (merge_decls): Merge function specific target and
436         optimization options.
437
438         * function.c (invoke_set_current_function_hook): If the function
439         uses different optimization options, change the global variables
440         to reflect this.
441
442         * coretypes.h (struct cl_optimization): Add forward reference.
443         (struct cl_target_option): Ditto.
444
445         * c-pragma.c (option_stack): New static vector to remember the
446         current #pragma GCC option stack.
447         (handle_pragma_option): New function to support #pragma GCC option
448         to change target options.
449         (optimize_stack): New static vector to remember the current
450         #pragma GCC optimize stack.
451         (handle_pragma_optimize): New function to support #pragma GCC
452         optimize to change optimization options.
453         (init_pragma): Add support for #pragma GCC optimize and #pragma
454         GCC option.
455
456         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
457         optimization options.
458         (TARGET_OPTION_NODE): New tree code for remembering certain target
459         options.
460
461         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
462         TARGET_OPTION_NODE trees.
463
464         * common.opt (-O): Add Optimization flag.
465         (-Os): Ditto.
466         (-fmath-errno): Ditto.
467         (-falign-functions): Add UInteger flag to make sure flag gets full
468         int in cl_optimization structure.
469         (-falign-jumps): Ditto.
470         (-falign-labels): Ditto.
471         (-falign-loops): Ditto.
472         (-fsched-stalled-insns): Ditto.
473         (-fsched-stalled-insns-dep): Ditto.
474
475         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
476         definition.
477         (TARGET_OPTION_SAVE): Ditto.
478         (TARGET_OPTION_RESTORE): Ditto.
479         (TARGET_OPTION_PRINT): Ditto.
480         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
481         (TARGET_CAN_INLINE_P): Ditto.
482         (TARGET_INITIALIZER): Add new hooks.
483
484         * tree-inline.c (tree_can_inline_p): New function to determine
485         whether one function can inline another.  Check if the functions
486         use compatible optimization options, and also call the backend
487         can_inline_p hook.
488
489         * tree-inline.h (tree_can_inline_p): Add declaration.
490
491         * c-common.c (c_common_attribute): Add support for option and
492         optimize attributes.
493         (handle_option_attribute): Add support for the option attribute to
494         allow the user to specify different target options for compiling a
495         specific function.
496         (handle_optimize_attribute): Add support for the optimize
497         attribute to allow the user to specify different optimization
498         options for compiling a specific function.
499         (handle_hot_attribute): Turn on -O3 optimization for this one
500         function if it isn't the default optimization level.
501         (handle_cold_attribute): Turn on -Os optimization for this one
502         function if it insn't the default optimization.
503         (const_char_p): New const char * typedef.
504         (optimize_args): New static vector to remember the optimization
505         arguments.
506         (parse_optimize_options): New function to set up the optimization
507         arguments from either the optimize attribute or #pragma GCC
508         optimize.
509
510         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
511         (builtin_define_std): Ditto.
512
513         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
514         Add t-i386 Makefile fragment to add i386-c.o and i386.o
515         dependencies.
516         (x86_64-*-*): Ditto.
517
518         * Makefile.in (TREE_H): Add options.h.
519         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
520
521         * doc/extend.texi (option attribute): Document new attribute.
522         (optimize attribute): Ditto.
523         (hot attribute): Document hot attribute sets -O3.
524         (cold attribute): Document cold attribute sets -Os.
525         (#pragma GCC option): Document new pragma.
526         (#pragma GCC optimize): Ditto.
527
528         * doc/options.texi (TargetSave): Document TargetSave syntax.
529         (UInteger): Document UInteger must be used for certain flags.
530         (Save): Document Save option to create target specific options
531         that can be saved/restored on a function specific context.
532
533         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new
534         macro.
535         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
536
537         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new
538         hook.
539         (TARGET_OPTION_SAVE): Ditto.
540         (TARGET_OPTION_RESTORE): Ditto.
541         (TARGET_OPTION_PRINT): Ditto.
542         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
543         (TARGET_CAN_INLINE_P): Ditto.
544
545         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
546         -mfpmath=sse,387.
547         (-mfpmath=both): Ditto.
548
549 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
550             Karthik Kumar  <karthikkumar@gmail.com>
551
552         * config/i386/i386.h (TARGET_ABM): Move switch into
553         ix86_isa_flags.
554         (TARGET_POPCNT): Ditto.
555         (TARGET_SAHF): Ditto.
556         (TARGET_AES): Ditto.
557         (TARGET_PCLMUL): Ditto.
558         (TARGET_CMPXCHG16B): Ditto.
559         (TARGET_RECIP): Move switch into target_flags.
560         (TARGET_FUSED_MADD): Ditto.
561         (ix86_arch_features): Make an unsigned char type.
562         (ix86_tune_features): Ditto.
563         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
564         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
565         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
566
567         * config/i386/i386.opt (arch): New TargetSave field to define
568         fields that need to be saved for function specific option
569         support.
570         (tune): Ditto.
571         (fpmath): Ditto.
572         (branch_cost): Ditto.
573         (ix86_isa_flags_explicit): Ditto.
574         (tune_defaulted): Ditto.
575         (arch_specified): Ditto.
576         (-m128-long-double): Add Save flag to save option for target
577         specific option support.
578         (-m80387): Ditto.
579         (-maccumulate-outgoing-args): Ditto.
580         (-malign-double): Ditto.
581         (-malign-stringops): Ditto.
582         (-mfancy-math-387): Ditto.
583         (-mhard-float): Ditto.
584         (-mieee-fp): Ditto.
585         (-minline-all-stringops): Ditto.
586         (-minline-stringops-dynamically): Ditto.
587         (-mms-bitfields): Ditto.
588         (-mno-align-stringops): Ditto.
589         (-mno-fancy-math-387): Ditto.
590         (-mno-push-args): Ditto.
591         (-mno-red-zone): Ditto.
592         (-mpush-args): Ditto.
593         (-mred-zone): Ditto.
594         (-mrtd): Ditto.
595         (-msseregparm): Ditto.
596         (-mstack-arg-probe): Ditto.
597         (-m32): Ditto.
598         (-m64): Ditto.
599         (-mmmx): Ditto.
600         (-m3dnow): Ditto.
601         (-m3dnowa): Ditto.
602         (-msse): Ditto.
603         (-msse2): Ditto.
604         (-msse3): Ditto.
605         (-msse4.1): Ditto.
606         (-msse4.2): Ditto.
607         (-msse4): Ditto.
608         (-mno-sse4): Ditto.
609         (-msse4a): Ditto.
610         (-msse5): Ditto.
611         (-mrecip): Move flag into target_flags.
612         (-mcld): Ditto.
613         (-mno-fused-madd): Ditto.
614         (-mfused-madd): Ditto.
615         (-mabm): Move flag into ix86_isa_flags.
616         (-mcx16): Ditto.
617         (-mpopcnt): Ditto.
618         (-msahf): Ditto.
619         (-maes): Ditto.
620         (-mpclmul): Ditto.
621
622         * config/i386/i386-c.c: New file for #pragma support.
623         (ix86_target_macros_internal): New function to #define or #undef
624         target macros based when the user uses the #pragma GCC option to
625         change target options.
626         (ix86_pragma_option_parse): New function to add #pragma GCC option
627         support.
628         (ix86_target_macros): Move defining the target macros here from
629         TARGET_CPU_CPP_BUILTINS in i386.h.
630         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
631         defined, initialize any subtarget #pragmas.
632
633         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
634         REGISTER_TARGET_PRAGMAS.
635
636         * config/i386/t-i386: New file for x86 dependencies.
637         (i386.o): Make dependencies mirror the include files used.
638         (i386-c.o): New file, add dependencies.
639
640         * config/i386/i386-protos.h (override_options): Add bool
641         argument.
642         (ix86_valid_option_attribute_tree): Add declaration.
643         (ix86_target_macros): Ditto.
644         (ix86_register_macros): Ditto.
645
646         * config/i386/i386.c (ix86_tune_features): Move initialization of
647         the target masks to initial_ix86_tune_features to allow functions
648         to have different target options.  Make type unsigned char,
649         instead of unsigned int.
650         (initial_ix86_tune_features): New static vector to hold processor
651         masks for the tune variables.
652         (ix86_arch_features): Move initialization of the target masks to
653         initial_ix86_arch_features to allow functions to have different
654         target options.  Make type unsigned char, instead of unsigned
655         int.
656         (initial_ix86_arch_features): New static vector to hold processor
657         masks for the arch variables.
658         (enum ix86_function_specific_strings): New enum to describe the
659         string options used for attribute((option(...))).
660         (ix86_target_string): New function to return a string that
661         describes the target options.
662         (ix86_debug_options): New function to print the current options in
663         the debugger.
664         (ix86_function_specific_save): New function hook to save the
665         function specific global variables in the cl_target_option
666         structure.
667         (ix86_function_specific_restore): New function hook to restore the
668         function specific variables from the cl_target_option structure to
669         the global variables.
670         (ix86_function_specific_print): New function hook to print the
671         target specific options in the cl_target_option structure.
672         (ix86_valid_option_attribute_p): New function hook to validate
673         attribute((option(...))) arguments.
674         (ix86_valid_option_attribute_tree): New function that is common
675         code between attribute((option(...))) and #pragma GCC option
676         support that parses the options and returns a tree holding the
677         options.
678         (ix86_valid_option_attribute_inner_p): New helper function for
679         ix86_valid_option_attribute_tree.
680         (ix86_can_inline_p): New function hook to decide if one function
681         can inline another on a target specific basis.
682         (ix86_set_current_function); New function hook to switch target
683         options if the user used attribute((option(...))) or #pragma GCC
684         option.
685         (ix86_tune_defaulted): Move to static file scope from
686         override_options.
687         (ix86_arch_specified): Ditto.
688         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
689         ix86_isa_flags.
690         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
691         (OPTION_MASK_ISA_ABM_SET): Ditto.
692         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
693         (OPTION_MASK_ISA_CX16_SET): Ditto.
694         (OPTION_MASK_ISA_SAHF_SET): Ditto.
695         (OPTION_MASK_ISA_AES_UNSET): Ditto.
696         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
697         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
698         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
699         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
700         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
701         (struct ptt): Move to static file scope from override_options.
702         (processor_target_table): Ditto.
703         (cpu_names): Ditto.
704         (ix86_handle_option): Add support for options that are now isa
705         options.
706         (override_options): Add support for declaring functions that
707         support different target options than were specified on the
708         command line.  Move struct ptt, processor_target_table, cpu_names,
709         ix86_tune_defaulted, ix86_arch_specified to static file scope.
710         Add bool argument.  Fix up error messages so the appropriate error
711         is given for either command line or attribute.
712         (ix86_previous_fndecl): New static to remember previous function
713         declaration to see if we need to change target options.
714         (ix86_builtins_isa): New array to record the ISA of each builtin
715         function.
716         (def_builtin): Always create the builtin function, even if the
717         current ISA doesn't support it.
718         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
719         tests for those builtins.
720         (ix86_init_builtins): Remove TARGET_MMX test for calling
721         ix86_init_mmx_sse_builtins.
722         (ix86_expand_builtin): If the current ISA doesn't support a given
723         builtin, signal an error.
724         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
725         (TARGET_SET_CURRENT_FUNCTION): Ditto.
726         (TARGET_OPTION_SAVE): Ditto.
727         (TARGET_OPTION_RESTORE): Ditto.
728         (TARGET_OPTION_PRINT): Ditto.
729         (TARGET_CAN_INLINE_P): Ditto.
730
731 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
732
733        * c-typeck.c (build_external_ref): Don't call assemble_external.
734        * final.c (output_operand): Call assemble_external.
735
736 2008-07-21  DJ Delorie  <dj@redhat.com>
737
738         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
739         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
740
741 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
742
743         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
744         original insn and splitter contents into ...
745         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
746         flag_unsafe_math_optimizations.  Add dummy scratch register.
747         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
748         !flag_unsafe_math_optimizations.  Returns number with next
749         highest magnitude if this is still less or equal to the true
750         quotient in magnitude.
751
752 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
753
754         * Makefile.in: Replace toplev.h with TOPLEV_H.
755         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
756         * c-lex.c (fe_file_change): Don't set in_system_header.
757         * c-parser.c (c_token): Remove in_system_header.
758         (c_lex_one_token): Don't set in_system_header.
759         (c_parser_set_source_position_from_token): Don't set in_system_header.
760         * diagnostic.c (diagnostic_report_diagnostic): Use location from
761         diagnostic_info.
762         (warning_at): New.
763         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
764         * flags.h (in_system_header): Remove.
765         * function.c (saved_in_system_header): Remove.
766         (push_cfun): Don't set in_system_header.
767         (pop_cfun): Don't set in_system_header.
768         (push_struct_function): Don't set in_system_header.
769         * input.h (expanded_location): Add sysp.
770         (in_system_header_at): New.
771         (in_system_header): New.
772         * toplev.c (in_system_header): Remove.
773         * toplev.h: Include input.h
774         (warning_at): New.
775         * tree-cfg.c (execute_warn_function_return): Call warning_at.
776         * tree-ssa.c (warn_uninit): Call warning_at.
777         (warn_uninitialized_var): Update calls to warn_uninit.
778         (warn_uninitialized_phi): Update calls to warn_uninit.
779         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
780         (expand_location): Initialize xloc.sysp.
781         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
782         (tree_decl_with_vis): Remove in_system_header_flag.
783
784 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
785
786         PR target/36822
787         * recog.c (asm_operand_ok): Change the order of the extra
788         memory constraint checks.
789
790 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
791
792         PR tree-opt/36879
793         * tree-switch-conversion.c (build_one_array): Call
794         varpool_mark_needed_node and varpool_finalize_decl 
795         instead of assemble_variable.
796
797 2008-07-19  Jan Hubicka  <jh@suse.cz>
798
799         * cgraph.c (cgraph_add_new_function): Do early local passes.
800         * tree-nrv.c (gate_pass_return_slot): New gate.
801         (pass_nrv): Add the gate.
802         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
803         functions.
804         (coalesce_ssa_name): Coalesce SSA names.
805         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
806         not optimizing so unused user vars remains visible.
807         * common.opt (flag_tree_ter): Always enable by default.
808         * tree-ssa-ter.c: Include flags.h
809         (is_replaceable_p): Check that locations match; when aliasing is missing
810         be conservative about loads.
811         * tree-optimize.c (gate_init_datastructures): Remove.
812         (pass_init_datastructures): New.
813         * passes.c: Reorder passes so we always go into SSA.
814
815 2008-07-19  Jan Hubicka  <jh@suse.cz>
816
817         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
818         * doc/invoke.texi (--combine): Likewise.
819         (-finline-functions-called-once): Update levels when enabled.
820         (-funit-at-a-time): Document new behaviour.
821         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
822         -fno-section-anchors when disabled explicitly.
823         (inline params): They are not ignored now.
824         (precompiled headers): Remove unit-at-a-time as being incompatible.
825         * opts.c (decode_options): Handle unit-at-a-time as alias;
826         imply -fno-section-anchors when toplevel reorder is disabled
827         explicitly.
828         * common.opt (ftoplevel-reorder): Set default value to 2.
829         (funit-at-a-time): Set default value to 1.
830         * config/rs6000/rs6000.c (optimization_options): Set section anchors
831         to 2.
832
833 2008-07-19  Jan Hubicka  <jh@suse.cz>
834
835         * builtins.c (expand_builtin_int_roundingfn,
836         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
837         it is not useful.
838
839 2008-07-19  Richard Guenther  <rguenther@suse.de>
840
841         PR bootstrap/36864
842         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
843         * tree-ssa-sccvn.c (get_constant_value_id): New function.
844         * tree-ssa-pre.c (get_expr_value_id): For newly created
845         constant value-ids make sure to add the expression to its
846         expression-set.
847
848 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
849
850         PR middle-end/36877
851         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
852         return value of the builtin is ignored.
853
854 2008-07-19  Olivier Hainque  <hainque@adacore.com>
855
856         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
857         bits, a C conformant malloc implementation has to provide.
858         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
859
860 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
861
862         PR target/36780
863         PR target/36827
864         * reload.c (find_reloads_subreg_address): Only reload address if
865         reloaded == 0, not for reloaded != 1.
866
867         Revert:
868         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
869         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
870         (m32c_legitimate_address_p): Handle "++rii" addresses created by
871         m32c_legitimize_reload_address.
872
873         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
874         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
875         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
876
877 2008-07-19  Olivier Hainque  <hainque@adacore.com>
878
879         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
880         argument, saying whether nested array are to be collapsed
881         into a single array type DIE with multiple subscripts.
882         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
883         issues, centralize the nested array types collapsing control and
884         disable the transformation for Ada.
885         
886 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
887
888         PR target/36786
889         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
890         x86_64_shift_adj.
891         (x86_64_shift_adj_2): New expander.
892         (x86_64_shift_adj_3): Ditto.
893         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
894         to split TImode operands.
895         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
896         (ix86_split_lshr): Ditto.
897
898 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
899
900         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
901         and __CHAR32_TYPE__.
902         * c-typeck.c (digest_init): Support char16_t and char32_t.
903         (set_nonincremental_init_from_string): Idem.
904
905 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
906
907         PR middle-end/36859
908         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
909         PREFERRED_STACK_BOUNDARY.
910         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
911
912 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
913
914         PR middle-end/36858
915         * function.c (locate_and_pad_parm): Cap boundary earlier.
916
917 2008-07-17  Julian Brown  <julian@codesourcery.com>
918
919         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
920         no-op for targets which don't use DLLs.
921
922 2008-07-17  Martin Jambor  <mjambor@suse.cz>
923
924         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
925         that nodes are relevant by examining the node->analyzed flag.
926         (ipcp_init_stage): Check which nodes are relevant, assert that the
927         relevant ones are also required.
928         (ipcp_propagate_stage): Check on the side arrays are properly
929         allocated.
930         (ipcp_print_all_jump_functions): Make sure not to touch any node
931         that is not analyzed or an edge that does not have a corresponding
932         entry in the on-the-side vectors.
933         (ipcp_function_scale_print): Likewise.
934         (ipcp_update_callgraph): Check that the node is relevant.
935         (ipcp_insert_stage): Check that the node is relevant.  Check there is
936         an info for every node and edge.
937         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
938         (ipa_print_all_tree_maps): Likewise and a new variable info.
939         (ipa_print_all_params_modified): Likewise.
940         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
941
942 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
943
944         PR target/25343
945         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
946
947 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
948
949         PR rtl-optimization/36753
950         * fwprop.c (use_killed_between): Don't shortcut
951         single-definition global registers.
952
953 2008-07-16  Jan Hubicka  <jh@suse.cz>
954
955         * cgraph.h (varpool_empty_needed_queue): Declare.
956         * cgraphunit.c (output_in_order): Mark all variables as needed;
957         empty the queue.
958         * varpool.c (varpool_assemble_node): Update debug queue.
959         (varpool_assemble_pending_decls): Don't do it here.
960         (varpool_empty_needed_queue):  New function.
961
962 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
963
964         * recog.c (peephole2_optimize): Fix formatting.
965
966 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
967
968         * c-pch.c (get_ident): Avoid C++ keywords.
969         * combine-stack-adj.c (single_set_for_csa): Likewise.
970         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
971         output_asm_insn): Likewise.
972         * reload.c (push_secondary_reload, find_reusable_reload,
973         push_reload, combine_reloads, find_reloads,
974         debug_reload_to_stream): Likewise.
975         * reload.h (struct reload): Likewise.
976         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
977         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
978         emit_output_reload_insns): Likewise.
979         * targhooks.c (default_secondary_reload): Likewise.
980         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
981
982 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
983
984         * recog.c (validate_change_1, validate_change,
985         validate_unshare_change, validate_replace_rtx_1, struct
986         funny_match, constrain_operands, peephole2_optimize): Avoid C++
987         keywords.
988         * reload.c (push_secondary_reload, secondary_reload_class,
989         scratch_reload_class, find_valid_class, find_reusable_reload,
990         push_reload, find_dummy_reload, find_reloads_address_1,
991         find_reloads_address_part, find_equiv_reg): Likewise.
992         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
993         choose_reload_regs): Likewise.
994         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
995         Likewise.
996         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
997         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
998         * sched-rgn.c (concat_INSN_LIST): Likewise.
999         * stor-layout.c (mode_for_size, mode_for_size_tree,
1000         smallest_mode_for_size): Likewise.
1001
1002 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1003
1004         * cfg.c (dump_reg_info): Avoid C++ keywords.
1005         * dwarf2asm.c (dw2_force_const_mem,
1006         dw2_asm_output_encoded_addr_rtx): Likewise.
1007         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
1008         * expmed.c (expand_shift): Likewise.
1009         * global.c (find_reg): Likewise.
1010         * graph.c (draw_edge): Likewise.
1011         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
1012         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
1013         widen_clz, widen_bswap, expand_parity, expand_unop,
1014         emit_cmp_and_jump_insn_1): Likewise.
1015         * postreload.c (reload_cse_simplify_operands): Likewise.
1016         * ra.h (add_neighbor): Likewise.
1017         * reg-stack.c (remove_regno_note, change_stack): Likewise.
1018         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
1019         record_reg_classes, copy_cost, record_address_regs,
1020         invalid_mode_change_p): Likewise.
1021         * regrename.c (regrename_optimize, scan_rtx_reg,
1022         dump_def_use_chain, find_oldest_value_reg,
1023         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
1024
1025 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1026
1027         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
1028         MASK_POWERPC64 for power4 in previous commit.
1029
1030 2008-07-16  Olivier Hainque  <hainque@adacore.com>
1031
1032         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
1033         instead of bare conversion to cast const-ness away.
1034
1035 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
1036
1037         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
1038         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
1039         * config/xtensa/xtensa.c (xtensa_function_value): New function.
1040         (TARGET_FUNCTION_VALUE): Define.
1041
1042 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1043
1044         * config/rs6000/rs6000.c (processor_target_table): Add
1045         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
1046
1047 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
1048
1049         PR target/36827
1050         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
1051         (m32c_legitimate_address_p): Handle "++rii" addresses created by
1052         m32c_legitimize_reload_address.
1053
1054 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
1055
1056        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
1057        DECL_IN_SYSTEM_HEADER in sync.
1058
1059 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
1060
1061         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
1062         * tree-ssa-pre.c (pre_expr_eq): Ditto
1063         (get_constant_for_value_id): Take a type as an argument.
1064         (fully_constant_expression): Pass in type.
1065         (find_or_generate_expression): Short circuit constant case.
1066         (create_expression_by_pieces): Remove special casing of
1067         pointer_plus.
1068         (do_regular_insertion): Short circuit constant case.
1069         (do_partial_partial_insertion): Ditto.
1070
1071 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1072
1073         PR target/36782
1074         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
1075
1076 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
1077         
1078         * config/xtensa/libgcc-xtensa.ver: New file.
1079         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
1080         
1081 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1082
1083         * df-problems.c (df_set_note): Avoid C++ keywords.
1084         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
1085         * dse.c (record_store, remove_useless_values): Likewise.
1086         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
1087         gen_reg_rtx_offset, operand_subword, change_address_1,
1088         change_address, adjust_address_1, offset_address,
1089         widen_memory_access, emit_copy_of_insn_after): Likewise.
1090         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
1091         * fwprop.c (should_replace_address, propagate_rtx_1,
1092         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
1093         Likewise.
1094         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
1095         gcse_emit_move_after, update_ld_motion_stores): Likewise.
1096         * lcm.c (compute_insert_delete, pre_edge_lcm,
1097         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
1098         * lower-subreg.c (resolve_reg_notes): Likewise.
1099         * mode-switching.c (optimize_mode_switching): Likewise.
1100
1101 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1102
1103         * bt-load.c (add_btr_def, migrate_btr_def,
1104         branch_target_load_optimize): Avoid C++ keywords.
1105         * caller-save.c (insert_restore, insert_save, insert_one_insn):
1106         Likewise.
1107         * combine.c (subst, simplify_set, make_extraction,
1108         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
1109         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
1110         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
1111
1112 2008-07-15  Richard Guenther  <rguenther@suse.de>
1113
1114         PR middle-end/36369
1115         * c-common.c (strict_aliasing_warning): Do not warn for
1116         TYPE_REF_CAN_ALIAS_ALL pointers.
1117         (c_common_get_alias_set): may_alias types are not special.
1118         * tree.c (build_pointer_type_for_mode): Look up the may_alias
1119         attribute and set can_ref_all accordingly.
1120         (build_reference_type_for_mode): Likewise.
1121         * doc/extend.texi (may_alias): Clarify.
1122
1123 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1124
1125         PR target/36780
1126         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
1127         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
1128
1129 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1130
1131         PR target/31568
1132         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
1133         gcc_assert, instead call output_operand_lossage.
1134
1135 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
1136
1137         * builtins.c (std_canonical_va_list): Treat structure based
1138         va_list types.
1139
1140 2008-07-15  Ben Elliston  <bje@au.ibm.com>
1141
1142         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
1143
1144 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
1145
1146         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
1147         is set.
1148
1149 2008-07-14  Jan Hubicka  <jh@suse.cz>
1150
1151         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
1152         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
1153         fix predicates and constraints.
1154         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
1155         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
1156
1157 2008-07-14  Doug Kwan  <dougkwan@google.com>
1158
1159         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
1160         additional option file arm/eabi.opt.
1161         * config/arm/eabi.h (File): New configuration file for EABI targets.
1162         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
1163         SUBSUBTARGET_EXTRA_SPECS.
1164         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
1165         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
1166         from STARTFILE_SPEC so that it can be referenced in an override.
1167         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
1168         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
1169         can be referenced in an override.
1170         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
1171         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
1172         so that it can be referenced in an override.
1173         (LINK_SPEC): Use BPABI_LINK_SPEC.
1174         * config/arm/eabi.opt (File): New.
1175
1176 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1177
1178         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
1179         (FIXED_VALUE_H): New variable.
1180         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
1181         input.h, fixed-value.h.
1182         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
1183         (BASIC_BLOCK_H): Use $(BITMAP_H).
1184         (FUNCTION_H): Add varray.h.
1185         (IPA_REFERENCE_H): Use $(BITMAP_H).
1186         (CGRAPH_H): Add $(BASIC_BLOCK_H).
1187         (DF_H): Use $(BITMAP_H).
1188         (GGC_H): Add statistics.h.
1189         (INSN_ADDR_H): New.
1190         (INSN_ATTR_H): Use it.
1191         (SYSTEM_H): Add safe-ctype.h, filenames.h.
1192         (INPUT_H): New.
1193         (SYMTAB_H): Add $(OBSTACK_H).
1194         (CPP_INTERNAL_H): New.
1195         (TREE_DUMP_H): Add tree-pass.h.
1196         (TREE_FLOW_H): Use $(BITMAP_H)
1197         (PRETTY_PRINT_H): Use $(INPUT_H).
1198         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
1199         (GSTAB_H): New.
1200         (BITMAP_H): New.
1201         (many object files): Fix lots of header dependencies throughout.
1202
1203 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1204
1205         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
1206         New macros.
1207         (s-gtyp-input): Use them to write tmp-gi.list.
1208         (echo_to_gi.list): Remove.
1209
1210 2008-07-14  Richard Guenther  <rguenther@suse.de>
1211
1212         * tree-ssa-sccvn.c (pre_info): Remove.
1213         (switch_to_PRE_table): Likewise.
1214         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
1215         (set_hashtable_value_ids): Do not create value-ids for the
1216         optimistic tables.
1217         (run_scc_vn): Remove double test.  Remove bogus special-case
1218         in value-number printing.
1219         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
1220         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
1221         SSA_NAME_VALUE.
1222         * tree-flow-inline.h (get_value_handle): Remove.
1223         * tree-flow.h (get_value_handle): Remove.
1224
1225 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1226
1227         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
1228         in which we generate arithmetics is not a subrange.
1229
1230 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1231
1232         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
1233
1234 2008-07-14  Richard Guenther  <rguenther@suse.de>
1235
1236         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
1237
1238 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1239
1240         PR target/36745
1241         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
1242         reload for symbol refs moved to r0 with -fPIC.
1243         (legitimize_pic_address): Use the target register as temporary
1244         reg if possible.
1245         (emit_symbolic_move): Adjust comment.
1246         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
1247         New expanders.
1248
1249 2008-07-14  Ben Elliston  <bje@au.ibm.com>
1250
1251         * c-common.h (C_CPP_HASHNODE): New macro.
1252         * coretypes.h (struct cpp_token): Forward declare.
1253         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1254         the context-sensitive keyword method.
1255         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
1256         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
1257         expand_bool_pixel): New.
1258         (altivec_categorize_keyword): New function.
1259         (init_vector_keywords): New function.
1260         (rs6000_macro_to_expand): Likewise.
1261         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
1262         compiling an ISO C dialect.
1263
1264 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
1265
1266         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
1267         (create_expression_by_pieces): Fix typo.
1268         (do_regular_insertion): Use debug counter here too.
1269
1270 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
1271
1272         PR target/35492.
1273         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
1274         CONST_OK_FOR_LETTER_P.  All port-local users changed.
1275         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
1276         implement Kp matching power-of-two.
1277         (CONSTRAINT_LEN): Define to match.
1278         * config/cris/cris.md: Replace all use of constraint K with Kc.
1279         ("*btst*): Use Kp for operand 0 of last alternative.
1280
1281 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1282
1283         PR testsuite/36440
1284         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
1285         and quad formats.
1286
1287 2008-07-13  Jan Hubicka  <jh@suse.cz>
1288
1289         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
1290         to be mangled too.
1291
1292 2008-07-13  Richard Guenther  <rguenther@suse.de>
1293
1294         PR middle-end/36811
1295         * langhooks.c (lhd_print_error_function): Deal with recursive
1296         BLOCK trees.
1297
1298 2008-07-12  Jan Hubicka  <jh@suse.cz>
1299
1300         * cgraph.c (assembler_name_hash): New static var.
1301         (hash_node_by_assembler_name, eq_assembler_name): New.
1302         (cgraph_node_for_asm): Use hashtable.
1303         (cgraph_remove_node): Maintain hashtable.
1304         (change_decl_assembler_name): Sanity check that names are not changing
1305         after aliasing was processed.
1306         * cgraph.h (varpoon_node): Add next GGC marker.
1307         * tree.c (decl_assembler_name_equal): Constify.
1308         (decl_assembler_name_hash): New.
1309         * tree.h (decl_assembler_name_equal): Constify.
1310         (decl_assembler_name_hash): Update.
1311
1312 2008-07-12  David Daney  <ddaney@avtrex.com>
1313
1314         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1315         sb1 and r5000 cpus.
1316
1317 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1318
1319         * doc/md.texi: Document the MIPS "v" constraint.
1320         * config/mips/mips.h (reg_class): Revert last change.
1321         (REG_CLASS_NAMES): Likewise.
1322         (REG_CLASS_CONTENTS): Likewise.
1323         * config/mips/mips.c (mips_regno_to_class): Likewise.
1324         * config/mips/constraints.md (v): Likewise, but add documentation.
1325         Add a comment to say that this constraint should not be used in
1326         gcc code.
1327
1328 2008-07-11  DJ Delorie  <dj@redhat.com>
1329
1330         * config/h8300/h8300.md (length): Fix branch offset limit.
1331
1332 2008-07-11  Anatoly Sokolov  <aesok@post.ru>    
1333
1334         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
1335         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
1336         (avr_hard_regno_scratch_ok): New function.
1337         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
1338         * config/avr/avr.md (all peepholes that request a scratch register):
1339         Remove avr_peep2_scratch_safe use.
1340
1341 2008-07-11  Tom Tromey  <tromey@redhat.com>
1342             Ian Lance Taylor  <iant@google.com>
1343
1344         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
1345         (struct c_common_resword): Define.
1346         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
1347         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
1348         (c_common_reswords, num_c_common_reswords): Declare.
1349         * c-common.c (c_common_reswords): New global const array.
1350         (num_c_common_reswords): New const int.
1351         * c-parser.c (struct resword, reswords): Don't define.
1352         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
1353         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
1354         than reswords.  If warning about C++ keywords, give them a special
1355         RID code.
1356         (c_lex_one_token): Warn about C++ keywords.  Call
1357         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
1358         (c_parser_external_declaration): Look for RID_xxx rather than
1359         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
1360         (c_parser_statement_after_labels): Likewise.
1361         (c_parser_objc_class_instance_variables): Likewise.
1362         (c_parser_objc_class_declaration): Likewise.
1363         (c_parser_objc_try_catch_statement): Likewise.
1364         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
1365         (declspecs_add_type): Likewise.
1366
1367 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
1368
1369         * ggc-page.c (alloc_page):
1370         Substituting xmalloc, xcalloc with
1371         XNEWVEC and XCNEWVAR macros which add the
1372         needed casts.
1373
1374 2008-07-11  Richard Guenther  <rguenther@suse.de>
1375
1376         PR tree-optimization/36765
1377         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1378         aliases from HEAP vars to SMTs.
1379
1380 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1381
1382         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
1383         * configure.ac (loose_warn): Move -Wc++-compat from here...
1384         (strict_warn): ...to here.
1385         * configure: Regenerate.
1386
1387 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
1388
1389         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
1390         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
1391         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
1392         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
1393         excluding more specific h8300-*-* and sh-*-* targets.
1394
1395 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
1396
1397         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
1398         (eliminate): Ditto.
1399         (execute_pre): Call loop_optimizer_finalize in early exit.
1400
1401 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
1402
1403         PR middle-end/36790
1404         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
1405         uids in the bitmap, not just VAR_DECL uids.
1406
1407         PR rtl-optimization/36419
1408         * combine-stack-adj.c (adjust_frame_related_expr): New function.
1409         (combine_stack_adjustments_for_block): Call it if needed.  Delete
1410         correct insn.
1411         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
1412         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
1413         prologue sp adjustment.
1414
1415 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
1416
1417         PR other/28322
1418         * opts.c (print_ignored_options): Report postponed diagnostics for
1419         unknown -Wno-* options as warnings, not errors.
1420         (postpone_unknown_option_error): Renamed to...
1421         (postpone_unknown_option_warning): ... this.
1422
1423 2008-07-09  Doug Kwan  <dougkwan@google.com>
1424
1425         Revert:
1426         2008-07-08  Doug Kwan  <dougkwan@google.com>
1427
1428         * config/arm/arm.opt (mandroid): New option.
1429         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1430         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1431         (CC1_SPEC): Same.
1432         (CC1PLUS_SPEC): Same.
1433         (LIB_SPEC): Same.
1434         (STARTFILE_SPEC): Same.
1435         (ENDFILE_SPEC): Same.
1436         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1437         used.
1438
1439 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
1440
1441         PR target/35802
1442         * config/mips/mips.h (reg_class): Remove V1_REG.
1443         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1444         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
1445         instead of V1_REGS.
1446         (mips_get_tp): New function.
1447         (mips_legitimize_tls_address): Use it.
1448         * config/mips/constraints.md (v): Delete.
1449         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
1450         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
1451         After reload, split into a move and ...
1452         (*tls_get_tp_<mode>_split): ...this new instruction.
1453
1454 2008-07-09  David Daney  <ddaney@avtrex.com>
1455
1456         * config/mips/driver-native.c: Include coretypes.h and tm.h.
1457
1458 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
1459
1460         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
1461         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
1462         Add c argument.
1463         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
1464         htab_delete should be called.  Don't free c.
1465         (lookup_tmp_var): Create temp_htab lazily.
1466         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
1467         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
1468         callers.
1469         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
1470         lower_omp_ordered, lower_omp_critical, lower_omp_for,
1471         create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
1472         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
1473         * tree-sra.c (generate_element_init): Likewise.
1474         * tree-mudflap.c (execute_mudflap_function_ops,
1475         execute_mudflap_function_decls): Likewise.
1476         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
1477         * tree-gimple.h (struct gimplify_ctx): New type.
1478         (push_gimplify_context): Adjust prototype.
1479
1480 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
1481
1482         * tree-ssa-pre.c (phi_translate_1): Update placement of
1483         add_to_value calls.
1484
1485 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
1486
1487         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
1488         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
1489         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
1490         * targhooks.c (default_hard_regno_scratch_ok): New function.
1491         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
1492         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
1493         * recog.c:  Include "target.h".
1494         (peep2_find_free_register): Add check for global regs. Add target
1495         specific check.
1496         * Makefile.in (recog.o): Depend on target.h.
1497
1498 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1499
1500         * config/sh/sh.c (sh_canonical_va_list_type): New.
1501         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
1502
1503 2008-07-09  Raksit Ashok <raksit@google.com>
1504
1505         * doc/invoke.texi (Option Summary): Mention new option
1506         -Wdisallowed-function-list=...
1507         (Warning Options): Document -Wdisallowed-function-list=...
1508         * common.opt (Wdisallowed-function-list=): New flag.
1509         * flags.h (warn_disallowed_functions): External definition of new
1510         boolean warning flag.
1511         (warn_if_disallowed_function_p): Declare new function.
1512         * opts.c (warning_disallowed_functions): New static variable.
1513         (warn_disallowed_functions): New boolean warning flag.
1514         (warn_if_disallowed_function_p): New function.
1515         (add_comma_separated_to_vector): Rename
1516         add_instrument_functions_exclude_list to this.
1517         (common_handle_option): Handle new option. Rename calls to
1518         add_instrument_functions_exclude_list into calls to
1519         add_comma_separated_to_vector.
1520         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
1521         based on flag warn_disallowed_functions.
1522
1523 2008-07-09  Christian Bruel  <christian.bruel@st.com>
1524
1525         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
1526          instead of get_attr_length.
1527
1528 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1529
1530         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
1531         keywords.
1532         * genemit.c (gen_insn): Likewise.
1533         * gengtype.c (note_def_vec): Likewise.
1534         * gengtype.h (note_def_vec): Likewise.
1535         * genoutput.c (struct data, output_insn_data, process_template,
1536         gen_expand, gen_split, note_constraint): Likewise.
1537         * genrecog.c (new_decision, add_to_sequence, factor_tests,
1538         make_insn_sequence): Likewise.
1539         * gensupport.c (record_insn_name): Likewise.
1540
1541 2008-07-08  Doug Kwan  <dougkwan@google.com>
1542
1543         * config/arm/arm.opt (mandroid): New option.
1544         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1545         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1546         (CC1_SPEC): Same.
1547         (CC1PLUS_SPEC): Same.
1548         (LIB_SPEC): Same.
1549         (STARTFILE_SPEC): Same.
1550         (ENDFILE_SPEC): Same.
1551         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1552         used.
1553
1554 2008-07-08  Raksit Ashok  <raksit@google.com>
1555
1556         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
1557         (set_storage_via_setmem): Fix expected_align parameter.
1558         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
1559         missing from the list.
1560         * doc/md.texi (movmem): Explicitly state that expected alignment is
1561         to be expressed in bytes.
1562         (setmem): Explicitly state that expected alignment is to be expressed
1563         in bytes.
1564
1565 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
1566
1567         * reload.c (find_reloads_subreg_address): Do not require validity
1568         of address in original mode before reloading address.
1569
1570 2008-07-07  Tianwei Sheng  <tianweis@google.com>
1571
1572         * df-core.c (df_remove_problem): Adjust the access to avoid out of
1573         bounds array access.
1574
1575 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
1576
1577         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
1578
1579 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
1580         
1581         Fix PR tree-optimization/23455
1582         Fix PR tree-optimization/35286
1583         Fix PR tree-optimization/35287
1584         * Makefile.in (OBJS-common): Remove tree-vn.o.
1585         (tree-vn.o): Remove.
1586         * dbgcnt.def: Add treepre_insert debug counter.
1587         * gcc/tree-flow.h (add_to_value): Updated for other changes.
1588         (debug_value_expressions): Ditto.
1589         (print_value_expressions): Ditto.
1590         * tree-pretty-print.c (dump_generic_node): Updated for
1591         VALUE_HANDLE removal.
1592         * tree-ssa-dom.c (record_equality): Ditto.
1593         (cprop_operand): Ditto.
1594         (lookup_avail_expr): Ditto.
1595         * tree-ssa-threadedge.c
1596         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
1597         (simplify_control_stmt_condition): Ditto.
1598         * tree.c (tree_code_size): Ditto.
1599         (tree_node_structure): Ditto.
1600         (iterative_hash_expr): Ditto.
1601         * tree.def: Ditto.
1602         * tree.h (VALUE_HANDLE_ID): Ditto.
1603         (VALUE_HANDLE_EXPR_SET): Ditto.
1604         (struct tree_value_handle): Ditto.
1605         (union tree_node): Ditto.
1606         * treestruct.def: Ditto.
1607         * tree-vn.c: Removed.
1608         * tree-ssa-pre.c: Rewritten entirely.
1609         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
1610         (constant_value_ids): Ditto.
1611         (vn_nary_op_t): Moved to header.
1612         (vn_phi_t): Ditto.
1613         (vn_reference_op_t): Ditto
1614         (vn_reference_t): Ditto.
1615         (next_value_id): New variable.
1616         (VN_INFO): Add an assert.
1617         (vn_constant_eq): New function.
1618         (vn_constant_hash): Ditto.
1619         (get_or_alloc_constant_value_id): Ditto.
1620         (value_id_constant_p): Ditto.
1621         (vn_reference_compute_hash): De-staticify.
1622         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
1623         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
1624         (valueize_refs): Update opcode if it changes from ssa name to constant.
1625         (vn_reference_lookup_1): Add new argument.
1626         (vn_reference_lookup):  Ditto.
1627         (vn_reference_lookup_pieces): New function.
1628         (vn_reference_insert): Add return type. Modify to deal with value ids.
1629         (vn_reference_insert_pieces):  New function.
1630         (vn_nary_op_compute_hash): De-staticify.
1631         (vn_nary_op_eq): Ditto.
1632         (vn_nary_op_lookup_pieces): New function.
1633         (vn_nary_op_lookup): Add new argument.  
1634         (vn_nary_op_insert_pieces): New function.
1635         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
1636         (vn_phi_insert): Ditto.
1637         (visit_unary_op): Update for callee changes.
1638         (visit_binary_op): Ditto.
1639         (visit_reference_op_load): Ditto.
1640         (visit_reference_op_store): Ditto.
1641         (init_scc_vn): Init next_value_id, constant_to_value_id and
1642         constant_value_ids. 
1643         (free_scc_vn): Free them.
1644         (set_hashtable_value_ids): New function.
1645         (run_scc_vn): Use it.
1646         (get_max_value_id): New function.
1647         (get_next_value_id): Ditto.
1648         (expressions_equal_p): Moved from tree-vn.c
1649         (sort_vuses): Ditto.
1650         (sort_vuses_heap): Ditto.
1651         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
1652         above).
1653         * tree.c (iterative_hash_hashval_t): Made non-static
1654         * tree.h (iterative_hash_hashval_t): Declare it.
1655         
1656 2008-07-08  Martin Jambor  <mjambor@suse.cz>
1657
1658         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
1659         instead of ipa_create_node_params.
1660         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
1661         ipa_check_create_edge_args, free them with
1662         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
1663
1664         * ipa-prop.c: Include flags.h and tree-inline.h.
1665         (ipa_node_params_vector): New variable.
1666         (ipa_edge_args_vector): New variable.
1667         (edge_removal_hook_holder): New variable.
1668         (node_removal_hook_holder): New variable.
1669         (edge_duplication_hook_holder): New variable.
1670         (node_duplication_hook_holder): New variable.
1671         (ipa_detect_param_modifications): Check for presence of modified flags.
1672         (ipa_compute_jump_functions): Check for presence of jump functions.
1673         (ipa_free_edge_args_substructures): New function.
1674         (ipa_create_node_params): Removed.
1675         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
1676         (ipa_free_node_params_substructures): New function.
1677         (ipa_free_all_node_params): Changed to deallocate the on-the-side
1678         vector.
1679         (ipa_edge_removal_hook): New function.
1680         (ipa_node_removal_hook): New function.
1681         (duplicate_array): New function.
1682         (ipa_edge_duplication_hook): New function.
1683         (ipa_node_duplication_hook): New function.
1684         (ipa_register_cgraph_hooks): New function.
1685         (ipa_unregister_cgraph_hooks): New function.
1686         (free_all_ipa_structures_after_ipa_cp): New function.
1687         
1688         * ipa-prop.h: Include vec.h.
1689         (ipa_node_params_t): New typedef with vector types for it.
1690         (ipa_edge_args_t):  New typedef with vector types for it.
1691         (IPA_NODE_REF): Changed to access an on-the-side vector.
1692         (IPA_EDGE_REF): Changed to access an on-the-side vector.
1693         (ipa_check_create_node_params): New function.
1694         (ipa_check_create_edge_args): New function.
1695         
1696         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
1697         all users.
1698         
1699 2008-07-07  Tom Tromey  <tromey@redhat.com>
1700
1701         * configure, config.in: Rebuilt.
1702         * configure.ac: Don't check for scandir or alphasort.
1703
1704 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
1705
1706         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
1707         types immediately after creating them.
1708
1709 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
1710
1711         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
1712
1713 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
1714
1715         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
1716         dump_constraint_graph.
1717         (dump_constraint_edge): New function.
1718         (dump_constraint_graph): New function.
1719         (debug_constraint_graph): New function.
1720         (dump_constraint): Removed useless comparison.
1721         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
1722         (dump_constraint_graph): Declare.
1723         (debug_constraint_graph): Declare.
1724         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
1725
1726 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
1727
1728         * config/i386/i386.c (is_va_list_char_pointer): New.
1729         (ix86_va_start): Replace compare with ms_va_list_type_node
1730         by is_va_list_char_pointer.
1731         (ix86_gimplify_va_arg): Likewise.
1732
1733 2008-07-07  Martin Jambor  <mjambor@suse.cz>
1734
1735         * cgraph.c (cgraph_edge_max_uid): New variable.
1736         (struct cgraph_edge_hook_list): New type.
1737         (struct cgraph_node_hook_list): New type.
1738         (struct cgraph_2edge_hook_list): New type.
1739         (struct cgraph_2node_hook_list): New type.
1740         (first_cgraph_edge_removal_hook): New variable.
1741         (first_cgraph_node_removal_hook): New variable.
1742         (first_cgraph_edge_duplicated_hook): New variable.
1743         (first_cgraph_node_duplicated_hook): New variable.
1744         (cgraph_add_edge_removal_hook): New function.
1745         (cgraph_remove_edge_removal_hook): New function.
1746         (cgraph_call_edge_removal_hooks):  New function.
1747         (cgraph_add_node_removal_hook):  New function.
1748         (cgraph_remove_node_removal_hook):  New function.
1749         (cgraph_call_node_removal_hooks):  New function.
1750         (cgraph_add_edge_duplication_hook):  New function.
1751         (cgraph_remove_edge_duplication_hook):  New function.
1752         (cgraph_call_edge_duplication_hooks):  New function.
1753         (cgraph_add_node_duplication_hook):  New function.
1754         (cgraph_remove_node_duplication_hook):  New function.
1755         (cgraph_call_node_duplication_hooks):  New function.
1756         (cgraph_create_edge): Assign to edge uid.
1757         (cgraph_remove_edge): Call edge removal hooks.
1758         (cgraph_node_remove_callees): Call edge removal hooks.
1759         (cgraph_node_remove_callers): Call edge removal hooks.
1760         (cgraph_remove_node): Call node removal hooks.
1761         (cgraph_clone_edge): Call edge duplication hooks.
1762         (cgraph_clone_node): Call node duplication hooks.
1763
1764         * cgraph.h (cgraph_edge): New field uid.
1765         (cgraph_edge_hook): New type.
1766         (cgraph_node_hook): New type.
1767         (cgraph_2edge_hook): New type.
1768         (cgraph_2node_hook): New type.
1769
1770 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
1771
1772         * config.in: Regenerate.
1773
1774 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
1775
1776         * gcc.c (print_sysroot): New.
1777         (option_map, display_help, process_command): Handle the
1778         -print-sysroot option.
1779         (main): Print the sysroot if requested.
1780         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
1781         
1782 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1783
1784         PR target/34780
1785         * unwind-pe.h (size_of_encoded_value): add attribute unused.
1786
1787 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
1788
1789         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
1790         (assign_parm_setup_block_p): Also check mode of entry_parm.
1791
1792 2008-07-07  Richard Guenther  <rguenther@suse.de>
1793
1794         * tree-ssa-structalias.h (set_used_smts): Remove.
1795         * tree-ssa-structalias.c (used_smts): Likewise.
1796         (set_used_smts): Likewise.
1797         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
1798         call to set_used_smts.
1799
1800 2008-07-07  Richard Guenther  <rguenther@suse.de>
1801
1802         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
1803         (new_var_info): Set it to false.
1804         (solution_set_add): Correctly handle pointers outside a var and
1805         inside a field.
1806         (type_safe): Treat variables with is_full_var properly.
1807         (do_sd_constraint): Likewise.
1808         (do_ds_constraint): Likewise.
1809         (process_constraint): Remove zeroing offset for !use_field_sensitive.
1810         (get_constraint_for_ptr_offset): New function.
1811         (get_constraint_for_component_ref): For addresses at least include
1812         the last field of the variable.  Handle is_full_vars properly.
1813         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
1814         (handle_ptr_arith): Remove.
1815         (find_func_aliases): Simplify assignment handling.
1816         (create_function_info_for): For parameter and result varinfos set
1817         is_full_var flag.
1818         (create_variable_info_for): Set is_full_var flag whenever we
1819         just created a single varinfo for a decl.
1820         (init_alias_vars): Initialize use_field_sensitive from
1821         max-fields-for-field-sensitive parameter.
1822
1823 2008-07-07  Richard Guenther  <rguenther@suse.de>
1824
1825         PR tree-optimization/36713
1826         * tree-flow-inline.h (is_call_used): New function.
1827         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
1828         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1829         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
1830
1831 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1832
1833         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
1834         
1835 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
1836
1837         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
1838
1839 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1840             Nathan Sidwell  <nathan@codesourcery.com>
1841
1842         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
1843         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
1844         tmake_file.
1845         * config/m68k/t-linux: New.
1846         * doc/install.texi: Document m68k-*-linux is now multilibbed by
1847         default.
1848
1849 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
1850
1851         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
1852         * config/m68k/m68k-devices.def: Remove multilibs that only differ
1853         by MAC/EMAC.
1854
1855 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1856
1857         * gcc.c (execute): Fix -Wc++-compat warning.
1858
1859 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
1860
1861         PR target/36720
1862         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
1863         constant for little endian.
1864
1865 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
1866
1867         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
1868         mips_base_mips16 instead of TARGET_MIPS16.
1869         (mips_base_mips16): Declare.
1870         * config/mips/mips.c (mips_base_mips16): Make global.
1871         (was_mips16_p): Remove GTY marker.
1872         (was_mips16_pch_p): New variable.
1873         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
1874         (mips_override_options): Force to non-MIPS16 mode initially.
1875         Do not complain about MIPS16 PIC incompatibilities here.
1876         Only allow -mgpopt if -mexplicit-relocs is in force for
1877         non-MIPS16 code.
1878
1879 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
1880
1881         * configure.ac: Check for caddr_t, define to char * if not defined.
1882         * configure: Regenerate.
1883         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
1884         (mmap_gt_pch_use_address): Likewise.
1885         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
1886
1887 2008-07-06  Richard Guenther  <rguenther@suse.de>
1888
1889         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
1890         (new_var_info): Deal with it.
1891         (solution_set_add): Likewise.
1892         (bitpos_of_field): Make signed, fix.
1893         (struct fieldoff): Remove type and decl fields.  Make size field
1894         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
1895         flags.
1896         (fieldoff_compare): Deal with it.
1897         (push_fields_onto_fieldstack): Remove has_union argument, glob
1898         adjacent non-pointer fields together.
1899         (create_function_info_for): Do not set has_union.
1900         (create_variable_info_for): Simplify.
1901
1902 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
1903
1904         * config.gcc (extra_headers): Add cross-stdarg.h for target
1905         x86_64-*-* and i?86-*-*.
1906         * config/i386/cross-stdarg.h: New.
1907         * builtins.c (std_fn_abi_va_list): New.
1908         (std_canonical_va_list_type): New.
1909         (stabilize_va_list): Replace va_list_type_node use by
1910         mtarget.canonical_va_list_type.
1911         (gimplify_va_arg_expr): Likewise.
1912         (expand_builtin_va_copy): Replace va_list_type_node use by
1913         mtarget.fn_abi_va_list.
1914         * tree-sra.c (is_va_list_type): New helper.
1915         (decl_can_be_decomposed_p): Replace
1916         va_list_type_node use by is_va_list_type.
1917         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
1918         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1919         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
1920         * config/i386/i386-protos.h (ix86_get_valist_type): New.
1921         (ix86_enum_va_list): New.
1922         * config/i386/i386.c (sysv_va_list_type_node): New.
1923         (ms_va_list_type_node): New.
1924         (ix86_function_type_abi): Remove sorry.
1925         (ix86_build_builtin_va_list_abi): New.
1926         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
1927         for 64-bit targets.
1928         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
1929         (ix86_init_builtins_va_builtins_abi): New.
1930         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
1931         for 64-bit targets.
1932         (ix86_handle_abi_attribute): New.
1933         (attribute_spec): Add sysv_abi and ms_abi.
1934         (ix86_fn_abi_va_list): New.
1935         (ix86_canonical_va_list_type): New.
1936         (ix86_enum_va_list): New.
1937         (TARGET_FN_ABI_VA_LIST): New.
1938         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1939         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
1940         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
1941         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1942         (TARGET_ENUM_VA_LIST): New.
1943         * expr.h (std_fn_abi_va_list): New.
1944         (std_canonical_va_list_type): New.
1945         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
1946         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1947         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
1948         TARGET_CANONICAL_VA_LIST_TYPE.
1949         * target.h (struct gcc_target): Add fn_abi_va_list hook
1950         and canonical_va_list_type hook.
1951
1952 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1953
1954         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
1955         integral and pointer types.
1956
1957 2008-07-04  Roger Sayle  <roger@eyesopen.com>
1958
1959         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
1960         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
1961
1962 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1963
1964         PR target/36684
1965         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
1966
1967 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
1968
1969         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
1970         build_gimple_modify_stmt.
1971         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
1972         gimple operand.  Use fold_build* instead of build*.
1973
1974 2008-07-04  Richard Guenther  <rguenther@suse.de>
1975
1976         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
1977         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
1978         properly to compute the reachability set if we do field-sensitive PTA.
1979         * invoke.texi (max-fields-for-field-sensitive): Document default.
1980         * opts.c (decode_options): Set max-fields-for-field-sensitive to
1981         100 for optimize >= 2.
1982
1983 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1984
1985         * ggc-zone.c (lookup_page_table_if_allocated,
1986         set_page_table_entry, zone_find_object_size, alloc_small_page,
1987         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
1988         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
1989         -Wc++-compat and/or -Wcast-qual warnings.
1990
1991 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
1992
1993         PR target/36634
1994         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
1995         pic_offset_table_rtx to be marked as used here.
1996         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
1997         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
1998         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
1999         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
2000         !TARGET_SECURE_PLT.
2001
2002 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2003
2004         * alloc-pool.c (hash_descriptor, eq_descriptor,
2005         alloc_pool_descriptor): Fix -Wc++-compat warnings.
2006         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
2007         Likewise.
2008         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
2009         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
2010         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
2011         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
2012         Likewise.
2013
2014 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2015
2016         * tree-flow.h (loop_only_exit_p): Declare.
2017         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
2018         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
2019         the number of iterations if it is constant.  Otherwise, if this is the
2020         only possible exit of the loop, use the conservative estimate on the
2021         number of iterations of the entire loop if available.
2022
2023 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
2024
2025         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
2026         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
2027         Add synchronization functions.
2028         * config/sync.c: New file.
2029         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
2030         (LIBGCC_SYNC_CFLAGS): Likewise.
2031
2032 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
2033
2034         PR target/36710
2035         * config/i386/i386.md (mode): Add TF to "mode" attribute.
2036         (*pushtf_sse): New insn pattern.
2037         (pushtf splitters): New splitters.
2038
2039 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
2040
2041         PR middle-end/35736
2042         * predict.c (build_predict_expr): Use void_type_node for the tree
2043         type, instead of NULL_TREE.
2044
2045 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2046
2047         * config/i386/i386.c (contains_aligned_value_p): Return true
2048         for TCmode.
2049         (ix86_data_alignment): Align TCmode to 128bits.
2050         (ix86_local_alignment): Likewise.
2051
2052 2008-07-03  Andrew Haley  <aph@redhat.com>
2053
2054         PR bootstrap/33304
2055         * vec.h (VEC_TA): New.
2056         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
2057         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
2058         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
2059         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
2060         (C_COMMON_FIXED_TYPES): Remove first arg.
2061         (C_COMMON_FIXED_MODE_TYPES): Likewise.
2062         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
2063         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
2064         not to use empty macro arguments.
2065
2066 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
2067
2068         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
2069         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
2070         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
2071         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
2072         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
2073         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
2074         config/ia64/crtn.asm, config/m68hc11/larith.asm,
2075         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
2076         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
2077         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
2078         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
2079         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
2080         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
2081         config/rs6000/e500crtres64gpr.asm,
2082         config/rs6000/e500crtres64gprctr.asm,
2083         config/rs6000/e500crtrest32gpr.asm,
2084         config/rs6000/e500crtrest64gpr.asm,
2085         config/rs6000/e500crtresx32gpr.asm,
2086         config/rs6000/e500crtresx64gpr.asm,
2087         config/rs6000/e500crtsav32gpr.asm,
2088         config/rs6000/e500crtsav64gpr.asm,
2089         config/rs6000/e500crtsav64gprctr.asm,
2090         config/rs6000/e500crtsavg32gpr.asm,
2091         config/rs6000/e500crtsavg64gpr.asm,
2092         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
2093         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
2094         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
2095         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
2096         config/sparc/sol2-cn.asm: Remove .file directives.
2097
2098 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
2099
2100         * resource.c (mark_referenced_resources): Look inside
2101         UNSPEC_VOLATILEs and ASM_INPUTs.
2102
2103 2008-07-02  Ian Lance Taylor  <iant@google.com>
2104
2105         * rtlanal.c (add_reg_note): New function.
2106         * rtl.h (add_reg_note): Declare.
2107         * auto-inc-dec.c (attempt_change): Use add_reg_note.
2108         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
2109         * builtins.c (expand_builtin_longjmp): Likewise.
2110         (expand_builtin_nonlocal_goto): Likewise.
2111         * calls.c (emit_call_1, expand_call): Likewise.
2112         * cfgexpand.c (add_reg_br_prob_note): Likewise.
2113         * cfglayout.c (fixup_reorder_chain): Likewise.
2114         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2115         (commit_one_edge_insertion): Likewise.
2116         * combine.c (move_deaths, distribute_notes): Likewise.
2117         * df-problems.c (df_set_note): Likewise.
2118         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
2119         (set_unique_reg_note): Likewise.
2120         (emit_copy_of_insn_after): Likewise.
2121         * expr.c (expand_expr_real): Likewise.
2122         * gcse.c (add_label_notes): Likewise.
2123         * haifa-sched.c (create_check_block_twin): Likewise.
2124         * jump.c (mark_jump_label_1): Likewise.
2125         * loop-doloop.c (add_test, doloop_modify): Likewise.
2126         * loop-unswitch.c (compare_and_jump_seq): Likewise.
2127         * lower-subreg.c (move_eh_region_note): Likewise.
2128         * optabs.c (emit_libcall_block): Likewise.
2129         * predict.c (predict_insn): Likewise.
2130         (combine_predictions_for_insn): Likewise.
2131         * recog.c (peephole2_optimize): Likewise.
2132         * regmove.c (try_auto_increment): Likewise.
2133         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
2134         * reload.c (find_reloads): Likewise.
2135         * reload1.c (fixup_eh_region_note): Likewise.
2136         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
2137         * reorg.c (delete_prior_computation): Likewise.
2138         (delete_computation, dbr_schedule): Likewise.
2139         * config/pa/pa.c (legitimize_pic_address): Likewise.
2140         * config/sh/sh.c (sh_reorg): Likewise.
2141
2142 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2143
2144         PR target/36669
2145         * config/libgcc-glibc.ver: Add %exclude.
2146         * config/m32r/libgcc-glibc.ver: Likwise.
2147         * config/s390/libgcc-glibc.ver: Likwise.
2148         * config/sh/libgcc-glibc.ver: Likwise.
2149         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
2150
2151         * config/i386/libgcc-glibc.ver: New.
2152
2153         * config/i386/libgcc-x86_64-glibc.ver: Removed.
2154
2155 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2156
2157         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
2158         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
2159         i[34567]86-*-linux*, x86_64-*-linux*.  Add
2160         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
2161         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
2162         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
2163         i[34567]86-*-linux*, x86_64-*-linux*.
2164
2165         * libgcc-std.ver: Add empty GCC_4.4.0.
2166
2167         * mkmap-symver.awk: Support multiple versions per symbol.
2168
2169         * config/i386/i386.c (ix86_init_builtins): Always define
2170         __builtin_fabsq and __builtin_copysignq with fallbacks.
2171         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
2172         and __builtin_copysignq if SSE2 isn't available.
2173
2174         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
2175         (LIBGCC2_TF_CEXT): Likwise.
2176         (TF_SIZE): Likwise.
2177
2178         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
2179
2180         * config/i386/sfp-machine.h: Moved to libgcc.
2181
2182         * config/i386/sfp-machine.h: New.
2183         * config/i386/t-linux: Likwise.
2184
2185         * config/i386/t-darwin: Remove softfp_wrap_start and
2186         softfp_wrap_end.
2187         * config/i386/t-darwin64: Likewise.
2188
2189         * config/i386/t-fprules-softfp64: Renamed to ...
2190         * config/i386/t-fprules-softfp: This.
2191
2192         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
2193         and softfp_wrap_end.
2194
2195 2008-07-02  Jason Merrill  <jason@redhat.com>
2196
2197         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
2198
2199         * tree.c (ctor_to_list): New fn.
2200         * tree.h: Declare it.
2201         (CONSTRUCTOR_ELT): New macro.
2202         (CONSTRUCTOR_NELTS): New macro.
2203
2204 2008-07-02  Richard Guenther  <rguenther@suse.de>
2205
2206         * tree-ssa-structalias.c (struct variable_info): Reorder
2207         to fill padding on 64bit hosts.  Make collapsed_to an int.
2208         (get_varinfo_fc): Deal with that.
2209         (new_var_info): Likewise.
2210         (collapse_rest_of_var): Likewise.
2211
2212 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
2213
2214         * doc/install.texi (--enable-java-home): Document.
2215         (--enable-aot-compile-rpm): Likewise.
2216         (--with-arch-directory): Likewise.
2217         (--with-os-directory): Likewise.
2218         (--with-origin-name): Likewise.
2219         (--with-arch-suffix): Likewise.
2220         (--with-jvm-root-dir): Likewise.
2221         (--with-jvm-jar-dir): Likewise.
2222         (--with-python-dir): Likewise.
2223
2224 2008-07-02  Richard Guenther  <rguenther@suse.de>
2225
2226         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
2227         from decls explicitly.  Merge operand checking from tuples.
2228
2229 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2230
2231         * tree-switch-conversion.c: Included timevar.h which I forgot before.
2232         
2233 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2234
2235         * tree-switch-conversion.c: Included timevar.h
2236         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
2237
2238         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
2239
2240 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2241
2242         * tree-switch-conversion.c: Corrected various comments and
2243         whitespace issues
2244         (build_constructors): Fixed minor formatting mistakes.
2245
2246         * invoke.texi (Optimize Options): Corrected the
2247         switch-conversion-max-branch-ratio parameter.
2248
2249 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
2250
2251         * final.c (asm_insn_count): Return zero for an empty asm body.
2252
2253 2008-07-02  Richard Guenther  <rguenther@suse.de>
2254
2255         * bitmap.h (bitmap_set_bit): Return bool.
2256         (bitmap_clear_bit): Likewise.
2257         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
2258         write to the bitmap if it would.
2259         (bitmap_clear_bit): Likewise.
2260         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
2261         bitmap_set_bit return value.
2262         (add_pred_graph_edge): Likewise.
2263         (add_graph_edge): Likewise.
2264         (do_sd_constraint): Likewise.
2265         (do_ds_constraint): Likewise.
2266
2267 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2268
2269         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
2270         Fix -Wc++-compat and/or -Wcast-qual warnings.
2271         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
2272         gen_regparm_prefix): Likewise.
2273         * vmsdbgout.c (write_modbeg, lookup_filename,
2274         vmsdbgout_source_line, vmsdbgout_init): Likewise.
2275
2276 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
2277
2278         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
2279         defaults.h definition apply.
2280
2281 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2282
2283         * function.c (assign_parm_remove_parallels): New.
2284         (assign_parm_setup_block_p): Do not return true for non-BLKmode
2285         PARALLELs.
2286         (assign_parm_setup_block): Do not handle them.
2287         (assign_parm_setup_reg, assign_parm_setup_stack): Call
2288         assign_parm_remove_parallels.
2289
2290 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2291
2292         * c-typeck.c (convert_for_assignment): Use
2293         vector_targets_convertible_p.
2294         * c-common.c (vector_targets_convertible_p): New.
2295         * c-common.h (vector_targets_convertible_p): New prototype.
2296         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
2297         opaque_p_V2SI_type_node.
2298
2299 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
2300
2301         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
2302         RFmode constants.
2303
2304 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
2305
2306         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
2307         TFmode constants via two element DImode vector for hosts with
2308         HOST_BITS_PER_WIDE_INT < 64.
2309         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
2310         also for HOST_BITS_PER_WIDE_INT < 64.
2311
2312 2008-07-01  Richard Guenther  <rguenther@suse.de>
2313
2314         PR tree-optimization/36666
2315         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
2316         (get_constraint_exp_from_ssa_var): Split into ...
2317         (get_constraint_exp_for_temp): ... this ...
2318         (get_constraint_for_ssa_var): ... and that.
2319         Return constraint expressions for all touched sub-fields
2320         if the results address is not taken.
2321         (process_constraint): Remove assertion that aggregate
2322         assignments do not happen at this place.
2323         (get_constraint_for_component_ref): Add address_p argument.
2324         Return constraint expressions for all touched sub-fields
2325         if the results address is not taken.
2326         (do_deref): Use get_constraint_exp_for_temp.
2327         (get_constraint_for_1): Rename from ...
2328         (get_constraint_for): ... this.  Add the old function as wrapper.
2329         (do_structure_copy): Use get_constraint_for_1.
2330
2331 2008-07-01  Martin Jambor  <mjambor@suse.cz>
2332
2333         * Makefile.in (tree-switch-conversion.o): Add.
2334         (OBJS-common): Add tree-swtch-conversion.o.
2335         * passes.c (init_optimization_passes): Add pass_convert_switch.
2336         * tree-pass.h: (pass_convert_switch): Add.
2337         * tree-switch-conversion.c: New file.
2338         * gcc.dg/tree-ssa/cswtch.c: New testcase.
2339         * common.opt (ftree-cswtch): New option.
2340         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2341         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2342         * opts.c (decode_options): Set flag_tree_switch_conversion when
2343         optimization level is >= 2.
2344         * doc/invoke.texi (Optimize Options): Added description of
2345         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
2346
2347 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2348
2349         * config/darwin-driver.c (darwin_default_min_version): Fix
2350         -Wc++-compat warnings.
2351
2352 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
2353
2354         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
2355         of operand 0.
2356
2357 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2358
2359         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
2360         
2361 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2362
2363         PR rtl-optimization/34744
2364         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
2365         (df_scan_free_internal): Free data structures not
2366         allocated in storage pools.
2367         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
2368         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
2369         df_scan_free_mws_vec.
2370         * dse.c (dse_step6): Free offset_map_p and offset_map_n
2371         unconditionally.
2372
2373 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2374
2375         * config/i386/i386.c (contains_aligned_value_p): Return true
2376         for __float128.
2377         (ix86_function_arg_boundary): Return its natural boundary
2378         for __float128.
2379         (return_in_memory_32): Don't check TDmode.
2380         (ix86_split_to_parts): Support splitting into 4 parts and
2381         support TFmode for 32bit target.
2382         (ix86_split_long_move): Support splitting into 4 parts.
2383         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
2384         for SSE2.
2385         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
2386         (ix86_init_builtins): Here.
2387         (ix86_scalar_mode_supported_p): Always return true for TFmode.
2388         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
2389         'q' and 'w', respectively. 
2390
2391         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
2392         TARGET_64BIT.
2393         (movtf_internal): Likewise.
2394         (<code>tf2): Likewise.
2395         (*absnegtf2_sse): Likewise.
2396         (copysign<mode>3): Likewise.
2397         (copysign<mode>3_const): Likewise.
2398         (copysign<mode>3_var): Likewise.
2399         (define_split UNSPEC_COPYSIGN): Likewise.
2400         * config/i386/sse.md (*nandtf3): Likewise.
2401         (<code>tf3): Likewise.
2402         (*<code>tf3): Likewise.
2403
2404 2008-06-30  Joey Ye  <joey.ye@intel.com>
2405             H.J. Lu  <hongjiu.lu@intel.com>
2406
2407         * global.c (compute_regsets): Set frame_pointer_needed here.
2408         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
2409
2410 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2411
2412         * doc/install.texi (specific): Expand Windows build notes.
2413
2414 2008-06-30  Ira Rosen  <irar@il.ibm.com>
2415
2416         PR tree-optimization/36648
2417         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
2418         number of prolog iterations by step. Fix the comment.
2419
2420 2008-06-30  Richard Guenther  <rguenther@suse.de>
2421
2422         PR middle-end/36671
2423         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
2424         handle calls from ECF_MALLOC functions.
2425         (handle_pure_call): ECF_MALLOC functions do not return
2426         call-used memory.
2427         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
2428
2429 2008-06-29  Andreas Schwab  <schwab@suse.de>
2430
2431         * config/m68k/m68k.c (print_operand): Always print a float
2432         constant in hex.
2433         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
2434         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
2435         Remove macros.
2436
2437         * config/rs6000/x-linux64: Remove never used file.
2438
2439 2008-06-29  Richard Guenther  <rguenther@suse.de>
2440
2441         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
2442         prototype.
2443         (struct alias_info): Move ...
2444         * tree-ssa-alias.c: ... here.
2445         (update_alias_info): Declare.
2446         (compute_may_aliases): Call it.
2447         (update_alias_info): New function.
2448         * tree-ssa-structalias.c (update_alias_info): Move ...
2449         * tree-ssa-alias.c (update_alias_info_1): ... here.
2450         * tree-ssa-structalias.c (process_constraint_1): Remove
2451         unused from_call argument.  Rename to ...
2452         (process_constraint): ... this.  Delete old wrapper.
2453         (make_constraint_to): Adjust callers.
2454         (handle_const_call): Likewise.
2455         (handle_pure_call): Likewise.
2456         (init_base_vars): Likewise.
2457         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
2458         (find_func_aliases): We don't need structure copies for
2459         complex types.
2460         (make_constraint_from_anything): Remove.
2461         (create_variable_info_for): For globals make constraints
2462         from escaped, not from anything.
2463         (compute_points_to_sets): Do not call update_alias_info.
2464         (ipa_pta_execute): Use make_constraint_from.
2465
2466 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2467
2468         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
2469         (bitmap.o-warn, dominance.o-warn): New.
2470         * configure.ac (cxx_compat_warn): Delete.
2471         (loose_warn): Add -Wcast-qual and -Wc++-compat.
2472         * system.h: Remove #pragma diagnostic for -Wcast-qual and
2473         -Wc++-compat.
2474         * configure: Regenerate.
2475
2476         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
2477         warnings.
2478
2479 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2480
2481         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
2482         * df-scan.c (df_notes_rescan): Likewise.
2483         * ggc-page.c (set_page_table_entry): Likewise.
2484         * intl.c (gcc_gettext_width): Likewise.
2485         * varasm.c (get_unnamed_section, get_noswitch_section,
2486         get_section): Likewise.
2487
2488 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
2489
2490         * regrename.c (build_def_use): Don't copy RTX.
2491
2492 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
2493
2494         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
2495         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
2496         punctuation.  Use @ref instead of @xref.
2497         (Function Names): Remove stray @display/@end display.
2498         (C++ Attributes): Use @ref instead of @xref.
2499         (Deprecated Features): Fix punctuation around @xref.
2500         (Backwards Compatibility): Likewise.
2501         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
2502
2503 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
2504
2505         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
2506         constants for E500 double.
2507
2508 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2509
2510         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
2511         element type of const_vector.
2512
2513 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
2514
2515         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
2516         Remove FLAGS_REG clobber from expander pattern.
2517         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
2518         (anddi3, andsi3, andhi3, andqi3): Ditto.
2519         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
2520         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
2521         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
2522         (ashlsi3, ashlhi3, ashlqi3): Ditto.
2523         (ashrsi3, ashrhi3, ashrqi3): Ditto.
2524         (lshrsi3, lshrhi3, lshrqi3): Ditto.
2525         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
2526         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
2527
2528 2008-06-28  Richard Guenther  <rguenther@suse.de>
2529
2530         * tree-ssa-structalias.c (callused_id, var_callused,
2531         callused_tree): Add.
2532         (handle_pure_call): New function.
2533         (find_func_aliases): Call it.
2534         (find_what_p_points_to): Handle the call-used set.
2535         (clobber_what_escaped): Likewise.
2536         (compute_call_used_vars): New function.
2537         (init_base_vars): Init the call-used variable.
2538         (do_sd_constraint): Do not propagate the solution from CALLUSED
2539         but use CALLUSED as a placeholder.
2540         (solve_graph): Likewise.
2541         * tree-flow-inline.h (gimple_call_used_vars): New function.
2542         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
2543         (compute_call_used_vars): Declare.
2544         * tree-ssa-alias.c (set_initial_properties): Call
2545         compute_call_used_vars.
2546         (reset_alias_info): Clear call-used variables.
2547         (add_call_clobber_ops): Assert we are not called for const/pure
2548         functions.  Remove handling of them.
2549         (add_call_read_ops): Handle pure functions by adding the
2550         call-used set of variables as VUSEs.
2551         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
2552         (delete_tree_ssa): Free it.
2553         * tree-dfa.c (remove_referenced_var): Clear the var from the
2554         call-used bitmap.
2555
2556 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
2557
2558         * tree.c (build_varargs_function_type_list): New.
2559         (build_function_type_list_1): New.
2560         (build_function_type_list): Use build_function_type_list_1.
2561         * tree.h (build_varargs_function_type_list): New.
2562
2563 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2564
2565         PR target/34856
2566         * config/spu/spu.c (spu_builtin_splats): Do not generate
2567         invalid CONST_VECTOR expressions.
2568         (spu_expand_vector_init): Likewise.
2569
2570 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
2571
2572         * optabs.c (libfunc_decls): New variable.
2573         (libfunc_decl_hash, libfunc_decl_eq): New functions.
2574         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
2575         for the same function twice.
2576
2577 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
2578
2579         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
2580         ix86_expand_binary_operator directly.
2581         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
2582         for operand 2.
2583         (*ashrti3_1): Ditto.
2584         (*lshrti3_1): Ditto.
2585         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
2586         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
2587         using only one splitter.  Conditionaly execute splitter before or
2588         after peephole2 pass.
2589         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
2590         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
2591         Use only one alternative in asm template.
2592         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
2593         in asm template.
2594         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
2595         "J" operand constraint for operand 2.
2596         (*ashldi3_cconly_rex64): Ditto.
2597         (*ashrdi3_cmp_rex64): Ditto.
2598         (*ashrdi3_cconly_rex64): Ditto.
2599         (*lshrdi3_cmp_rex64): Ditto.
2600         (*lshrdi3_cconly_rex64): Ditto.
2601         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
2602         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
2603         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
2604         gen_x86_shrd_1.
2605
2606 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
2607
2608         * gimplify.c (omp_is_private): Don't return true if decl is not
2609         already private on #pragma omp for or #pragma omp parallel for.
2610
2611         PR debug/36617
2612         * tree-cfg.c (struct move_stmt_d): Replace block field with
2613         orig_block and new_block fields.
2614         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
2615         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
2616         (move_block_to_fn): Replace vars_map and new_label_map arguments
2617         with struct move_stmt_d pointer.
2618         (replace_block_vars_by_duplicates): New function.
2619         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
2620         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
2621         all subblocks of ORIG_BLOCK to the new function.  Call
2622         replace_block_vars_by_duplicates.
2623         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
2624         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
2625         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
2626         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
2627         (expand_omp): Temporarily set input_location to the location of
2628         region's controlling stmt.
2629         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
2630         BIND_EXPR, push ctx->block_vars and gimplification vars into
2631         the BIND_EXPR and its block's BLOCK_VARS instead of directly
2632         into dest function.
2633         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
2634         there are any BLOCK_VARS.
2635         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
2636         OMP_PARALLEL or OMP_TASK stmt.
2637         (lower_omp): Save and restore input_location around the lower_omp_1
2638         call.
2639
2640 2008-06-27  Richard Guenther  <rguenther@suse.de>
2641
2642         PR tree-optimization/36400
2643         PR tree-optimization/36373
2644         PR tree-optimization/36344
2645         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
2646         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
2647         (update_alias_info): Remove call clobbering code.
2648         (make_constraint_to): New helper function.
2649         (make_escape_constraint): Likewise.
2650         (handle_rhs_call): Use it on all pointer containing arguments.
2651         Also mark the static chain escaped.
2652         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
2653         instead of ANYTHING.
2654         (make_constraint_from): New helper split out from ...
2655         (make_constraint_from_anything): ... here.
2656         (find_func_aliases): Add constraints for escape sites.
2657         (intra_create_variable_infos): Make constraints from NONLOCAL
2658         for parameters.
2659         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
2660         as ANYTHING.
2661         (clobber_what_p_points_to): Remove.
2662         (clobber_what_escaped): New function.
2663         (init_base_vars): Init NONLOCAL and ESCAPED.
2664         (do_sd_constraint): Do not propagate the solution from ESCAPED
2665         but use ESCAPED as a placeholder.
2666         (solve_graph): Likewise.
2667         * tree-flow.h (clobber_what_p_points_to): Remove.
2668         (clobber_what_escaped): Declare.
2669         * tree-ssa-alias.c (set_initial_properties): Call it.
2670         Remove code clobbering escaped pointers.
2671
2672 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2673
2674         * function.c (allocate_struct_function): Only allocate a unique
2675         funcdef_no if the decl is nonzero.
2676
2677 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2678
2679         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
2680         * config/mips/mips.c (mips_split_const_insns): New function.
2681         * config/mips/mips.md (move_type): New attribute.
2682         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
2683         (dword_mode): New attribute.
2684         (type): Avoid long line.  Map "move_type"s to "type"s,
2685         choosing "multi" for doubleword moves if appropriate.
2686         Swap MTC/MFC comments to match their declaration order.
2687         (extended_mips16): Default to "yes" if "move_type" is "sll0",
2688         "type" is "branch" or "jal" is "direct".
2689         (length): Handle "extended_mips16" first.  Make the default
2690         "0" for "ghost" instructions.  Set the length from "move_type".
2691         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
2692         of "type", with "sll0" for the register alternative.  Remove the
2693         "extended_mips16" attribute.
2694         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
2695         of "type", with "shift_shift" for the register alternative.
2696         Remove the "length" attribute.
2697         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
2698         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
2699         of "type", with "andi" for the register alternative.
2700         (*zero_extendqihi2): Likewise.
2701         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
2702         of "andi" instead of a "type" of "arith".
2703         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
2704         instead of "type".
2705         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
2706         (mov_<store>r, *mov<mode>_ra): Likewise.
2707         (extendsidi2): Use "move_type" instead of "type", with "move"
2708         for the register alternative.
2709         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
2710         of "type", with "signext" for the register alternative.
2711         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
2712         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
2713         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
2714         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
2715         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
2716         (unnamed branch insn): Likewise.
2717         (*movdi_gp32_fp64): Fold into...
2718         (*movdi_32bit): ...here.
2719         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
2720         (*movdf_hardfloat): ...this new pattern.
2721         (*movdf_softfloat): Remove redundant FPR alternatives.
2722         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
2723         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
2724         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
2725         the "move" attribute.
2726         (*movdi_32bit): Use "move_type" instead of "type" and remove the
2727         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
2728         and "store" for COP loads and stores.
2729         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
2730         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
2731         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
2732         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
2733         (*movtf_mips16, *movv2sf): Likewise.
2734         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
2735         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2736         (mfhc1<mode>): Use "move_type" instead of "move".
2737         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
2738         (loadgp_blockage): Remove the "length" attribute.
2739         (blockage, set_got_version, update_got_version): Likewise.
2740         (call_internal): Remove the "extended_mips16" attribute.
2741         (call_value_internal, call_value_multiple_internal): Likewise.
2742         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
2743         instead of "move".
2744         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
2745         the "length" attribute.
2746
2747 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2748
2749         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
2750         -Wcast-qual warnings.
2751         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
2752         handle_pragma_pop_macro): Likewise.
2753         * collect2.c (resolve_lib_name): Likewise.
2754         * config/arc/arc.c (arc_init): Likewise.
2755         * config/arm/arm.c (neon_builtin_compare,
2756         locate_neon_builtin_icode): Likewise.
2757         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
2758         * config/bfin/bfin.c (bfin_init_machine_status,
2759         bfin_optimize_loop): Likewise.
2760         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2761         * config/cris/cris.c (cris_init_expanders): Likewise.
2762         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
2763         * config/darwin.c (machopic_indirection_eq,
2764         machopic_indirection_name, machopic_output_indirection): Likewise.
2765         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
2766         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
2767         frv_optimize_membar): Likewise.
2768         * config/i386/cygwin.h (mingw_scan,
2769         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
2770         * config/i386/cygwin1.c (mingw_scan): Likewise.
2771         * config/i386/i386.c (machopic_output_stub): Likewise.
2772         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
2773         i386_pe_unique_section): Likewise.
2774         * config/ia64/ia64.c (ia64_init_machine_status,
2775         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
2776         Likewise.
2777         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
2778         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
2779         * config/m68k/m68k.c (m68k_handle_option,
2780         m68k_sched_md_init_global): Likewise.
2781         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
2782         mcore_unique_section): Likewise.
2783         * config/mips/mips.c (mips_block_move_straight,
2784         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
2785         Likewise.
2786         * config/mmix/mmix.c (mmix_init_machine_status,
2787         mmix_encode_section_info): Likewise.
2788         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
2789         * config/rs6000/rs6000.c (rs6000_init_machine_status,
2790         print_operand_address, output_toc, redefine_groups,
2791         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
2792         * config/s390/s390.c (s390_init_machine_status): Likewise.
2793         * config/score/score.c (score_block_move_straight,
2794         score_block_move_loop_body): Likewise.
2795         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2796         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2797         * emit-rtl.c (find_auto_inc): Likewise.
2798         * gcc.c (translate_options, process_command): Likewise.
2799         * reorg.c (dbr_schedule): Likewise.
2800         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
2801         * xcoffout.c (xcoffout_declare_function): Likewise.
2802
2803 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
2804
2805         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
2806         ipa-pta working again.
2807
2808 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
2809
2810         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
2811         genautomata.
2812
2813 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
2814
2815         * config.gcc (powerpc*-*-*): Add new core e500mc.
2816         * config/rs6000/e500mc.md: New file.
2817         * config/rs6000/rs6000.c (processor_costs): Add new costs for
2818         e500mc.
2819         (rs6000_override_options): Add e500mc case to
2820         processor_target_table. Altivec and Spe options not allowed
2821         with e500mc. Add isel instruction to e500mc by
2822         default. Initialize rs6000_cost for e500mc.
2823         (rs6000_issue_rate): Set issue rate for e500mc.
2824         * config/rs6000/rs6000.h (processor_type): Add
2825         PROCESSOR_PPCE500MC.
2826         (ASM_CPU_SPEC): Add e500mc.
2827         Set TARGET_ISEL to rs6000_isel.
2828         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
2829         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
2830         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
2831         Include e500mc.md.
2832         * doc/invoke.texi: Add e500mc to list of cpus.
2833
2834 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2835
2836         PR c/34867
2837         * c-lex.c (lex_charconst): Initialize unsignedp.
2838
2839 2008-06-27  Olivier Hainque  <hainque@adacore.com>
2840
2841         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
2842         documented assumptions.
2843
2844 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
2845
2846         * dwarf2out.c: Remove trailing white spaces.  Break long line
2847         in comments.
2848
2849 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
2850
2851         * libfuncs.h (LTI_synchronize): New libfunc_index.
2852         (synchronize_libfunc): Declare.
2853         * builtins.c (expand_builtin_synchronize): Consider using
2854         synchronize_libfunc before falling back on an asm blockage.
2855         * config/mips/mips.c: Include libfuncs.h
2856         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
2857
2858 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
2859
2860         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
2861         parameter.  Copy stack_reg to r11 where appropriate.
2862         (no_global_regs_above): Add gpr parameter.
2863         (rs6000_stack_info): Only add padding for SPE save area if we
2864         are saving SPE GPRs and CR.
2865         (saveres_routine_syms): New variable.
2866         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
2867         Define.
2868         (rs6000_savres_routine_sym): New function.
2869         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
2870         split out of...
2871         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
2872         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
2873         Tweak FPR out-of-line saving.
2874         (rs6000_make_savres_rtx): New function.
2875         (rs6000_use_multiple_p): New function.
2876         (rs6000_savres_strategy): New function.
2877         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
2878         out-of-line if appropriate.
2879         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
2880         if we are optimizing for size.
2881         (GP_SAVE_INLINE): Define.
2882         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
2883         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
2884         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
2885         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
2886         (*save_fpregs_<mode>): Add use of r11.
2887         (*restore_gpregs_<mode>): New insn.
2888         (*return_and_restore_gpregs_<mode>): New insn.
2889         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
2890         use r11.
2891         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
2892         (*restore_gpregs_spe): New insn.
2893         (*return_and_restore_gpregs_spe): New insn.
2894         * config/rs6000/predicates.md (save_world_operation): Fix check.
2895
2896 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2897
2898         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
2899         this point, so assert that.
2900
2901 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2902
2903         * cfganal.c: Include vec.h and vecprim.h.
2904         (compute_idf): Import from...
2905         * tree-into-ssa (compute_idf): ...here.
2906         * basic-block.h (compute_idf): Export.
2907
2908 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
2909
2910         * c-decl.c (merge_decls): Use !current_function_decl to check for
2911         extern declaration of C99 inline function being at file scope.
2912
2913 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
2914
2915         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
2916
2917 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2918
2919         * alias.c (record_alias_subset, init_alias_analysis): Fix
2920         -Wc++-compat and/or -Wcast-qual warnings.
2921         * attribs.c (lookup_attribute_spec): Likewise.
2922         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
2923         copy_bb, connect_traces,
2924         find_rarely_executed_basic_blocks_and_cr): Likewise.
2925         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
2926         note_btr_set, migrate_btr_defs): Likewise.
2927         * builtins.c (result_vector, expand_builtin_memcpy,
2928         expand_builtin_mempcpy_args, expand_builtin_strncpy,
2929         builtin_memset_read_str, expand_builtin_printf,
2930         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
2931         Likewise.
2932         * caller-save.c (mark_set_regs): Likewise.
2933         * calls.c (expand_call, emit_library_call_value_1): Likewise.
2934         * cgraph.c (cgraph_edge): Likewise.
2935         * combine.c (likely_spilled_retval_1): Likewise.
2936         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
2937         htab_counts_entry_del, get_coverage_counts): Likewise.
2938         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
2939         new_cselib_val): Likewise.
2940         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
2941         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
2942         Likewise.
2943         * df-core.c (df_compact_blocks): Likewise.
2944         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
2945         * df-scan.c (df_grow_reg_info, df_ref_create,
2946         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
2947         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
2948         df_record_entry_block_defs, df_record_exit_block_uses,
2949         df_bb_verify): Likewise.
2950         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
2951         DF_REF_EXTRACT_MODE_CONST): New.
2952         * dominance.c (get_immediate_dominator, get_dominated_by,
2953         nearest_common_dominator, root_of_dom_tree,
2954         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
2955         -Wc++-compat and/or -Wcast-qual warnings.
2956         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
2957         record_store, replace_read, check_mem_read_rtx, scan_insn,
2958         dse_step1, dse_record_singleton_alias_set): Likewise.
2959         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2960
2961 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2962
2963         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
2964         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
2965         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
2966         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
2967         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
2968         add_ranges_num, add_ranges_by_labels, file_info_cmp,
2969         file_name_acquire, output_file_names, add_const_value_attribute,
2970         premark_used_types_helper, file_table_eq, file_table_hash,
2971         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
2972         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
2973         -Wcast-qual warnings.
2974         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
2975         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
2976         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
2977         gen_reg_rtx, start_sequence, init_emit): Likewise.
2978         * et-forest.c (et_new_occ, et_new_tree): Likewise.
2979         * except.c (init_eh_for_function, gen_eh_region,
2980         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
2981         arh_to_landing_pad, arh_to_label, add_action_record,
2982         add_call_site, switch_to_exception_section): Likewise.
2983         * expmed.c (synth_mult): Likewise.
2984         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
2985         store_expr): Likewise.
2986         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
2987         Likewise.
2988         * function.c (assign_stack_temp_for_type,
2989         allocate_struct_function, match_asm_constraints_1): Likewise.
2990         * gcov-io.c (gcov_allocate): Likewise.
2991         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
2992         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
2993         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
2994         record_one_set, insert_expr_in_table, insert_set_in_table,
2995         dump_hash_table, compute_hash_table_work, alloc_hash_table,
2996         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
2997         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
2998         -Wcast-qual warnings.
2999
3000 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3001
3002         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
3003         -Wcast-qual warnings.
3004         * gcc.c (process_command): Likewise.
3005         * genattrtab.c (oballoc): Use XOBNEW.
3006         (oballocvec): Define.
3007         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
3008         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
3009         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
3010         -Wc++-compat and/or -Wcast-qual warnings.
3011         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
3012         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
3013         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
3014         gen_presence_absence_set, gen_automaton, gen_regexp_el,
3015         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
3016         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
3017         add_excls, process_presence_absence_names,
3018         process_presence_absence_patterns, add_presence_absence,
3019         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
3020         get_free_state, add_arc, get_free_automata_list_el,
3021         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
3022         transform_3, cache_presence, create_ainsns, create_automata,
3023         create_state_ainsn_table, dfa_insn_code_enlarge,
3024         output_trans_func, output_min_issue_delay_func,
3025         output_dead_lock_func, output_reset_func,
3026         output_get_cpu_unit_code_func, output_dfa_start_func,
3027         expand_automata): Likewise.
3028         * genextract.c (gen_insn): Likewise.
3029         * gengtype-lex.l: Likewise.
3030         * gengtype.c (read_input_list, adjust_field_type,
3031         process_gc_options): Likewise.
3032         * genoutput.c (note_constraint): Likewise.
3033         * genpreds.c (mangle, add_constraint): Likewise.
3034         * genrecog.c (process_define_predicate, new_decision,
3035         add_to_sequence): Likewise.
3036         * gensupport.c (record_insn_name): Likewise.
3037
3038 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3039
3040         * config/i386/driver-i386.c (detect_caches_amd,
3041         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
3042         and/or -Wcast-qual warnings.
3043         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
3044         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
3045         gt_pch_save): Likewise.
3046         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
3047         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
3048         * global.c (compute_regsets): Likewise.
3049         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
3050         finish_graph_dump_file): Likewise.
3051         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
3052         unlink_bb_notes): Likewise.
3053         * integrate.c (get_hard_reg_initial_val): Likewise.
3054         * ipa-prop.c (ipa_push_func_to_list): Likewise.
3055         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
3056         * local-alloc.c (update_equiv_regs): Likewise.
3057         * loop-invariant.c (check_invariant_table_size,
3058         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
3059         Likewise.
3060         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
3061         altered_reg_used, mark_altered): Likewise.
3062         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
3063         insert_var_expansion_initialization,
3064         combine_var_copies_in_loop_exit, apply_opt_in_copies,
3065         release_var_copies): Likewise.
3066         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
3067         analyze_matrix_decl, add_allocation_site, analyze_transpose,
3068         analyze_accesses_for_phi_node, check_var_notmodified_p,
3069         check_allocation_function, find_sites_in_func,
3070         record_all_accesses_in_func, transform_access_sites,
3071         transform_allocation_sites): Likewise.
3072         * omp-low.c (new_omp_region, create_omp_child_function_name,
3073         check_omp_nesting_restrictions, check_combined_parallel,
3074         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
3075         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
3076         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
3077         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
3078         Likewise.
3079         * opts-common.c (prune_options): Likewise.
3080         * opts.c (add_input_filename, print_filtered_help,
3081         get_option_state): Likewise.
3082         * params.c (add_params): Likewise.
3083         * passes.c (set_pass_for_id, next_pass_1,
3084         do_per_function_toporder, pass_fini_dump_file): Likewise.
3085         * postreload.c (reload_cse_simplify_operands): Likewise.
3086         * predict.c (tree_predicted_by_p, tree_predict_edge,
3087         clear_bb_predictions, combine_predictions_for_bb): Likewise.
3088
3089 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3090
3091         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
3092         warnings.
3093         * recog.c (check_asm_operands, validate_change_1): Likewise.
3094         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
3095         subst_asm_stack_regs): Likewise.
3096         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
3097         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
3098         * regmove.c (reg_is_remote_constant_p): Likewise.
3099         * regrename.c (regrename_optimize, scan_rtx_reg,
3100         kill_clobbered_value, kill_set_value, kill_autoinc_value):
3101         Likewise.
3102         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
3103         regstat_compute_calls_crossed): Likewise.
3104         * reload1.c (init_reload, new_insn_chain,
3105         has_nonexceptional_receiver, reload, copy_reloads,
3106         calculate_needs_all_insns, init_elim_table): Likewise.
3107         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
3108         * rtl.c (shallow_copy_rtx_stat): Likewise.
3109         * rtlanal.c (parms_set): Likewise.
3110         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
3111         sbitmap_resize, sbitmap_vector_alloc): Likewise.
3112         * sched-ebb.c (earliest_block_with_similiar_load,
3113         add_deps_for_risky_insns): Likewise.
3114         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
3115         schedule_region): Likewise.
3116         * see.c (eq_descriptor_pre_extension,
3117         hash_descriptor_pre_extension, hash_del_pre_extension,
3118         eq_descriptor_properties, hash_descriptor_properties,
3119         hash_del_properties, see_seek_pre_extension_expr,
3120         see_initialize_data_structures, see_print_register_properties,
3121         see_print_pre_extension_expr, see_delete_merged_def_extension,
3122         see_delete_unmerged_def_extension, see_emit_use_extension,
3123         see_pre_delete_extension, see_map_extension, see_commit_changes,
3124         see_analyze_merged_def_local_prop,
3125         see_analyze_merged_def_local_prop,
3126         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
3127         see_set_prop_merged_def, see_set_prop_unmerged_def,
3128         see_set_prop_unmerged_use, see_print_one_extension,
3129         see_merge_one_use_extension, see_merge_one_def_extension,
3130         see_store_reference_and_extension, see_update_uses_relevancy,
3131         see_update_defs_relevancy): Likewise.
3132         * statistics.c (hash_statistics_hash, hash_statistics_eq,
3133         hash_statistics_free, curr_statistics_hash): Likewise.
3134         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
3135         expand_asm_operands, expand_return, case_bit_test_cmp,
3136         expand_case): Likewise.
3137         * stor-layout.c (start_record_layout): Likewise.
3138         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
3139         gt_pch_save_stringpool): Likewise.
3140         * tree-data-ref.c (hash_stmt_vertex_info,
3141         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
3142         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
3143
3144 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
3145
3146         PR target/36627
3147         * config/i386/i386.md : Change constraints of HImode and QImode
3148         immediate operands from "i" to "n".  Change SImode "ni" constraint to
3149         "i" and SImode "rmi" constraint to "g".  Remove all constraints
3150         from const0_operand and const1_operand predicated operands.
3151         (i): Change QImode and HImode attribute from "i" to "n".
3152         (*subqi_2): Change HImode operands to QImode.
3153         (*subqi_3): Ditto.
3154
3155 2008-06-25  Olivier Hainque  <hainque@adacore.com>
3156
3157         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
3158         sed substitutions.
3159
3160 2008-06-25  Richard Guenther  <rguenther@suse.de>
3161
3162         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
3163         not overflow the result type.
3164
3165 2008-06-25  Richard Guenther  <rguenther@suse.de>
3166
3167         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
3168         (vn_lookup): Likewise.
3169
3170 2008-06-25  Richard Guenther  <rguenther@suse.de>
3171
3172         PR tree-optimization/35518
3173         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
3174         * tree-sra.c (instantiate_element): Use fold_build3 to build
3175         BIT_FIELD_REFs.
3176         (try_instantiate_multiple_fields): Likewise.
3177
3178 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3179
3180         * config/rs6000/rs6000.md: Change all string instruction's clobber to
3181         be early clobbers.
3182
3183 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3184
3185         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
3186         use_backchain_to_restore_sp to true
3187         if the offset of the link register save area would go over the 32k - 1
3188         offset limit of the load
3189         instructions.
3190
3191 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
3192
3193         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
3194         anchor for the type-punning blurb.  Cross-reference "Structures
3195         unions enumerations and bit-fields implementation".  Provide a
3196         cast-through-pointer example.  Make final sentence self-contained.
3197         * doc/implement-c.texi (Structures unions enumerations and
3198         bit-fields implementation): Cross-reference the type-punning blurb
3199         in the -fstrict-aliasing documentation.
3200
3201 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3202
3203         PR middle-end/36594
3204         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
3205         the memory instead of the memory itself for the save area.
3206
3207 2008-06-24  Olivier Hainque  <hainque@adacore.com>
3208             Nicolas Roche  <roche@adacore.com>
3209
3210         * gengtype.c (srcdir_len): size_t instead of int.
3211         (get_file_realbasename): New function.  For F a filename, the real
3212         basename of F, with all the path components stripped.
3213         (get_file_srcdir_relative_path): New function.  For F a filename, the
3214         relative path to F from $(srcdir).
3215         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
3216         get_file_realbasename.  Adjust the head comment.
3217         (get_prefix_langdir_index): New function. For F a filename, return the
3218         lang_dir_names[] relative index of the language directory that is
3219         a prefix in F.
3220         (get_file_langdir): For F a filename, return the name of the language
3221         directory where F is located.
3222         (get_file_gtfilename): New function. The gt- output file name for an
3223         input filename F.
3224         (get_output_file_with_visibility): Replace in-line computations with
3225         uses of get_file_gtfilename and get_prefix_langdir_index.
3226         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
3227
3228 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
3229
3230         PR tree-optimization/36504
3231         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
3232         references without base address.
3233
3234 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3235
3236         PR middle-end/36584
3237         * calls.c (expand_call): Increase alignment for recursive functions.
3238
3239 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
3240
3241         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
3242         (TARGET_FUNCTION_VALUE): New define.
3243         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
3244         * config/avr/avr.h (FUNCTION_VALUE): Remove.
3245
3246 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3247
3248         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
3249         (fmod<mode>3): Ditto.
3250         (remainderxf3): Ditto.
3251         (remainder<mode>3): Ditto.
3252
3253 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
3254
3255         PR target/36533
3256         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
3257         REG is a hard register.
3258
3259         PR tree-optimization/36508
3260         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
3261         499, don't check it at all in release compilers.
3262
3263 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3264
3265         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
3266         together with SSE_TARGET_MATH to disable insn pattern.
3267         (*fop_<MODEF:mode>_2_i387): Ditto.
3268         (*fop_<MODEF:mode>_3_i387): Ditto.
3269
3270 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
3271
3272         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
3273         
3274 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3275
3276         PR middle-end/34906
3277         * gimplify.c (gimplify_asm_expr): Check the return code of
3278         parse_output_constraint call, set function return and is_inout
3279         value if it failed.
3280
3281 2008-06-22  Ian Lance Taylor  <iant@google.com>
3282
3283         * c-lex.c (narrowest_unsigned_type): Change itk to int.
3284         (narrowest_signed_type): Likewise.
3285         * c-typeck.c (c_common_type): Change local variable mclass to enum
3286         mode_class, twice.
3287         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
3288         tcc_comparison, not the tree code itself.
3289         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
3290         (c_expand_expr): Cast modifier to enum expand_modifier.
3291         * c-common.h (C_RID_CODE): Add casts.
3292         (C_SET_RID_CODE): Define.
3293         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
3294         (c_lex_one_token): Add cast to avoid warning.
3295         (c_parser_objc_type_name): Rename local typename to type_name.
3296         (check_no_duplicate_clause): Change code parameter to enum
3297         omp_clause_code.
3298         (c_parser_omp_var_list_parens): Change kind parameter to enum
3299         omp_clause_code.
3300         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
3301         c_parser_omp_list_var_parens.
3302         (c_parser_omp_threadprivate): Likewise.
3303         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
3304         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
3305         * c-format.c (NO_FMT): Define.
3306         (printf_length_specs): Use NO_FMT.
3307         (asm_fprintf_length_specs): Likewise.
3308         (gcc_diag_length_specs): Likewise.
3309         (scanf_length_specs): Likewise.
3310         (strfmon_length_specs): Likewise.
3311         (gcc_gfc_length_specs): Likewise.
3312         (printf_flag_specs): Change 0 to STD_C89.
3313         (asm_fprintf_flag_specs): Likewise.
3314         (gcc_diag_flag_specs): Likewise.
3315         (gcc_cxxdiag_flag_specs): Likewise.
3316         (scanf_flag_specs): Likewise.
3317         (strftime_flag_specs): Likewise.
3318         (strfmon_flag_specs): Likewise.
3319         (print_char_table): Likewise.
3320         (asm_fprintf_char_table): Likewise.
3321         (gcc_diag_char_table): Likewise.
3322         (gcc_tdiag_char_table): Likewise.
3323         (gcc_cdiag_char_table): Likewise.
3324         (gcc_cxxdiag_char_table): Likewise.
3325         (gcc_gfc_char_table): Likewise.
3326         (scan_char_table): Likewise.
3327         (time_char_table): Likewis.
3328         (monetary_char_table): Likewise.
3329         * c-format.h (BADLEN): Likewise.
3330
3331 2008-06-21  Ian Lance Taylor  <iant@google.com>
3332
3333         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
3334         Define END_OF_BASE_TREE_CODES around inclusion.
3335         * tree.c (tree_code_type): New global array.
3336         (tree_code_length, tree_code_name): Likewise.
3337         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
3338         $(lang_tree_files).
3339         (all-tree.def, s-alltree): New targets.
3340         (gencheck.h, s-gencheck): Remove.
3341         (tree.o): Depend upon all-tree.def.
3342         (build/gencheck.o): Remove gencheck.h dependency.
3343         (mostlyclean): Don't remove gencheck.h.
3344         * c-common.h (enum c_tree_code): Remove.
3345         * c-lang.c (tree_code_type): Remove.
3346         (tree_code_length, tree_code_name): Remove.
3347         * gencheck.c (tree_codes): Include all-tree.def, rather than
3348         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
3349         after it is used.
3350         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
3351         than tree.def.
3352         * cp/cp-tree.h (enum cplus_tree_code): Remove.
3353         (operator_name_info): Size to MAX_TREE_CODES.
3354         (assignment_operator_name_info): Likewise.
3355         * cp/cp-lang.c (tree_code_type): Remove.
3356         (tree_code_length, tree_code_name): Remove.
3357         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
3358         (assignment_operator_name_info): Likewise.
3359         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
3360         MAX_TREE_CODES.
3361         * cp/mangle.c (write_expression): Likewise.
3362         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
3363         * fortran/f95-lang.c (tree_code_type): Remove.
3364         (tree_code_length, tree_code_name): Remove.
3365         * java/java-tree.h (enum java_tree_code): Remove.
3366         * java/lang.c (tree_code_type): Remove.
3367         (tree_code_length, tree_code_name): Remove.
3368         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
3369         * objc/objc-act.h (enum objc_tree_code): Remove.
3370         * objc/objc-lang.c (tree_code_type): Remove.
3371         (tree_code_length, tree_code_name): Remove.
3372         * objcp/objcp-lang.c (tree_code_type): Remove.
3373         (tree_code_length, tree_code_name): Remove.
3374         * ada/ada-tree.h (enum gnat_tree_code): Remove.
3375         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
3376         * ada/misc.c (tree_code_type): Remove.
3377         (tree_code_length, tree_code_name): Remove.
3378
3379 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3380
3381         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
3382         the grand_bitmap_obstack.
3383
3384 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3385
3386         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
3387         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
3388         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3389         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
3390         move_stmt_r, new_label_mapper): Likewise.
3391         * tree-complex.c (cvc_lookup): Likewise.
3392         * tree-dfa.c (create_function_ann): Likewise.
3393         * tree-dump.c (dump_register): Likewise.
3394         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
3395         find_phi_replacement_condition): Likewise.
3396         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
3397         tree_function_versioning): Likewise.
3398         * tree-into-ssa.c (cmp_dfsnum): Likewise.
3399         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
3400         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
3401         get_nonlocal_debug_decl, convert_nonlocal_reference,
3402         convert_nonlocal_omp_clauses, get_local_debug_decl,
3403         convert_local_reference, convert_local_omp_clauses,
3404         convert_nl_goto_reference, convert_nl_goto_receiver,
3405         convert_tramp_reference, convert_call_expr): Likewise.
3406         * tree-outof-ssa.c (contains_tree_r): Likewise.
3407         * tree-parloops.c (reduction_phi, initialize_reductions,
3408         eliminate_local_variables_1, add_field_for_reduction,
3409         add_field_for_name, create_phi_for_local_result,
3410         create_call_for_reduction_1, create_loads_for_reductions,
3411         create_stores_for_reduction, create_loads_and_stores_for_name):
3412         Likewise.
3413         * tree-phinodes.c (allocate_phi_node): Likewise.
3414         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
3415         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3416         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
3417         * tree-ssa-coalesce.c (compare_pairs): Likewise.
3418         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
3419         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
3420         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
3421         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
3422         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
3423         vn_nary_op_insert): Likewise.
3424         * tree-ssa.c (redirect_edge_var_map_add,
3425         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
3426         * tree-vectorizer.c (vectorize_loops): Likewise.
3427         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
3428         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
3429         tree_cons_stat, build1_stat, build_variant_type_copy,
3430         decl_init_priority_lookup, decl_fini_priority_lookup,
3431         decl_priority_info, decl_restrict_base_lookup,
3432         decl_restrict_base_insert, decl_debug_expr_lookup,
3433         decl_debug_expr_insert, decl_value_expr_lookup,
3434         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
3435         type_hash_add, get_file_function_name, tree_check_failed,
3436         tree_not_check_failed, tree_range_check_failed,
3437         omp_clause_range_check_failed, build_omp_clause,
3438         build_vl_exp_stat): Likewise.
3439         * value-prof.c (gimple_histogram_value,
3440         gimple_duplicate_stmt_histograms): Likewise.
3441         * var-tracking.c (attrs_list_insert, attrs_list_copy,
3442         unshare_variable, variable_union_info_cmp_pos, variable_union,
3443         dataflow_set_different_1, dataflow_set_different_2,
3444         vt_find_locations, variable_was_changed, set_variable_part,
3445         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3446         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
3447         section_entry_hash, object_block_entry_eq,
3448         object_block_entry_hash, create_block_symbol,
3449         initialize_cold_section_name, default_function_rodata_section,
3450         strip_reg_name, set_user_assembler_name, const_desc_eq,
3451         build_constant_desc, output_constant_def, lookup_constant_def,
3452         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
3453         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
3454         default_internal_label): Likewise.
3455         * varray.c (varray_init, varray_grow): Likewise.
3456         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
3457
3458 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
3459
3460         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
3461         operators for "test" insn.  Macroize insn using SWI mode macro.
3462         (*jcc_fused_2): Ditto.
3463         (*jcc_fused_3): Macroize insn using SWI mode macro.
3464         (*jcc_fused_4): Ditto.
3465
3466 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
3467
3468         * tree-ssa-pre.c: Fix typo in comment.
3469         (init_antic, fini_antic): Add explicit funtions for
3470         initializing and deinitializing ANTIC and AVAIL sets.
3471         (create_expression_by_pieces): Fix typo in comment.
3472         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
3473         (execute_pre): Eventually dump details about ANTIC_IN.
3474
3475 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3476
3477         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
3478         * gcc.c (translate_options, init_spec, store_arg, read_specs,
3479         add_to_obstack, file_at_path, find_a_file, execute,
3480         add_preprocessor_option, add_assembler_option, add_linker_option,
3481         process_command, insert_wrapper, do_option_spec, do_self_spec,
3482         spec_path, do_spec_1, is_directory, main, used_arg,
3483         getenv_spec_function): Likewise.
3484         * tlink.c (symbol_hash_lookup, file_hash_lookup,
3485         demangled_hash_lookup, symbol_push, file_push, frob_extension):
3486         Likewise.
3487
3488 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3489
3490         * doc/rtl.texi: Updated subreg section.
3491
3492 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
3493
3494         PR c++/36523
3495         * cgraphunit.c (cgraph_process_new_functions): Don't clear
3496         node->needed and node->reachable.
3497         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
3498         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
3499         (expand_task_call): Don't call expand_task_copyfn.
3500         (expand_task_copyfn): Renamed to...
3501         (finalize_task_copyfn): ... this.
3502
3503 2008-06-19  Jan Hubicka  <jh@suse.cz>
3504
3505         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
3506         clobbering framepointer.
3507
3508 2008-06-19  Jan Hubicka  <jh@suse.cz>
3509
3510         * tree-optimize.c (execute_early_local_optimizations): Set
3511         cgraph_state only at first invocation.
3512
3513 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3514
3515         * system.h (-Wc++-compat): Activate as a warning, no an error.
3516
3517 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3518
3519         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
3520         instead of "#" in insn asm template.
3521         (*jcc_fused_2): Ditto.
3522
3523 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3524
3525         * config/i386/i386.h (ix86_tune_indices)
3526         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
3527         (TARGET_FUSE_CMP_AND_BRANCH): New define.
3528         * config/i386/i386.md (*jcc_fused_1): New insn pattern
3529         (*jcc_fused_2): Ditto.
3530         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
3531         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
3532         (print operand): Handle 'E' and 'e' code.
3533
3534 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
3535
3536         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
3537         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3538         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3539
3540 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
3541
3542         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
3543         node->decl.
3544         (cgraph_expand_function): Use local copy of decl.
3545         (cgraph_expand_all_functions): Remove redundant initialization of
3546         order_pos.
3547         (cgraph_optimize): Reword internal_error message.
3548
3549 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
3550
3551         * arm-protos.h (arm_return_in_memory): Remove public
3552         arm_return_in_memory() prototype.
3553         * arm.c (arm_return_in_memory): Add static prototype, add target
3554         hook macro, change definition and comments.
3555         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
3556
3557 2008-06-19  Ben Elliston  <bje@au.ibm.com>
3558
3559         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
3560         real.c: Remove references to IEEE 754R.
3561         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
3562         * doc/libgcc.texi (Decimal float library routines): Likewise.
3563
3564 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3565
3566         * targhooks.h (struct gcc_target): New member unwind_word_mode.
3567         (default_unwind_word_mode): Add prototype.
3568         * targhooks.c (default_unwind_word_mode): New function.
3569         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
3570         instead of word_mode.
3571         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
3572         (TARGET_INITIALIZER): Use it.
3573
3574         * c-common.c (handle_mode_attribute): Support "unwind_word"
3575         mode attribute.
3576         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
3577
3578         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
3579         word_mode to access SjLj_Function_Context member "data".
3580         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
3581         conversion from targetm.eh_return_filter_mode () to
3582         targetm.unwind_word_mode () if they differ.
3583
3584         * builtin-types.def (BT_UNWINDWORD): New primitive type.
3585         (BT_FN_UNWINDWORD_PTR): New function type.
3586         (BT_FN_WORD_PTR): Remove.
3587         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
3588         * except.c (expand_builtin_extend_pointer): Convert pointer to
3589         targetm.unwind_word_mode () instead of word_mode.
3590
3591         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
3592         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
3593         (spu_unwind_word_mode): New function.
3594         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
3595         (TARGET_UNWIND_WORD_MODE): Define.
3596         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
3597
3598 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3599
3600         * config/spu/spu.c (reg_align): Remove.
3601         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
3602         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
3603         (spu_split_store): Likewise.
3604
3605 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
3606
3607         * gcc/tree-vn.c: Fix typo in comment.
3608
3609 2008-06-18  Jan Hubicka  <jh@suse.cz>
3610
3611         * cgraphunit.c (cgraph_optimize): Output debug info when doing
3612         toplevel reorder too.
3613
3614 2008-06-18  Jan Hubicka  <jh@suse.cz>
3615
3616         * c-opts.c (c_common_post_options): PCH is not compatible with
3617         no-unit-at-a-time.
3618         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
3619         -fno-toplevel-reorder by default now.
3620
3621 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3622
3623         PR documentation/30739
3624         * doc/install.texi (Prerequisites): Document dependency on awk.
3625
3626 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
3627             Ian Lance Taylor  <iant@google.com>
3628
3629         PR rtl-optimization/35604
3630         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
3631         only want to change jump destinations, not eventual label comparisons.
3632
3633 2008-06-16  Jan Hubicka  <jh@suse.cz>
3634
3635         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
3636         syntax errors.
3637         (cgraph_analyze_function): Likewise.
3638
3639 2008-06-16  Jan Hubicka  <jh@suse.cz>
3640
3641         * cgraph.h (cgraph_mark_if_needed): New function.
3642         * cgraphunit.c (cgraph_mark_if_needed): New function.
3643         * c-decl.c (duplicate_decl): Use it.
3644
3645 2008-06-16  Jan Hubicka  <jh@suse.cz>
3646
3647         * cgraph.c (cgraph_add_new_function): When in expansion state, do
3648         lowering.
3649
3650 2008-06-16  Jan Hubicka  <jh@suse.cz>
3651
3652         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
3653
3654 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
3655             Kazu Hirata  <kazu@codesourcery.com>
3656             Maxim Kuvyrkov  <maxim@codesourcery.com
3657
3658         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
3659         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
3660         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
3661         EXTRA_SPEC_FUNCTIONS.
3662         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
3663         (DRIVER_SELF_SPECS): Adjust.
3664         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
3665         * config/mips/st.h, config/mips/t-st: New.
3666         * config/mips/driver-native.c, config/mips/x-native: New.
3667         * doc/invoke.texi (MIPS): Document 'native' value for -march and
3668         -mtune options.
3669
3670 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3671
3672         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
3673         from it.
3674         (ISA_HAS_FP_CONDMOVE): New macro.
3675         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
3676         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
3677         (ISA_HAS_NMADD3_NMSUB3): New macro.
3678         * config/mips/mips.c (mips_rtx_costs): Update.
3679         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
3680         compiling for ST Loongson 2E/2F.
3681         (madd<mode>): Rename to madd4<mode>.  Update.
3682         (madd3<mode>): New pattern.
3683         (msub<mode>): Rename to msub4<mode>.  Update.
3684         (msub3<mode>): New pattern.
3685         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
3686         (nmadd3<mode>): New pattern.
3687         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
3688         (nmadd3<mode>_fastmath): New pattern.
3689         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
3690         (nmsub3<mode>): New pattern.
3691         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
3692         (nmsub3<mode>_fastmath): New pattern.
3693         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
3694
3695 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
3696
3697         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
3698         (DF_REF_INSN_INFO): New.
3699         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
3700         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
3701         with a NULL DF_REF_INSN_INFO.
3702         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
3703         DF_INSN_SET.
3704         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
3705         DF_INSN_INFO_EQ_USES): New.
3706         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
3707         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
3708         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
3709         * df-core.c: Update comment for above changes.
3710         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
3711         DF_INSN_UID_* macros.
3712         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
3713         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
3714         insn rtx.  Update all callers.
3715         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
3716         df_ref_create_structure, df_insn_refs_collect): Likewise.
3717         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
3718         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
3719         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
3720         macros to access the insn refs.
3721         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
3722         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
3723         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
3724         for accessing the refs.
3725         (try_fwprop_subst): Likewise.
3726         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
3727         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
3728         for accessing the refs.
3729         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
3730         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
3731         to look at the insn refs.
3732         (record_uses): Likewise.
3733         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
3734         function anymore.
3735         (mark_artificial_uses): Don't mark_insn for artificial refs.
3736         (mark_reg_rependencies): Likewise.
3737
3738         * doc/rtl.texi: Remove documentation of ADDRESSOF.
3739
3740 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3741
3742         * configure: Regenerate.
3743
3744 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3745
3746         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
3747         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3748         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3749
3750 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3751
3752         * config/avr/avr.c (avr_mcu_t): Add attiny167.
3753         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3754         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3755
3756 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3757
3758         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
3759         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3760         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3761
3762 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
3763
3764         * tree-ssa-sccvn.c: Fix format of comments.
3765
3766 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
3767
3768         * cgraph.c: Remove unneeded forward declarations of eq_node()
3769         and hash_node().
3770
3771 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
3772
3773         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
3774         REG_RETVAL notes.
3775         (see_update_relevancy): Likewise.
3776         * fwprop.c (try_fwprop_subst): Likewise.
3777         * rtlanal.c (noop_move_p): Likewise.
3778         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
3779         notes to non-existing libcall blocks.
3780         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
3781         Remove orig_set.
3782         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
3783         (dead_libcall_p): Remove.
3784         (delete_trivially_dead_insns): Don't use it.
3785         * web.c (union_defs): Remove comment about keeping nops.
3786         * gcse.c (hash_scan_insn): Don't take libcall pointers.
3787         (compute_hash_table_work): Don't track libcall notes.
3788         (do_local_cprop): Don't take libcall pointers.  Don't update
3789         libcall notes.
3790         (adjust_libcall_notes): Deleted.
3791         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
3792         ever have existed in the first place).
3793         (replace_store_insn): Don't try to remove libcall notes.
3794         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
3795         (resolve_reg_notes): Don't call them.
3796         (resolve_simple_move): Likewise.
3797         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
3798         Don't remove REG_RETVAL notes.
3799         * emit-rtl.c (try_split): Don't update libcall notes.
3800         (emit_copy_of_insn_after): Dito.
3801         * cselib.c (cselib_current_insn_in_libcall): Remove.
3802         (cselib_process_insn): Don't set/clear it.
3803         (new_elt_loc_list): Don't record it.
3804         (cselib_init): Don't initialize it.
3805         * cselib.c (struct elt_loc_list): Remove in_libcall field.
3806         * loop-invariant.c (find_invariant_insn): Don't look for libcall
3807         notes.
3808         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
3809         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
3810         (init_deps): Don't initialize it.
3811         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
3812         * combine.c (delete_noop_moves): Don't update libcall notes.
3813         (can_combine_p): Remove now pointless #if 0 block.
3814         (try_combine): Remove another obsolete #if 0 block.
3815         (distribute_notes): Don't distribute libcall notes.
3816         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
3817         * dce.c (libcall_dead_p): Remove.
3818         (delete_unmarked_insns): Don't handle libcall blocks.
3819         (preserve_libcall_for_dce): Remove.
3820         (prescan_insns_for_dce): Don't special-case libcall block insns.
3821         * reload1 (reload): Don't handle libcall notes. 
3822         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
3823         documentation.
3824
3825 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
3826
3827         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
3828         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3829         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3830
3831 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
3832
3833         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
3834         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3835         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3836
3837 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3838
3839         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
3840
3841 2008-06-16  Ira Rosen  <irar@il.ibm.com>
3842
3843         PR tree-optimization/36493
3844         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
3845         the arguments list. Use VECTYPE to create vector pointer.
3846         (vectorizable_store): Fail if accesses through a pointer to vectype
3847         do not alias the original memory reference operands.
3848         Call vect_create_data_ref_ptr without the removed argument.
3849         (vectorizable_load): Likewise.
3850         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
3851         removed argument.
3852
3853 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
3854
3855         PR target/36336
3856         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
3857         reg_equiv_constant.
3858
3859 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3860
3861         * config/mips/loongson2ef.md: New file.
3862         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3863         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3864         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3865         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
3866         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
3867         and loongson_2f.
3868         (loongson2ef.md): New include.
3869         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
3870         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
3871         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
3872         (loongson_gt_<mode>, loongson_extract_halfword)
3873         (loongson_insert_halfword_0, loongson_insert_halfword_2)
3874         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
3875         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
3876         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
3877         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
3878         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
3879         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
3880         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
3881         (vec_interleave_low<mode>): Define type attribute.
3882         * config/mips/mips.c (mips_ls2): New static variable.
3883         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
3884         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
3885         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
3886         Implement target scheduling hooks.
3887         (mips_multipass_dfa_lookahead): Update to handle tuning for
3888         Loongson 2E/2F.
3889         (mips_sched_init): Initialize data for Loongson scheduling.
3890         (mips_ls2_variable_issue): New static function.
3891         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
3892         Add sanity check.
3893         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
3894         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
3895         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
3896         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
3897         Handle ST Loongson 2E/2F cores.
3898         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
3899
3900 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3901
3902         * omp-low.c (extract_omp_for_data): Fix comment typo.
3903         * c.opt: Fix typo.
3904
3905 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3906
3907         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
3908         FIXME note about gcc/config.guess.
3909         * doc/options.texi (Option file format): Remove non-ASCII bytes.
3910         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
3911         * doc/cppopts.texi: Likewise.
3912         * doc/extend.texi: Likewise.
3913         * doc/gcc.texi: Likewise.
3914         * doc/gccint.texi: Likewise.
3915         * doc/gcov.texi: Likewise.
3916         * doc/gty.texi: Likewise.
3917         * doc/hostconfig.texi: Likewise.
3918         * doc/install.texi: Likewise.
3919         * doc/invoke.texi: Likewise.
3920         * doc/loop.texi: Likewise.
3921         * doc/makefile.texi: Likewise.
3922         * doc/md.texi: Likewise.
3923         * doc/passes.texi: Likewise.
3924         * doc/tm.texi: Likewise.
3925         * doc/tree-ssa.texi: Likewise.
3926         * doc/trouble.texi: Likewise.
3927
3928 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
3929             Nathan Sidwell  <nathan@codesourcery.com>
3930             Maxim Kuvyrkov  <maxim@codesourcery.com>
3931             Richard Sandiford  <rdsandiford@googlemail.com>
3932         
3933         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
3934         * config/mips/mips-protos.h (mips_expand_vector_init): New.
3935         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
3936         builtins.
3937         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
3938         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
3939         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
3940         V8QImode cases.
3941         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
3942         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
3943         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
3944         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
3945         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
3946         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
3947         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
3948         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
3949         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
3950         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
3951         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
3952         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
3953         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
3954         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
3955         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
3956         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
3957         (mips_builtins): Add Loongson builtins.
3958         (mips_loongson_2ef_bdesc): New.
3959         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
3960         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
3961         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
3962         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
3963         New.
3964         (mips_expand_vector_init): New.
3965         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
3966         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
3967         if appropriate.
3968         * config/mips/mips.md: Add unspec numbers for Loongson
3969         builtins.  Include loongson.md.
3970         (MOVE64): Include Loongson vector modes.
3971         (SPLITF): Include Loongson vector modes.
3972         (HALFMODE): Handle Loongson vector modes.
3973         * config/mips/loongson.md: New.
3974         * config/mips/loongson.h: New.
3975         * config.gcc: Add loongson.h header for mips*-*-* targets.
3976         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
3977
3978 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
3979
3980         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
3981         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
3982         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
3983         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
3984         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
3985         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
3986         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
3987         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
3988         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
3989         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
3990         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
3991         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
3992         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
3993         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
3994         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
3995         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
3996         Remove use_fixproto=yes.
3997         (ia64*-*-hpux*): Remove comment about using fixproto.
3998         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
3999
4000 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4001
4002         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
4003         library rebuilds.
4004         * configure: Regenerate.
4005
4006 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
4007
4008         PR middle-end/36520
4009         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
4010         before evaluating it.
4011
4012 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
4013
4014         PR c/36507
4015         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
4016         nested inline functions.
4017         (start_decl, start_function): Don't invert DECL_EXTERNAL
4018         for nested inline functions.
4019
4020 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
4021
4022         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
4023         splits that must be made for correctness.
4024
4025 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
4026
4027         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
4028         (AVAIL_NON_MIPS16): Likewise.
4029         (mips_builtin_description): Replace target_flags with a predicate.
4030         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
4031         (dspr2_32): New availability predicates.
4032         (MIPS_BUILTIN): New macro.
4033         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
4034         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
4035         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
4036         Replace the TARGET_FLAGS parameters with AVAIL parameters.
4037         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
4038         (mips_dsp_32only_bdesc): Merge into...
4039         (mips_builtins): ...this new array.
4040         (mips_bdesc_map, mips_bdesc_arrays): Delete.
4041         (mips_init_builtins): Update after above changes.
4042         (mips_expand_builtin_1): Merge into...
4043         (mips_expand_builtin): ...here and update after above changes.
4044
4045 2008-06-12  Paul Brook  <paul@codesourcery.com>
4046
4047         * longlong.h (__arm__): Define count_leading_zeros.
4048         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
4049         (clzsi2, clzdi2): New functions.
4050         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
4051         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
4052         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
4053         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
4054         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
4055         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
4056         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
4057         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
4058         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
4059         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
4060
4061 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
4062
4063         * config/m68k/m68k.c (m68k_tune_flags): New.
4064         (override_options): Compute m68k_tune_flags.
4065         (MULL_COST, MULW_COST): Update for various variants of CFV2.
4066         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
4067
4068 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4069
4070         PR middle-end/36506
4071         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
4072
4073 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4074
4075         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
4076         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
4077
4078 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4079
4080         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
4081         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
4082
4083 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4084
4085         PR middle-end/36506
4086         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
4087         reductions.
4088
4089 2008-06-12  Richard Guenther  <rguenther@suse.de>
4090
4091         PR tree-optimization/36345
4092         * tree-flow.h (struct ptr_info_def): Align escape_mask,
4093         add memory_tag_needed flag.
4094         (may_alias_p): Declare.
4095         * tree-ssa-alias.c (may_alias_p): Export.
4096         (set_initial_properties): Use memory_tag_needed flag.
4097         (update_reference_counts): Likewise.
4098         (reset_alias_info): Reset memory_tag_needed flag.
4099         (create_name_tags): Check memory_tag_needed flag.
4100         (dump_points_to_info_for): Dump it.
4101         * tree-ssa-structalias.c (struct variable_info): Remove
4102         directly_dereferenced flag.
4103         (new_var_info): Do not initialize it.
4104         (process_constraint_1): Do not set it.
4105         (update_alias_info): Set is_dereferenced flag.
4106         (set_uids_in_ptset): Use may_alias_p.
4107         (set_used_smts): Check memory_tag_needed flag.
4108         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
4109         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
4110         memory_tag_needed flag.
4111         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
4112         from broken design.
4113
4114 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
4115
4116         * config/i386/i386.c (ix86_compute_frame_layout): Disable
4117         red zone for w64 abi.
4118         (ix86_expand_prologue): Likewise.
4119         (ix86_force_to_memory): Likewise.
4120         (ix86_free_from_memory): Likewise.
4121
4122 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
4123
4124         PR target/36425
4125         * config/rs6000/rs6000.c (rs6000_override_options): Set
4126         rs6000_isel conditionally to the absence of comand line override.
4127         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4128         Remove duplicate rs6000_isel setting.
4129         * config/rs6000/eabispe.h: Ditto.
4130
4131 2008-06-11  Richard Guenther  <rguenther@suse.de>
4132
4133         * alias.c (get_alias_set): Use the element alias-set for arrays.
4134         (record_component_aliases): For arrays and vectors do nothing.
4135         * c-common.c (strict_aliasing_warning): Handle the cases
4136         of alias set zero explicitly.
4137         * Makefile.in (dfp.o-warn): Add -Wno-error.
4138
4139 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
4140
4141         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
4142         tune_32 tune_64.
4143         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
4144         tune_32 tune_64 to supported_defaults.  Allow values not
4145         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
4146         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
4147         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
4148         with_cpu_64 to generic for 64-bit-supporting configurations, not
4149         with_cpu.  Remove FIXMEs.
4150         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
4151         --with-arch-64, --with-tune-32, --with-tune-64): Document.
4152         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
4153         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
4154         arch_32 and arch_64.
4155
4156 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
4157             Olivier Hainque  <hainque@adacore.com>
4158
4159         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
4160         Use DECL_SIZE_UNIT to retrieve the size of the field.
4161
4162 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
4163
4164         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
4165         with function calls after declarations.  Lay out
4166         neon_float_type_node before further use.
4167
4168 2008-06-11  Richard Guenther  <rguenther@suse.de>
4169
4170         * tree-flow.h (may_point_to_global_var): Declare.
4171         * tree-ssa-alias.c (may_point_to_global_var): New function.
4172         * tree-ssa-sink.c (is_hidden_global_store): Use it.
4173
4174 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
4175
4176         * configure.ac: Teach that fido supports .debug_line.
4177         * configure: Regenerate.
4178
4179 2008-06-10  Tom Tromey  <tromey@redhat.com>
4180
4181         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
4182         debug hook.
4183
4184 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4185
4186         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
4187         (encode_decimal64, decode_decimal64, encode_decimal128,
4188         decode_decimal128): Reverse order of 32-bit parts of value if host
4189         and target endianness differ.
4190
4191 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
4192
4193         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
4194         Avoid division by 0.
4195         (tree_mod_pow2_value_transform): Likewise.
4196         (tree_ic_transform): Likewise.
4197         (tree_stringops_transform): Likewise.
4198         (tree_mod_subtract_transform): Likewise.
4199         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
4200         (copy_edges_for_bb): Likewise.
4201         (initialize_cfun): Likewise.
4202
4203 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4204
4205         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
4206         nonmemory_operand. Add "N" operand constraint.
4207         (*btsi): Ditto.
4208         (*jcc_btdi_mask_rex64): New instruction and split pattern.
4209         (*jcc_btsi_mask): Ditto.
4210         (*jcc_btsi_mask_1): Ditto.
4211
4212 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4213
4214         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
4215         TYPE_CANONICAL for copied element type.
4216
4217 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4218
4219         PR target/36473
4220         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
4221         Add m_CORE2 and m_GENERIC.
4222         * config/i386/predicates.md (bt_comparison_operator): New predicate.
4223         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
4224         (*btsi): Ditto.
4225         (*jcc_btdi_rex64): New instruction and split pattern.
4226         (*jcc_btsi): Ditto.
4227         (*jcc_btsi_1): Ditto.
4228         (*btsq): Fix Intel asm dialect operand order.
4229         (*btrq): Ditto.
4230         (*btcq): Ditto.
4231
4232 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
4233
4234         PR middle-end/36447
4235         * simplify-rtx.c (simplify_subreg): Add check for shift count 
4236         greater than size.
4237
4238 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
4239
4240         * doc/md.texi: Synchronize with later constraints.md change.
4241         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
4242         with a C implementation.
4243         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
4244         MFLO handling.
4245         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
4246         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
4247         when moving to and from MD_REGNUM.
4248         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
4249         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
4250         Handle byte and halfword moves.
4251         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
4252         separately.
4253         * config/mips/constraints.md (h): Turn into NO_REGS.
4254         (l, x): Update documentation.
4255         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
4256         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
4257         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
4258         (HILO): New mode iterator.
4259         (MOVE128): Add TI.
4260         (any_div): New code iterator.
4261         (u): Extend code attribute to div and udiv.
4262         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
4263         d_operand in the splitters.  Remove redundant CONST_INT checks.
4264         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
4265         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
4266         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
4267         accordingly, using normal moves instead of unspecs to move LO into
4268         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
4269         (<u>mulsidi3): Handle expansion in C code.
4270         (<u>mulsidi3_32bit_internal): Rename to...
4271         (<u>mulsidi3_32bit): ...this.
4272         (<u>mulsidi3_32bit_r4000): Fix insn separator.
4273         (*<u>mulsidi3_64bit): Rename to...
4274         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
4275         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
4276         to set LO and HI to the multiplication result.  Use a normal move
4277         for MFLO and an unspec for MFHI.
4278         (*<u>mulsidi3_64bit_parts): Replace with...
4279         (<u>mulsidi3_64bit_hilo): ...this new instruction.
4280         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
4281         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
4282         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
4283         instead of HI.  Split the instruction into a separate multiplication
4284         and MFHI if !TARGET_FIX_R4000.
4285         (<su>muldi3_highpart): Likewise.
4286         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
4287         and the "=h" clobber.
4288         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
4289         (<u>mulditi3): New expander.
4290         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
4291         (madsi): Remove "=h" clobber.
4292         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
4293         Force the modulus result to be a GPR and split the instruction into
4294         a division followed by an MFHI after reload.
4295         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
4296         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
4297         the MIPS16 HIGH define_split.
4298         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
4299         of acc<->gpr moves to "multi".
4300         (*movdi_64bit): Replace the single "x" alternative with
4301         alternatives for moving into and out of "a".
4302         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
4303         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
4304         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
4305         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
4306         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
4307         (movti): New expander.
4308         (*movti, *movti_mips16): New insns.
4309         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
4310         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
4311         (mthi<GPR:mode>_<HILO:mode>): Likewise.
4312         * config/mips/predicates.md (fpr_operand): Delete.
4313         (d_operand): New predicate.
4314
4315 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
4316
4317         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
4318         failure on some Bourne shells.
4319         (x86_64-*-*): Ditto.
4320
4321 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
4322
4323         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
4324
4325 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4326
4327         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
4328         (sparc-sun-solaris2*): Likewise.
4329
4330 2008-06-09  Arnaud Charlet  <charlet@adacore.com
4331
4332         * doc/install.texi: Update requirements to build the Ada compiler.
4333
4334 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
4335
4336         * df-scan.c (struct df_scan_problem_data): Remove the
4337         mw_link_pool alloc pool.
4338         (df_scan_free_internal): Don't free it.
4339         (df_scan_alloc): Don't allocate it.
4340         * df.h (struct df_link): Update comment.
4341
4342 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
4343
4344         * except.h: Correct checks for when SJLJ exceptions must be used.
4345
4346 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4347
4348         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
4349         default.
4350         
4351 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
4352
4353         PR tree-optimization/36218
4354         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
4355         configure for the build system.
4356         (BUILD_LDFLAGS): Define.
4357         * configure: Regenerate.
4358         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
4359
4360 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
4361
4362         PR target/36424
4363         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
4364         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
4365         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
4366
4367 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
4368
4369         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
4370
4371 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
4372
4373         * config.gcc (Obsolete configurations): Remove list of
4374         configurations.
4375         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
4376         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
4377         targets matched by those patterns.
4378         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
4379         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
4380         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
4381         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
4382         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
4383         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
4384         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
4385         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
4386         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
4387         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
4388         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
4389         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
4390         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
4391         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
4392         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
4393         Make code for Solaris 7 and greater unconditional for Solaris.
4394         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
4395         Remove --with-* handling.
4396         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
4397         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
4398         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
4399         LINK_OS_WINDISS_SPEC): Remove.
4400         * config/rs6000/sysv4.opt (mwindiss): Remove.
4401         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
4402         * configure: Regenerate.
4403         * doc/cpp.texi: Don't mention BeOS.
4404         * doc/extend.texi (interrupt): Don't mention MS1.
4405         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
4406         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
4407         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
4408         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
4409         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
4410         Remove.
4411         * doc/invoke.texi (MT Options): Remove.
4412         (-mwindiss): Remove.
4413         (CRIS Options): Remove cris-axis-aout references.
4414         (HPPA Options): Don't mention hppa1.1-*-pro.
4415         * doc/md.texi: (MorphoTech family): Remove.
4416         * libgcc2.c: Don't handle UWIN.
4417         * config/alpha/t-unicosmk: Remove.
4418         * config/alpha/unicosmk.h: Remove.
4419         * config/arm/kaos-arm.h: Remove.
4420         * config/arm/kaos-strongarm.h: Remove.
4421         * config/arm/strongarm-coff.h: Remove.
4422         * config/arm/strongarm-elf.h: Remove.
4423         * config/arm/strongarm-pe.h: Remove.
4424         * config/arm/t-strongarm-pe: Remove.
4425         * config/arm/t-xscale-coff: Remove.
4426         * config/arm/t-xscale-elf: Remove.
4427         * config/arm/xscale-coff.h: Remove.
4428         * config/arm/xscale-elf.h: Remove.
4429         * config/chorus.h: Remove.
4430         * config/cris/aout.h: Remove.
4431         * config/cris/aout.opt: Remove.
4432         * config/cris/t-aout: Remove.
4433         * config/i386/beos-elf.h: Remove.
4434         * config/i386/kaos-i386.h: Remove.
4435         * config/i386/ptx4-i.h: Remove.
4436         * config/i386/sco5.h: Remove.
4437         * config/i386/sco5.opt: Remove.
4438         * config/i386/sysv4-cpp.h: Remove.
4439         * config/i386/sysv5.h: Remove.
4440         * config/i386/t-beos: Remove.
4441         * config/i386/t-sco5: Remove.
4442         * config/i386/t-uwin: Remove.
4443         * config/i386/uwin.asm: Remove.
4444         * config/i386/uwin.h: Remove.
4445         * config/kaos.h: Remove.
4446         * config/mips/windiss.h: Remove.
4447         * config/mt: Remove directory.
4448         * config/pa/pa-osf.h: Remove.
4449         * config/pa/pa-pro-end.h: Remove.
4450         * config/pa/t-pro: Remove.
4451         * config/ptx4.h: Remove.
4452         * config/rs6000/beos.h: Remove.
4453         * config/rs6000/kaos-ppc.h: Remove.
4454         * config/rs6000/t-beos: Remove.
4455         * config/rs6000/windiss.h: Remove.
4456         * config/sh/kaos-sh.h: Remove.
4457         * config/sol2-6.h: Remove.
4458         * config/sparc/sol26-sld.h: Remove.
4459         * config/sparc/sysv4-only.h: Remove.
4460         * config/vax/bsd.h: Remove.
4461         * config/vax/t-memfuncs: Remove.
4462         * config/vax/ultrix.h: Remove.
4463         * config/vax/vaxv.h: Remove.
4464         * config/windiss.h: Remove.
4465
4466 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
4467
4468         PR rtl-optimization/36438
4469         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
4470         for vector shifts with constant scalar shift operands.
4471
4472 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
4473
4474         * doc/invoke.texi: Document -march=xlr.
4475         * config/mips/xlr.md: New file.
4476         * config/mips/mips.md: Include it.
4477         (cpu): Add "xlr".
4478         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
4479         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
4480         (mips_rtx_cost_data): Likewise.
4481
4482 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
4483
4484         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
4485         PRE_INC and PRE_DEC cases.
4486
4487 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4488
4489         PR rtl-optimization/36419
4490         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
4491         the emitting jump insn.
4492
4493         PR target/36362
4494         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
4495         is not bool, boolify the whole *expr_p and convert to the desired type.
4496
4497 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4498
4499         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
4500         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
4501         Add omp_private_outer_ref hook, add another argument to
4502         omp_clause_default_ctor hook.
4503         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
4504         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
4505         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
4506         hook_tree_tree_tree_tree_null.
4507         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
4508         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
4509         * hooks.c (hook_tree_tree_tree_tree_null): New function.
4510         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
4511         * tree.def (OMP_TASK): New tree code.
4512         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
4513         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
4514         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
4515         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
4516         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
4517         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
4518         OMP_CLAUSE_COLLAPSE_EXPR): Define.
4519         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4520         (OMP_DIRECTIVE_P): Add OMP_TASK.
4521         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
4522         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
4523         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
4524         and OMP_CLAUSE_UNTIED entries.
4525         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
4526         num_ops to 2.
4527         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4528         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
4529         * tree-pretty-print.c (dump_omp_clause): Handle
4530         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
4531         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4532         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
4533         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
4534         warning about unsigned iterators.  Change decl/init/cond/incr
4535         arguments to TREE_VECs, check arguments for all collapsed loops.
4536         (c_finish_omp_taskwait): New function.
4537         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
4538         ws_clauses.
4539         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
4540         default_function_array_conversion on init.  Add par_clauses argument.
4541         If decl is present in parallel's lastprivate clause, change it to
4542         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
4543         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
4544         collapse count in clauses.
4545         (c_parser_omp_for, c_parser_omp_parallel): Adjust
4546         c_parser_omp_for_loop callers.
4547         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
4548         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
4549         (c_parser_omp_clause_name): Handle collapse and untied clauses.
4550         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
4551         functions.
4552         (c_parser_omp_clause_schedule): Handle schedule(auto).
4553         Include correct location in the error message.
4554         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
4555         and PRAGMA_OMP_CLAUSE_UNTIED.
4556         (OMP_TASK_CLAUSE_MASK): Define.
4557         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
4558         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
4559         * tree-nested.c (convert_nonlocal_omp_clauses,
4560         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
4561         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
4562         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4563         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
4564         OMP_CLAUSE_DECL.
4565         (conver_nonlocal_reference, convert_local_reference,
4566         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
4567         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
4568         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
4569         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
4570         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
4571         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
4572         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
4573         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
4574         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4575         OMP_CLAUSE_UNTIED.
4576         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
4577         * c-common.h (c_finish_omp_taskwait): New prototype.
4578         * gimple-low.c (lower_stmt): Handle OMP_TASK.
4579         * tree-parloops.c (create_parallel_loop): Create 1 entry
4580         vectors for OMP_FOR_{INIT,COND,INCR}.
4581         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4582         (make_edges): Handle OMP_TASK.
4583         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
4584         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4585         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
4586         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
4587         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
4588         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4589         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4590         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
4591         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
4592         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
4593         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
4594         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
4595         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
4596         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
4597         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
4598         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
4599         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
4600         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
4601         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
4602         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
4603         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
4604         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
4605         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
4606         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
4607         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
4608         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
4609         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
4610         original iterator is present in lastprivate clause or if
4611         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
4612         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4613         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
4614         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
4615         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
4616         if it is set, lookup var in outer contexts too.  Handle
4617         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
4618         to be implicitly determined firstprivate for task regions.
4619         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
4620         if it is set, lookup var in outer contexts too.  Set
4621         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
4622         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
4623         OMP_CLAUSE_UNTIED.  Take region_type as last argument
4624         instead of in_parallel and in_combined_parallel.
4625         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
4626         Adjust callers.
4627         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
4628         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
4629         (new_omp_context): Set default_kind to
4630         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
4631         (omp_region_type): New enum.
4632         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
4633         fields, add region_type.
4634         (new_omp_context): Take region_type as argument instead of is_parallel
4635         and is_combined_parallel.
4636         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
4637         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
4638         ctx->is_combined_parallel checks.
4639         (gimplify_omp_task): New function.
4640         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4641         OMP_CLAUSE_UNTIED.
4642         * omp-low.c (extract_omp_for_data): Use schedule(static)
4643         for schedule(auto).  Handle pointer and unsigned iterators.
4644         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
4645         Add loops argument.  Extract data for collapsed OMP_FOR loops.
4646         (expand_parallel_call): Assert sched_kind isn't auto,
4647         map runtime schedule to index 3.
4648         (struct omp_for_data_loop): New type.
4649         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
4650         Add loop, loops, collapse and iter_type fields.
4651         (workshare_safe_to_combine_p): Disallow combined for if
4652         iter_type is unsigned long long.  Don't combine collapse > 1 loops
4653         unless all bounds and steps are constant.  Adjust extract_omp_for_data
4654         caller.
4655         (expand_omp_for_generic): Handle pointer, unsigned and long long
4656         iterators.  Handle collapsed OMP_FOR loops.  Adjust
4657         for struct omp_for_data changes.  If libgomp function doesn't return
4658         boolean_type_node, add comparison of the return value with 0.
4659         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
4660         pointer, unsigned and long long iterators.  Adjust for struct
4661         omp_for_data changes.
4662         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
4663         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
4664         unsigned long long.  Allocate loops array, pass it to
4665         extract_omp_for_data.  For collapse > 1 loops use always
4666         expand_omp_for_generic.
4667         (omp_context): Add sfield_map and srecord_type fields.
4668         (is_task_ctx, lookup_sfield): New functions.
4669         (use_pointer_for_field): Use is_task_ctx helper.  Change first
4670         argument's type from const_tree to tree.  Clarify comment.
4671         In OMP_TASK disallow copy-in/out sharing.
4672         (build_sender_ref): Call lookup_sfield instead of lookup_field.
4673         (install_var_field): Add mask argument.  Populate both record_type
4674         and srecord_type if needed.
4675         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
4676         in srecord_type.
4677         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
4678         and DECL_FIELD_OFFSET.
4679         (scan_sharing_clauses): Adjust install_var_field callers.  For
4680         firstprivate clauses on explicit tasks allocate the var by value in
4681         record_type unconditionally, rather than by reference.
4682         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
4683         Use is_taskreg_ctx instead of is_parallel_ctx.
4684         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4685         (create_omp_child_function_name): Add task_copy argument, use
4686         *_omp_cpyfn* names if it is true.
4687         (create_omp_child_function): Add task_copy argument, if true create
4688         *_omp_cpyfn* helper function.
4689         (scan_omp_parallel): Adjust create_omp_child_function callers.
4690         Rename parallel_nesting_level to taskreg_nesting_level.
4691         (scan_omp_task): New function.
4692         (lower_rec_input_clauses): Don't run constructors for firstprivate
4693         explicit task vars which are initialized by *_omp_cpyfn*.  
4694         Pass outer var ref to omp_clause_default_ctor hook if
4695         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
4696         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
4697         OMP_CLAUSE_REDUCTION_INIT.
4698         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
4699         avoid duplicate setting of fields.  Handle
4700         OMP_CLAUSE_PRIVATE_OUTER_REF.
4701         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
4702         copy-out if TREE_READONLY, only copy-in.
4703         (expand_task_copyfn): New function.
4704         (expand_task_call): New function.
4705         (struct omp_taskcopy_context): New type.
4706         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
4707         New functions.
4708         (lower_omp_parallel): Rename to...
4709         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
4710         Call create_task_copyfn if srecord_type is needed.  Adjust
4711         sender_decl type.
4712         (task_shared_vars): New variable.
4713         (check_omp_nesting_restrictions): Warn if work-sharing,
4714         barrier, master or ordered region is closely nested inside OMP_TASK.
4715         Add warnings for barrier if closely nested inside of work-sharing,
4716         ordered, or master region.
4717         (scan_omp_1): Call check_omp_nesting_restrictions even for
4718         GOMP_barrier calls.  Rename parallel_nesting_level to
4719         taskreg_nesting_level.  Handle OMP_TASK.
4720         (lower_lastprivate_clauses): Even if some lastprivate is found on a
4721         work-sharing construct, continue looking for them on parent parallel
4722         construct.
4723         (lower_omp_for_lastprivate): Add lastprivate clauses
4724         to the beginning of dlist rather than end.  Adjust for struct
4725         omp_for_data changes.
4726         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
4727         not after it.  Handle collapsed OMP_FOR loops, adjust for
4728         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
4729         (get_ws_args_for): Adjust extract_omp_for_data caller.
4730         (scan_omp_for): Handle collapsed OMP_FOR
4731         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4732         (lower_omp_single_simple): If libgomp function doesn't return
4733         boolean_type_node, add comparison of the return value with 0.
4734         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
4735         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
4736         (parallel_nesting_level): Rename to...
4737         (taskreg_nesting_level): ... this.
4738         (is_taskreg_ctx): New function.
4739         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
4740         of is_parallel_ctx.
4741         (execute_lower_omp): Rename parallel_nesting_level to
4742         taskreg_nesting_level.
4743         (expand_omp_parallel): Rename to...
4744         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
4745         Call omp_task_call for OMP_TASK regions.
4746         (expand_omp): Adjust caller, handle OMP_TASK.
4747         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
4748
4749         * bitmap.c (bitmap_default_obstack_depth): New variable.
4750         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
4751         if argument is NULL and bitmap_default_obstack is already initialized.
4752         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
4753         at the end.
4754         * matrix-reorg.c (matrix_reorg): Likewise.
4755
4756 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
4757
4758         * config/i386/i386.md (*indirect_jump): Macroize using P
4759         mode iterator.  Remove !TARGET_64BIT from insn constraints.
4760         (*tablejump_1): Ditto.
4761         (*indirect_jump_rex64): Remove insn pattern.
4762         (*tablejump_1_rex64): Ditto.
4763         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
4764         and eh_return_si insn patterns.
4765
4766 2008-06-06  Richard Guenther  <rguenther@suse.de>
4767
4768         * tree-ssa-structalias.c (merge_smts_into): Remove.
4769         (find_what_p_points_to): Do not bother to compute the
4770         points-to set for pt_anything pointers.
4771         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
4772         for pt_anything pointers is ok.
4773
4774 2008-06-06  Jan Hubicka  <jh@suse.cz>
4775
4776         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
4777
4778 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4779
4780         * cgraph.c: Fix typos in comments.
4781         (cgraph_availability_names): Fix string typo.
4782         * fold-const.c: Fix typos in comments.
4783         (fold_binary): Fix typo in warning.
4784         * genautomata.c: Fix typos in comments.
4785         (check_presence_pattern_sets): Fix typo in local variable.
4786         (output_description): Fix typo in output.
4787         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
4788         * hwint.h: Likewise.
4789         * matrix-reorg.c (check_allocation_function): Likewise.
4790         * omega.c (smooth_weird_equations): Likewise.
4791         * auto-inc-dec.c: Fix typos in comments.
4792         * bb-reorder.c: Likewise.
4793         * builtins.c: Likewise.
4794         * c-common.c: Likewise.
4795         * c-cppbuiltin.c: Likewise.
4796         * c-parser.c: Likewise.
4797         * c-pretty-print.c: Likewise.
4798         * cfgcleanup.c: Likewise.
4799         * cfgexpand.c: Likewise.
4800         * cfghooks.c: Likewise.
4801         * cfglayout.c: Likewise.
4802         * cfgloopmanip.c: Likewise.
4803         * cgraphunit.c: Likewise.
4804         * coverage.c: Likewise.
4805         * dbxout.c: Likewise.
4806         * df-byte-scan.c: Likewise.
4807         * df-core.c: Likewise.
4808         * df-problems.c: Likewise.
4809         * df-scan.c: Likewise.
4810         * dfp.c: Likewise.
4811         * dominance.c: Likewise.
4812         * domwalk.c: Likewise.
4813         * dse.c: Likewise.
4814         * dwarf2out.c: Likewise.
4815         * emit-rtl.c: Likewise.
4816         * et-forest.c: Likewise.
4817         * function.c: Likewise.
4818         * function.h: Likewise.
4819         * gcc.c: Likewise.
4820         * gcov-io.c: Likewise.
4821         * gcov.c: Likewise.
4822         * gcse.c: Likewise.
4823         * genattrtab.c: Likewise.
4824         * ggc-page.c: Likewise.
4825         * gimplify.c: Likewise.
4826         * gthr-lynx.h: Likewise.
4827         * haifa-sched.c: Likewise.
4828         * ipa-cp.c: Likewise.
4829         * ipa-inline.c: Likewise.
4830         * ipa-prop.h: Likewise.
4831         * ipa-pure-const.c: Likewise.
4832         * ipa-struct-reorg.c: Likewise.
4833         * ipa-struct-reorg.h: Likewise.
4834         * ipa-type-escape.c: Likewise.
4835         * ipa.c: Likewise.
4836         * loop-doloop.c: Likewise.
4837         * mips-tfile.c: Likewise.
4838         * mkmap-flat.awk: Likewise.
4839         * mkmap-symver.awk: Likewise.
4840         * modulo-sched.c: Likewise.
4841         * omp-low.c: Likewise.
4842         * optabs.c: Likewise.
4843         * optabs.h: Likewise.
4844         * opts.c: Likewise.
4845         * passes.c: Likewise.
4846         * postreload-gcse.c: Likewise.
4847         * postreload.c: Likewise.
4848         * predict.c: Likewise.
4849         * pretty-print.h: Likewise.
4850         * profile.c: Likewise.
4851         * protoize.c: Likewise.
4852         * ra-conflict.c: Likewise.
4853         * real.c: Likewise.
4854         * recog.c: Likewise.
4855         * regclass.c: Likewise.
4856         * regs.h: Likewise.
4857         * reload.c: Likewise.
4858         * rtl-error.c: Likewise.
4859         * rtlanal.c: Likewise.
4860         * scan.h: Likewise.
4861         * sched-rgn.c: Likewise.
4862         * see.c: Likewise.
4863         * stmt.c: Likewise.
4864         * target.h: Likewise.
4865         * tree-dfa.c: Likewise.
4866         * tree-eh.c: Likewise.
4867         * tree-flow-inline.h: Likewise.
4868         * tree-inline.c: Likewise.
4869         * tree-into-ssa.c: Likewise.
4870         * tree-loop-distribution.c: Likewise.
4871         * tree-nested.c: Likewise.
4872         * tree-parloops.c: Likewise.
4873         * tree-pass.h: Likewise.
4874         * tree-pretty-print.c: Likewise.
4875         * tree-profile.c: Likewise.
4876         * tree-scalar-evolution.c: Likewise.
4877         * tree-sra.c: Likewise.
4878         * tree-ssa-alias-warnings.c: Likewise.
4879         * tree-ssa-ccp.c: Likewise.
4880         * tree-ssa-coalesce.c: Likewise.
4881         * tree-ssa-dom.c: Likewise.
4882         * tree-ssa-dse.c: Likewise.
4883         * tree-ssa-forwprop.c: Likewise.
4884         * tree-ssa-live.c: Likewise.
4885         * tree-ssa-live.h: Likewise.
4886         * tree-ssa-loop-im.c: Likewise.
4887         * tree-ssa-loop-ivopts.c: Likewise.
4888         * tree-ssa-loop-niter.c: Likewise.
4889         * tree-ssa-loop-prefetch.c: Likewise.
4890         * tree-ssa-phiopt.c: Likewise.
4891         * tree-ssa-phiprop.c: Likewise.
4892         * tree-ssa-sccvn.c: Likewise.
4893         * tree-ssa-ter.c: Likewise.
4894         * tree-ssa-threadupdate.c: Likewise.
4895         * tree-ssa.c: Likewise.
4896         * tree-vect-analyze.c: Likewise.
4897         * tree-vect-transform.c: Likewise.
4898         * tree-vectorizer.c: Likewise.
4899         * tree-vn.c: Likewise.
4900         * tree-vrp.c: Likewise.
4901         * tree.c: Likewise.
4902         * tree.def: Likewise.
4903         * tree.h: Likewise.
4904         * unwind-dw2-fde.c: Likewise.
4905         * unwind.inc: Likewise.
4906         * value-prof.c: Likewise.
4907         * vmsdbgout.c: Likewise.
4908
4909 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
4910
4911         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
4912         always place FP constants in the TOC for TARGET_POWERPC64.
4913         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
4914
4915 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
4916
4917         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
4918         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
4919         enable for TARGET_E500_DOUBLE.
4920         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
4921         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
4922         floating-point modes like integer modes for E500 double.
4923         (rs6000_legitimate_offset_address_p): Likewise.
4924         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
4925         addressing for DDmode for E500 double.
4926         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
4927         modes as using 64-bits of registers for E500 double.
4928         (spe_build_register_parallel): Do not handle DDmode or TDmode.
4929         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
4930         specially for E500 double.
4931         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
4932         TDmode for E500 double.
4933         (rs6000_gimplify_va_arg): Only handle SDmode in registers
4934         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
4935         (rs6000_split_multireg_move): Do not handle TDmode specially for
4936         E500 double.
4937         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
4938         using 64-bit registers for E500 double.
4939         (emit_frame_save): Do not handle DDmode specially for E500 double.
4940         (gen_frame_mem_offset): Likewise.
4941         (rs6000_function_value): Do not call spe_build_register_parallel
4942         for DDmode or TDmode.
4943         (rs6000_libcall_value): Likewise.
4944         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
4945         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
4946         for E500 double.
4947
4948 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
4949
4950         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
4951         in comments.
4952
4953 2008-06-04  Junjie Gu <jgu@tensilica.com>
4954
4955         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
4956         comparison for frame pointers.
4957
4958 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
4959
4960         PR target/27386
4961         * config/avr/avr.h (PUSH_ROUNDING): Remove.
4962
4963 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
4964
4965         PR target/30243
4966         * builtins.c (expand_builtin_signbit): Don't take lowpart when
4967         register is already smaller or equal to required mode. 
4968
4969 2008-06-04  Xinliang David Li  <davidxl@google.com>
4970
4971         * tree-call-cdce.c: New file. 
4972         (cond_dead_built_in_calls): New static variable.
4973         (input_domain): New struct.
4974         (check_pow): New function.
4975         (check_builtin_call): Ditto.
4976         (check_target_format): Ditto.
4977         (is_call_dce_candidate): Ditto.
4978         (gen_one_condition): Ditto.
4979         (gen_conditions_for_domain): Ditto.
4980         (get_domain): Ditto.
4981         (gen_conditions_for_pow_cst_base): Ditto.
4982         (gen_conditions_for_pow_int_base): Ditto.
4983         (gen_conditions_for_pow): Ditto.
4984         (get_no_error_domain): Ditto.
4985         (gen_shrink_wrap_conditions): Ditto.
4986         (shrink_wrap_one_built_in_call): Ditto.
4987         (shink_wrap_conditional_dead_built_in_calls): Ditto.
4988         (tree_call_cdce): Ditto.
4989         (gate_call_cdce): Ditto.
4990         (pass_call_cdce): New gimple pass.
4991         * passes.c: (init_optimization_passes): New pass.
4992         * tree-pass.h: New pass declaration.
4993         * opts.c (decode_options): New flag setting.
4994         * common.opt: Add -ftree-builtin-call-dce flag.
4995         * Makefile.in: Add new source file.
4996         * tempvar.def: New tv_id.
4997         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
4998
4999 2008-06-04  Richard Guenther  <rguenther@suse.de>
5000
5001         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
5002         (is_call_clobbered): Always check var_ann->call_clobbered.
5003         (mark_call_clobbered): Always set var_ann->call_clobbered.
5004         (clear_call_clobbered): Always clear var_ann->call_clobbered.
5005         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
5006         (reset_alias_info): Clear call clobbering info on MTAGs and
5007         globals as well.
5008         (set_pt_anything): Set pt_global_mem.
5009         (create_tag_raw): Adjust comment.
5010         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
5011
5012 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
5013             Maxim Kuvyrkov  <maxim@codesourcery.com>
5014
5015         * config/m68k/m68k.opt (mxgot): New option.
5016         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
5017         (m68k_output_addr_const_extra): New.
5018         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
5019         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
5020         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
5021         * doc/invoke.texi (M680x0 Options): Document -mxgot.
5022
5023 2008-06-04  Richard Guenther  <rguenther@suse.de>
5024
5025         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
5026         negative or non-representable offsets.
5027
5028 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
5029
5030         * config/i386/i386.c (ix86_gen_leave): New.
5031         (ix86_gen_pop1): Likewise.
5032         (ix86_gen_add3): Likewise.
5033         (ix86_gen_sub3): Likewise.
5034         (ix86_gen_sub3_carry): Likewise.
5035         (ix86_gen_one_cmpl2): Likewise.
5036         (ix86_gen_monitor): Likewise.
5037         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
5038         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
5039         ix86_gen_one_cmpl2 and ix86_gen_monitor.
5040         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
5041         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
5042         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
5043         (ix86_expand_epilogue): Updated.
5044         (print_operand): Handle integer register operand for 'z'.
5045         (ix86_expand_strlensi_unroll_1): Likewise.
5046         (ix86_expand_strlen): Likewise.
5047         (ix86_expand_builtin): Likewise.
5048         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
5049         mov{q}/mov{l} and add{q}/add{l}.
5050
5051 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5052
5053         * config/i386/i386.md (P): New mode iterator.
5054         (SFmode push_operand splitter): Macroize DImode and SImode pushes
5055         using P mode iterator.
5056         (DFmode push_operand splitter): Ditto.
5057         (XFmode push_operand splitter): Ditto.
5058         (DFmode float_extend SFmode push_operand splitter): Ditto.
5059         (XFmode float_extend SFmode push_operand splitter): Do not generate
5060         SImode pushes for 64bit target.  Macroize Dimode and SImode
5061         pushes using P mode iterator.
5062         (XFmode float_extend DFmode push_operand splitter): Ditto.
5063
5064 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5065
5066         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
5067         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
5068         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
5069         return type to int.
5070         (ix86_call_abi_override): Remove check for call_used_regs.
5071
5072 2008-06-03  Richard Guenther  <rguenther@suse.de>
5073
5074         * tree-ssa-structalias.c (find_func_aliases): Add constraints
5075         for the lhs of calls if the return type contains pointers.
5076
5077 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5078
5079         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
5080         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
5081         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
5082         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
5083         of cfun and DEFAULT_ABI to deceide abi mode.
5084         (DEFAULT_ABI): New.
5085         (REG_PARM_STACK_SPACE): Removed.
5086         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
5087         (STACK_BOUNDARY): Use default target to deceide stack boundary.
5088         * config/i386/i386-protos.h (ix86_cfun_abi): New.
5089         (ix86_function_abi): Likewise.
5090         (ix86_function_type_abi): Likewise.
5091         (ix86_call_abi_override): Likewise.
5092         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
5093         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
5094         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
5095         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
5096         specific defines.
5097         (X86_64_REGPARM_MAX): New.
5098         (X86_64_SSE_REGPARM_MAX): New.
5099         (X64_REGPARM_MAX): New.
5100         (X64_SSE_REGPARM_MAX): New.
5101         (X86_32_REGPARM_MAX): New.
5102         (X86_32_SSE_REGPARM_MAX): New.
5103         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
5104         (ix86_function_regparm): Handle user calling abi.
5105         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
5106         by DEFAULT_ABI versus SYSV_ABI check.
5107         (ix86_reg_parm_stack_space): New.
5108         (ix86_function_type_abi): New.
5109         (ix86_call_abi_override): New.
5110         (ix86_function_abi): New.
5111         (ix86_cfun_abi): New.
5112         (init_cumulative_args): Call abi specific initialization.
5113         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
5114         (function_arg_64): Extend SSE_REGPARM_MAX check.
5115         (function_arg (): Remove TARGET_64BIT_MS_ABI.
5116         (ix86_pass_by_reference): Likewise.
5117         (ix86_function_value_regno_p): Likewise.
5118         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
5119         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
5120         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
5121         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
5122         (setup_incoming_varargs_64): Adjust regparm for call abi.
5123         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
5124         (ix86_va_start): Likewise.
5125         (ix86_gimplify_va_arg): Likewise.
5126         (ix86_expand_prologue): Likewise.
5127         (output_pic_addr_const): Likewise.
5128         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
5129         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
5130         (x86_output_mi_thunk): Likewise.
5131         (x86_function_profiler): Likewise.
5132         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
5133         (SYSV_ABI, MS_ABI): New constants.
5134         (DEFAULT_ABI): New.
5135         (init_regs): Add prototype of function in regclass.c file.
5136         (OVERRIDE_ABI_FORMAT): New.
5137         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
5138         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
5139         (OUTGOING_REG_PARM_STACK_SPACE): New.
5140         (ix86_reg_parm_stack_space): New prototype.
5141         (CUMULATIVE_ARGS): Add call_abi member.
5142         (machine_function): Add call_abi member.
5143         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
5144         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
5145
5146 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
5147
5148         PR target/34879
5149         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
5150         (avr_builtin_setjmp_frame_value): New function.
5151         * config/avr/avr.md (nonlocal_goto_receiver): Define.
5152         (nonlocal_goto): Define.
5153
5154 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
5155
5156         * config/mips/mips.c (mips_emit_loadgp): Return early if
5157         there is nothing do to, otherwise emit a blockage if
5158         !TARGET_EXPLICIT_RELOCS || crtl->profile.
5159         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
5160
5161 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5162
5163         * configure.ac: Drop unneeded backslash ending up in config.in.
5164         * acinclude.m4: Likewise.
5165         * config.in: Regenerate.
5166
5167 2008-05-26  Jan Hubicka  <jh@suse.cz>
5168
5169         * predict.c (maybe_hot_frequency_p): Break out of...
5170         (maybe_hot_bb_p): ... here.
5171         (maybe_hot_edge_p): New.
5172         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
5173         * basic-block.h (maybe_hot_edge_p): Declare.
5174
5175 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5176
5177         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
5178         (*cmpfp_<mode>_cc): Ditto.
5179         (*fp_jcc_8<mode>_387): Ditto.
5180         (*fop_<MODEF:mode>_2_i387): Ditto.
5181         (*fop_<MODEF:mode>_3_i387): Ditto.
5182         (*fop_xf_2_i387): Ditto.
5183         (*fop_xf_3_i387): Ditto.
5184
5185 2008-06-02  Tomas Bily  <tbily@suse.cz>
5186
5187         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5188
5189 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5190
5191         * config/mips/mips.c (mips_valid_offset_p): New function.
5192         (mips_valid_lo_sum_p): Likewise.
5193         (mips_classify_address): Use them.
5194         (mips_force_address): New function.
5195         (mips_legitimize_address): Use it.
5196         * config/mips/mips.md (MOVE128): New mode iterator.
5197         (movtf): Require TARGET_64BIT.  Remove empty strings.
5198         (*movtf_internal): Rename to...
5199         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
5200         of "R" and use {,fp}{load,store} attributes instead of "multi".
5201         Use a separate define_split.
5202         (*movtf_mips16): New pattern.
5203
5204 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5205
5206         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
5207         * config/mips/mips.c (mips_expand_before_return): New function.
5208         (mips_expand_epilogue): Call it.
5209         * config/mips/mips.md (return): Turn into a define_expand.
5210         (*return): New insn.
5211
5212 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5213
5214         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
5215         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
5216         functions.  Do not emit uses and clobbers of CONCATs; individually
5217         use and clobber their operands.
5218         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
5219         gen_clobber, emit_use and gen_use.
5220         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
5221         (expand_builtin_return): Likewise.
5222         * cfgbuild.c (count_basic_blocks): Likewise.
5223         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
5224         * explow.c (emit_stack_restore): Likewise.
5225         * expmed.c (extract_bit_field_1): Likewise.
5226         * expr.c (convert_move, emit_move_complex_parts): Likewise.
5227         (emit_move_multi_word, store_constructor): Likewise.
5228         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
5229         (thread_prologue_and_epilogue_insns): Likewise.
5230         * lower-subreg.c (resolve_simple_move): Likewise.
5231         * optabs.c (widen_operand, expand_binop): Likewise.
5232         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
5233         * reload.c (find_reloads): Likewise.
5234         * reload1.c (eliminate_regs_in_insn): Likewise.
5235         * stmt.c (expand_nl_goto_receiver): Likewise.
5236         * config/alpha/alpha.md (builtin_longjmp): Likewise.
5237         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
5238         * config/arm/arm.c (arm_load_pic_register): Likewise.
5239         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
5240         * config/arm/arm.md (untyped_return): Likewise.
5241         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
5242         * config/avr/avr.c (expand_prologue): Likewise.
5243         * config/bfin/bfin.c (do_unlink): Likewise.
5244         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
5245         * config/cris/cris.c (cris_expand_prologue): Likewise.
5246         * config/darwin.c (machopic_indirect_data_reference): Likewise.
5247         (machopic_legitimize_pic_address): Likewise.
5248         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
5249         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
5250         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
5251         (ix86_expand_convert_uns_didf_sse): Likewise.
5252         (ix86_expand_vector_init_general): Likewise.
5253         * config/ia64/ia64.md (eh_epilogue): Likewise.
5254         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
5255         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
5256         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
5257         (config/iq2000/iq2000.c): Likewise.
5258         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
5259         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
5260         (builtin_longjmp): Likewise.
5261         * config/mn10300/mn10300.md (call, call_value): Likewise.
5262         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
5263         * config/pdp11/pdp11.md (abshi2): Likewise.
5264         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
5265         * config/s390/s390.c (s390_emit_prologue): Likewise.
5266         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
5267         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
5268         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
5269         * config/sh/sh.c (prepare_move_operands): Likewise.
5270         (output_stack_adjust, sh_expand_epilogue): Likewise.
5271         (sh_set_return_address, sh_expand_t_scc): Likewise.
5272         * config/sparc/sparc.c (load_pic_register): Likewise.
5273         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
5274         * config/spu/spu.c (spu_expand_epilogue): Likewise.
5275         * config/v850/v850.c (expand_epilogue): Likewise.
5276
5277 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
5278
5279         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
5280         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
5281         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
5282         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
5283         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
5284         stack pointer register.
5285         (output_movhi): Remove code for interrupt specific writing to the 
5286         stack pointer register.
5287
5288 2008-05-31  Richard Guenther  <rguenther@suse.de>
5289
5290         PR tree-optimization/34244
5291         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
5292         (tree_expr_nonzero_warnv_p): Likewise.
5293         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
5294         ssa_name_nonnegative_p.
5295         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
5296         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
5297         not tree_expr_nonzero_warnv_p.
5298
5299         PR tree-optimization/36262
5300         Revert
5301         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
5302
5303         PR tree-optimization/34244
5304         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
5305         (record_numbers_of_iterations): New function.
5306         (execute_vrp): Cache the numbers of iterations of loops.
5307         * tree-scalar-evolution.c (scev_reset_except_niters):
5308         New function.
5309         (scev_reset): Use scev_reset_except_niters.
5310         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
5311
5312 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
5313
5314         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5315         __WORKAROUND_RETS when appropriate.
5316
5317 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5318
5319         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
5320         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
5321         mode iterator.
5322         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
5323         *fop_df_comm_sse insn patterns using MODEF mode iterator.
5324         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
5325         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
5326         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
5327         *fop_df_1_mixed insn patterns using MODEF mode iterator.
5328         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
5329         *fop_df_1_sse insn patterns using MODEF mode iterator.
5330         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
5331         *fop_df_1_i387 insn patterns using MODEF mode iterator.
5332         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
5333         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
5334         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
5335         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
5336         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
5337         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
5338         (*fop_xf_4_i387): Use <MODE> for mode attribute.
5339         (*fop_xf_5_i387): Ditto.
5340         (*fop_xf_6_i387): Ditto.
5341
5342 2008-05-30  Richard Guenther  <rguenther@suse.de>
5343
5344         * builtins.c (build_string_literal): Avoid generating
5345         a non-gimple_val result.
5346
5347 2008-05-30  DJ Delorie  <dj@redhat.com>
5348
5349         * exec-tool.in: Use an environment variable (private) instead of a
5350         file (shared) as a semaphore, so as to not break parallel builds.
5351
5352 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5353
5354         * optabs.c (maybe_encapsulate_block): Remove.
5355         (emit_libcall_block): Adjust accordingly.
5356         * optabs.h (maybe_encapsulate_block): Remove prototype.
5357
5358         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
5359         Don't use maybe_encapsulate_block.
5360
5361 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5362
5363         * config/rs6000/rs6000.c (rs6000_legitimize_address,
5364         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
5365         rtx is a SYMBOL_REF before calling get_pool_constant.
5366
5367 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
5368
5369         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
5370
5371 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
5372
5373         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
5374         rather than OS names to choose INO_T_EQ definition.
5375         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
5376         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
5377
5378 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
5379
5380         PR target/36348
5381         * config/darwin-f.c: New.
5382         * config/t-darwin: Added rule to build darwin-f.o.
5383         * config.gcc: Defined new variable, fortran_target_objs.
5384         (*-*-darwin*): Set fortran_target_objs.
5385         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
5386         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
5387         * configure: Regenerated.
5388
5389 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
5390
5391         PR target/35771
5392         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
5393         canonical type if needed.
5394
5395 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5396
5397         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
5398
5399 2008-05-29  Richard Guenther  <rguenther@suse.de>
5400
5401         PR tree-optimization/36343
5402         PR tree-optimization/36346
5403         PR tree-optimization/36347
5404         * tree-flow.h (clobber_what_p_points_to): Declare.
5405         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
5406         pointed-to variable is dereferenced is irrelevant to whether
5407         the pointer can access the pointed-to variable.
5408         (clobber_what_p_points_to): New function.
5409         * tree-ssa-alias.c (set_initial_properties): Use it.
5410         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
5411         call clobber check for NMTs.
5412
5413 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5414         
5415         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
5416         for printing gcov_type.
5417
5418 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5419
5420         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
5421         and the eh region information.
5422         * value-prof.c (gimple_move_stmt_histograms): New function.
5423         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
5424
5425 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
5426
5427         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
5428
5429 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
5430
5431         * value-prof.c (tree_ic_transform): Print counts.
5432         * tree-profile.c (tree_gen_ic_func_profiler):
5433         Clear __gcov_indreict_call_callee variable to avoid misattribution
5434         of the profile.
5435
5436 2008-05-28  Rafael Espindola  <espindola@google.com>
5437
5438         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
5439         invalid sharing.
5440
5441 2008-05-28  Richard Guenther  <rguenther@suse.de>
5442
5443         PR tree-optimization/36339
5444         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
5445         and clobbering code out of the loop.
5446
5447 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5448
5449         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
5450         letters defined.
5451
5452         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
5453         s390_contiguous_bitmask_p, s390_symref_operand_p,
5454         s390_check_symref_alignment, s390_reload_larl_operand,
5455         s390_reload_symref_address): New functions.
5456         (s390_branch_condition_mnemonic): Support compare and branch
5457         instructions.
5458         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
5459         and 'W' constraints.
5460         (s390_secondary_reload): Add secondary reloads for unaligned
5461         symbol refs or symbol refs to floating point or QI/TI mode
5462         integer values.
5463         (legitimate_address_p): Accept symbol references as addresses.
5464         (s390_expand_insv): Use rotate and insert selected bits
5465         instruction for insv when building for z10.
5466         (print_operand_address): Handle symbol ref addresses.
5467         (print_operand): Output modifier 'c' added for signed byte values.
5468         (s390_encode_section_info): Mark symbol refs with
5469         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
5470
5471         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
5472         (length attribute): RRF, RRR have 4 byte length.
5473         (FPALL, INTALL): New mode iterators added.
5474         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
5475         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
5476         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
5477         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
5478         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
5479         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
5480         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
5481         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
5482         instructions.
5483         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
5484         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
5485         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
5486         reload<INTALL:mode><P:mode>_toreg_z10,
5487         reload<FPALL:mode><P:mode>_tomem_z10,
5488         reload<FPALL:mode><P:mode>_toreg_z10,
5489         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
5490         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
5491         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
5492         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
5493         definition.
5494         (movmem, clrmem, cmpmem): New splitters added.
5495
5496         * config/s390/predicates.md (larl_operand): Use
5497         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
5498         SYMBOL_REF_ALIGN1_P.
5499         (s390_signed_integer_comparison,
5500         s390_unsigned_integer_comparison): New predicates.
5501
5502         * config/s390/s390-protos.h (s390_check_symref_alignment,
5503         s390_contiguous_bitmask_p, s390_reload_larl_operand,
5504         s390_reload_symref_address,
5505         s390_compare_and_branch_condition_mask): Prototypes added.
5506
5507         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
5508         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
5509         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
5510
5511 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5512
5513         * config/s390/s390.c (z10_cost): New cost function for z10.
5514         (s390_handle_arch_option, override_options): Support -march=z10 switch.
5515         (s390_issue_rate): Adjust issue rate for z10.
5516         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
5517         (processor_flags): Add PF_Z10.
5518         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
5519         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
5520         * gcc/config.gcc: Add z10.
5521
5522 2008-05-28  Richard Guenther  <rguenther@suse.de>
5523
5524         PR tree-optimization/36291
5525         * tree-flow. h (struct gimple_df): Remove var_anns member.
5526         * tree-flow-inline.h (gimple_var_anns): Remove.
5527         (var_ann): Simplify.
5528         * tree-dfa.c (create_var_ann): Simplify.
5529         (remove_referenced_var): Clear alias info from var_anns of globals.
5530         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
5531         (delete_tree_ssa): Clear alias info from var_anns of globals.
5532         Do not free var_anns.
5533         (var_ann_eq): Remove.
5534         (var_ann_hash): Likewise.
5535
5536 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
5537
5538         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
5539         and loongson2f entries.
5540         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
5541         * config/mips/mips.h (processor_type): Add Loongson-2E
5542         and Loongson-2F entries.
5543         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
5544         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
5545         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
5546         * doc/invoke.texi (MIPS Options): Document loongson2e
5547         and loongson2f processor names.
5548
5549 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5550
5551         PR target/35767
5552         PR target/35771
5553         * config/i386/i386.c (ix86_function_arg_boundary): Use
5554         alignment of canonical type.
5555         (ix86_expand_vector_move): Check unaligned memory access for
5556         all SSE modes.
5557
5558 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5559
5560         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
5561         Moved to the front of file.
5562
5563 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
5564             H.J. Lu  <hongjiu.lu@intel.com>
5565
5566         * dwarf2out.c (current_fde): New.
5567         (add_cfi): Use it.
5568         (lookup_cfa:): Likewise.
5569         (dwarf2out_end_epilogue): Likewise.
5570         (dwarf2out_note_section_used): Likewise.
5571
5572 2008-05-27  Michael Matz  <matz@suse.de>
5573
5574         PR c++/27975
5575         * c.opt (Wenum-compare): New warning option.
5576         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
5577
5578 2008-05-27  Michael Matz  <matz@suse.de>
5579
5580         PR middle-end/36326
5581         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
5582         non-BLKmode types.
5583         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
5584         into memory as tail calls.
5585
5586 2008-05-27  Richard Guenther  <rguenther@suse.de>
5587
5588         PR tree-optimization/36339
5589         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
5590         pointers cause all addressable variables to be call clobbered.
5591
5592 2008-05-27  Richard Guenther  <rguenther@suse.de>
5593
5594         PR tree-optimization/36245
5595         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
5596
5597 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5598
5599         * config/s390/s390.md: Replace all occurences of the 'm'
5600         constraint with 'RT'.
5601
5602 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5603
5604         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
5605         definitions added.
5606         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
5607         "*movdi_64".
5608         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
5609         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
5610         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
5611
5612 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5613
5614         * reload.c: (find_reloads): Skip alternatives according to the
5615         "enabled" attribute. Constify the constraint variable.
5616         * recog.c (get_attr_enabled): Add default implementation.
5617         (extract_insn): Set the alternative_enabled_p array
5618         in the recog_data struct.
5619         (preprocess_constraints, constrain_operands): Skip
5620         alternatives according to the "enabled" attribute
5621         * recog.h (struct recog_data): New field alternative_enabled_p.
5622         (skip_alternative): New inline function.
5623         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
5624         (record_reg_classes): Skip alternative according to the
5625         "enabled" attribute.
5626
5627         * doc/md.texi: Add documention for the "enabled" attribute.
5628
5629 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5630
5631         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
5632         * postreload.c (reload_cse_simplify_operands): Replace 'm'
5633         constraint with TARGET_MEM_CONSTRAINT.
5634         * recog.c (asm_operand_ok, preprocess_constraints,
5635         constrain_operands): Likewise.
5636         * regclass.c (record_reg_classes): Likewise.
5637         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
5638         * reload1.c (maybe_fix_stack_asms): Likewise.
5639         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
5640         * recog.h: Adjust comment.
5641         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
5642         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
5643         * doc/md.texi: Add a note to description of 'm' constraint.
5644         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
5645
5646 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
5647
5648         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
5649         that the bitfield is of integral type before testing its precision.
5650
5651 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
5652             Sa Liu  <saliu@de.ibm.com> 
5653
5654         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
5655         __modti3, __udivti3, __umodti3 and __udivmodti4.
5656         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
5657         that implement TImode mul and div functions.
5658         * config/spu/multi3.c: New. Implement __multi3.
5659         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
5660         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
5661         functions on SPU.
5662
5663 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
5664
5665         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
5666         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
5667         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
5668         tls_sysv_suffix): New mode and mode attribute iterators.
5669         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
5670         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
5671         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
5672         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
5673         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
5674         iterators.
5675
5676 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5677
5678         PR tree-optimization/36329
5679         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
5680         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
5681         * cgraphbuild.c (initialize_inline_failed): Use the latter
5682         macro in lieu of the former.
5683         * ipa-inline.c (cgraph_mark_inline): Likewise.
5684         (cgraph_decide_inlining_of_small_function): Likewise.
5685         (cgraph_decide_inlining): Likewise.
5686         (cgraph_decide_inlining_incrementally): Likewise.
5687
5688 2008-05-26  Tristan Gingold  <gingold@adacore.com>
5689             Anatoly Sokolov  <aesok@post.ru>
5690
5691         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
5692         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
5693         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
5694         optimization for 'avr6' architecture.
5695
5696 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
5697
5698         PR target/34932
5699         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
5700
5701 2008-05-26  Richard Guenther  <rguenther@suse.de>
5702
5703         * tree-ssa-sccvn.c (expr_has_constants): Declare.
5704         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
5705
5706 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
5707
5708         PR middle-end/36253
5709         * caller-save.c (insert_restore): Verify alignment of spill space.
5710         (insert_save): Likewise.
5711         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
5712         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
5713         (STACK_SLOT_ALIGNMENT): Likewise.
5714         * function.c (LOCAL_ALIGNMENT): Removed.
5715         (get_stack_local_alignment): New.
5716         (assign_stack_local): Use it.  Set alignment on stack slot.
5717         (assign_stack_temp_for_type): Use get_stack_local_alignment.
5718         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
5719         (STACK_SLOT_ALIGNMENT): New.
5720         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
5721         stack slot in XFmode.
5722
5723         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
5724
5725 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
5726
5727         PR/36321
5728         * config/i386/i386.md (allocate_stack_worker_64): Make sure
5729         argument operand in rax isn't removed.
5730
5731 2008-05-26  Richard Guenther  <rguenther@suse.de>
5732
5733         PR middle-end/36300
5734         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
5735         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
5736
5737 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5738
5739         PR bootstrap/36331
5740         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
5741
5742 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
5743
5744         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
5745         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
5746
5747 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5748
5749         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
5750         build a trampoline if we don't want one.
5751         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
5752         return zero for nested functions if we don't want a trampoline.
5753
5754 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5755
5756         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
5757
5758 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5759
5760         PR fortran/18428
5761         * c.opt: Removed undocumented option '-lang-fortran'.
5762         * c-common.h: Removed global variable 'lang_fortran'.
5763         * c-opts.c (c_common_handle_option): Removed code to handle
5764         option '-lang-fortran'. Updated includes.
5765         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
5766         definition of '__GFORTRAN__'.
5767         (define__GNUC__): Reimplemented to use BASEVER and
5768         cpp_define_formatted.
5769         (builtin_define_with_value_n): Removed.
5770         * c-incpath.h: Renamed to ...
5771         * incpath.h: ... this.
5772         * c-incpath.c: Renamed to ...
5773         * incpath.c: ... this. Updated includes.
5774         * fix-header.c: Updated includes.
5775         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
5776         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
5777         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
5778
5779 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5780
5781         * tree.h: Update the table of flags used on tree nodes.
5782         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
5783         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
5784         (FORCED_LABEL): Add access check.
5785         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
5786         (ASM_INPUT_P): Likewise.
5787         (ASM_VOLATILE_P): Likewise.
5788         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
5789         (OMP_SECTION_LAST): Access private_flag directly.
5790         (OMP_RETURN_NOWAIT): Likewise.
5791         (OMP_PARALLEL_COMBINED): Likewise.
5792         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
5793         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
5794         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
5795         deprecated_flag directly.
5796
5797 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5798
5799         * final.c (frame_pointer_needed): Removed.
5800         * flags.h (frame_pointer_needed): Likewise.
5801
5802         * function.h (rtl_data): Add frame_pointer_needed.
5803         (frame_pointer_needed): New.
5804
5805 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
5806
5807         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
5808
5809 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
5810
5811         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
5812         SRC is a REG.
5813
5814 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
5815
5816         * c-common.c (strip_array_types): Move function to..
5817         * tree.c: ..here.
5818         (get_inner_array_type): Delete.
5819         * c-common.h (strip_array_types): Move declaration to..
5820         * tree.h: ..here.
5821         (get_inner_array_type): Delete.
5822         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
5823         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
5824         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
5825         * config/pa/pa.c (emit_move_sequence): Likewise.
5826
5827 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
5828
5829         * config/i386/i386.md (*sse_prologue_save_insn): Set length
5830         attribute to 34.
5831
5832 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
5833
5834         * function.c: Include target hook for nonlocal_goto frame value.
5835
5836 2008-05-24  Richard Guenther  <rguenther@suse.de>
5837
5838         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
5839         variable can be only accessed through a pointer or a union.
5840
5841 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5842
5843         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
5844         * doc/extend.texi: Likewise.
5845
5846 2008-05-23  DJ Delorie  <dj@redhat.com>
5847
5848         * config/m32c/jump.md (untyped_call): Add.
5849
5850         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
5851         for A24 to PSImode.
5852         (m32c_address_cost): Detail costs for indirect offsets.
5853
5854 2008-05-23  Rafael Espindola  <espindola@google.com>
5855
5856         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
5857         if a node is a SUBREG.
5858         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
5859         is a SUBREG.
5860
5861 2008-05-23  Paul Brook  <paul@codesourcery.com>
5862             Carlos O'Donell  <carlos@codesourcery.com>
5863
5864         * doc/extend.texi: Clarify use of __attribute__((naked)).
5865         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
5866         * target.h (gcc_target): Add allocate_stack_slots_for_args.
5867         * function.c (use_register_for_decl): Use
5868         targetm.calls.allocate_stack_slots_for_args.
5869         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
5870         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
5871         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
5872
5873 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5874
5875         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
5876
5877 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
5878
5879         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
5880         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
5881         is only rounded once.
5882
5883 2008-05-23  Richard Guenther  <rguenther@suse.de>
5884
5885         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
5886
5887 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
5888             Jakub Jelinek  <jakub@redhat.com>
5889
5890         PR target/36079
5891         * configure.ac: Handle --enable-cld.
5892         * configure: Regenerated.
5893         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
5894         * config/i386/i386.h (struct machine_function): Add needs_cld field.
5895         (ix86_current_function_needs_cld): New define.
5896         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
5897         (cld): New isns pattern.
5898         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
5899         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
5900         * config/i386/i386.opt (mcld): New option.
5901         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
5902         TARGET_CLD and ix86_current_function_needs_cld.
5903         (override_options): Use -mcld by default for 32-bit code if
5904         USE_IX86_CLD.
5905
5906         * doc/install.texi (Options specification): Document --enable-cld.
5907         * doc/invoke.texi (Machine Dependent Options)
5908         [i386 and x86-64 Options]: Add -mcld option.
5909         (Intel 386 and AMD x86-64 Options): Document -mcld option.
5910
5911 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
5912         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
5913         (return_in_memory_64): Likewise.
5914         (return_in_memory_ms_64): Likewise.
5915
5916 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5917
5918         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
5919         * builtins.c (fold_builtin_fpclassify): New.
5920         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
5921         * builtins.def (BUILT_IN_FPCLASSIFY): New.
5922         * c-common.c (handle_type_generic_attribute): Adjust to accept
5923         fixed arguments before an elipsis.
5924         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
5925         * doc/extend.texi: Document __builtin_fpclassify.
5926
5927 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
5928
5929         * omp-low.c (gate_expand_omp_ssa): Remove.
5930         (pass_expand_omp_ssa): Remove.
5931         (gate_expand_omp): Do not check for flag_openmp_ssa.
5932         * common.opt (-fopenmp-ssa): Remove.
5933         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
5934
5935 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
5936
5937         * config/sh/sh.opt (mfixed-range): New option.
5938         * config/sh/sh-protos.h (sh_fix_range): Declare.
5939         * config/sh/sh.c (sh_fix_range): New function.
5940         * config/sh/sh.h (sh_fixed_range_str): Declare.
5941         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
5942         is not empty.
5943         * doc/invoke.texi (SH Options): Document -mfixed-range.
5944
5945 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
5946
5947         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
5948         it before the redeclaration.
5949
5950 2008-05-22  Anatoly Sokolov <aesok@post.ru>
5951
5952         * config/avr/avr.c (get_sequence_length): Add new function.
5953         (expand_prologue, expand_epilogue): Remove duplicate code.
5954
5955 2008-05-22  Rafael Espindola  <espindola@google.com>
5956
5957         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
5958         sharing.
5959
5960 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
5961
5962         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
5963         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
5964
5965         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
5966         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
5967         (vect_update_misalignment_for_peel): Likewise.
5968         (vector_alignment_reachable_p): Likewise.
5969         * tree-vect-transform.c (vectorizable_load): Likewise.
5970         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
5971         (get_vectype_for_scalar_type): Pass mode of scalar_type
5972         to UNITS_PER_SIMD_WORD.
5973
5974         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
5975         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
5976         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
5977         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
5978         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
5979
5980 2008-05-22  Ira Rosen  <irar@il.ibm.com>
5981
5982         PR tree-optimization/36293
5983         * tree-vect-transform.c (vect_transform_strided_load): Don't check
5984         if the first load must be skipped because of a gap.
5985
5986 2008-05-22  Richard Guenther  <rguenther@suse.de>
5987
5988         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
5989         more cases of offset disambiguation that is possible if
5990         strict-aliasing rules apply.
5991         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
5992         for basic offset and type-based disambiguation.
5993
5994 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5995
5996         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
5997         ix86_expand_vector_set on V16QImode for SSE4.1.
5998
5999 2008-05-21  Tom Tromey  <tromey@redhat.com>
6000
6001         * c.opt (Wimport): Mark as undocumented.
6002         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
6003         -Wno-import.
6004         (Warning Options): Likewise.
6005         * doc/cppopts.texi: Don't mention -Wimport.
6006
6007 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
6008
6009         PR tree-optimization/36287
6010         PR tree-optimization/36286
6011         * lambda-code.c (build_access_matrix): Do not use the loop->num
6012         for computing the number of induction variables: use the loop depth
6013         instead.
6014
6015 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
6016
6017         PR/36280
6018         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
6019         option -f(no-)leading-underscore.
6020
6021 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6022
6023         * config/i386/i386.c (ix86_expand_vector_init_general): Use
6024         GET_MODE_NUNITS (mode).
6025
6026 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
6027
6028         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
6029         (-mmulhw): Add 464 to description.
6030         (-mdlmzb): Likewise.
6031         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
6032         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
6033         464fp entries.
6034         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
6035         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
6036         * config/rs6000/rs6000.md: Update comments for 464.
6037
6038 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
6039
6040         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
6041
6042 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6043
6044         * config/i386/sse.md (vec_extractv4sf): Removed.
6045         (vec_extractv2df): Likewise.
6046         (vec_extractv2di): Likewise.
6047         (vec_extractv4si): Likewise.
6048         (vec_extractv8hi): Likewise.
6049         (vec_extractv16qi): Likewise.
6050         (vec_extract<mode>): New.
6051
6052 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6053
6054         * config/i386/sse.md (vec_setv4sf): Removed.
6055         (vec_setv2df): Likewise.
6056         (vec_setv2di): Likewise.
6057         (vec_setv4si): Likewise.
6058         (vec_setv8hi): Likewise.
6059         (vec_setv16qi): Likewise.
6060         (vec_set<mode>): New.
6061
6062 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6063
6064         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
6065         goto for vec_concat and vec_interleave.
6066
6067 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6068
6069         * config/i386/sse.md (vec_initv4sf): Removed.
6070         (vec_initv2df): Likewise.
6071         (vec_initv2di): Likewise.
6072         (vec_initv4si): Likewise.
6073         (vec_initv8hi): Likewise.
6074         (vec_initv16qi): Likewise.
6075         (vec_init<mode>): New.
6076
6077 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
6078
6079         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
6080
6081 2008-05-21  Tom Tromey  <tromey@redhat.com>
6082
6083         * ggc-zone.c (lookup_page_table_if_allocated): New function.
6084         (zone_find_object_offset): Likewise.
6085         (gt_ggc_m_S): Likewise.
6086         (highest_bit): Likewise.
6087         * ggc-page.c (gt_ggc_m_S): New function.
6088         * stringpool.c (string_stack): Remove.
6089         (init_stringpool): Update.
6090         (ggc_alloc_string): Use ggc_alloc.
6091         (maybe_delete_ident): New function.
6092         (ggc_purge_stringpool): Likewise.
6093         (gt_ggc_m_S): Remove.
6094         * ggc-common.c (ggc_protect_identifiers): New global.
6095         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
6096         ggc_protect_identifiers.
6097         * ggc.h (ggc_protect_identifiers): Declare.
6098         (gt_ggc_m_S): Update.
6099         (ggc_purge_stringpool): Declare.
6100         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
6101         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
6102         special case.
6103         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
6104
6105 2008-05-21  David S. Miller  <davem@davemloft.net>
6106
6107         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
6108         tmake_file.
6109
6110 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6111
6112         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
6113         once finished.
6114
6115 2008-05-20  David Daney  <ddaney@avtrex.com>
6116
6117         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
6118         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
6119         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6120         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6121         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
6122         (atomic_hiqi_op): New define_code_iterator.
6123         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
6124         mips_expand_compare_and_swap_12.
6125         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
6126         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
6127         (sync_<optab><mode>, sync_old_<optab><mode>,
6128         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
6129         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
6130         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
6131         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
6132         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
6133         (test_and_set_12): New insn.
6134         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
6135         sync_new_<optab><mode>, sync_old_nand<mode>,
6136         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
6137         clobber to operand 0 for SI and DI mode insns.
6138         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
6139         mips_gen_fn_4): New typedefs.
6140         (mips_gen_fn_ptrs): Define new union type.
6141         (mips_expand_compare_and_swap_12): Remove declaration.
6142         (mips_expand_atomic_qihi): Declare function.
6143         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
6144         (mips_expand_atomic_qihi): ... this.  Use new generator function
6145         parameter.
6146         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
6147         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
6148         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
6149         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
6150         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
6151         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
6152         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
6153         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
6154         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
6155         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
6156         New macros.
6157
6158 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
6159
6160         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
6161         the missing break.
6162
6163 2008-05-20  Anatoly Sokolov <aesok@post.ru>
6164
6165         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
6166         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
6167         (avr_attribute_table): Add 'OS_main' function attribute.
6168         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
6169         functions with 'OS_main' attribute.
6170
6171 2008-05-20  Richard Guenther  <rguenther@suse.de>
6172
6173         PR tree-optimization/35204
6174         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
6175         helper, split out from ...
6176         (DFS): ... here.  Make the DFS walk non-recursive.
6177
6178 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
6179             Jan Sjodin  <jan.sjodin@amd.com>
6180
6181         PR tree-optimization/36181
6182         * tree-parloops.c (loop_has_vector_phi_nodes): New.
6183         (parallelize_loops): Don't parallelize when the loop has vector
6184         phi nodes.
6185
6186 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6187             Sebastian Pop  <sebastian.pop@amd.com>
6188
6189         * tree-loop-linear.c (gather_interchange_stats): Look in the access
6190         matrix, and never look at the tree representation of the memory
6191         accesses.
6192         (linear_transform_loops): Computes parameters and access matrices.
6193         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
6194         when fails.
6195         (access_matrix_get_index_for_parameter): New.
6196         * tree-data-ref.h (struct access_matrix): New.
6197         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
6198         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
6199         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
6200         am_vector_index_for_loop): New.
6201         (struct data_reference): Add field access_matrix.
6202         (DR_ACCESS_MATRIX): New.
6203         (compute_data_dependences_for_loop): Update declaration.
6204         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
6205         * lambda.h (lambda_vector_vec_p): Declared.
6206         * lambda-code.c: Depend on pointer-set.h.
6207         (lambda_collect_parameters_from_af, lambda_collect_parameters,
6208         av_for_af_base, av_for_af, build_access_matrix,
6209         lambda_compute_access_matrices): New.
6210         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
6211
6212 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
6213
6214         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
6215         $SOURCEDIR/include.
6216
6217 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6218             Sebastian Pop  <sebastian.pop@amd.com>
6219
6220         PR tree-optimization/36206
6221         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
6222         FOLD_CONVERSIONS.
6223         (instantiate_scev_1): Rename flags to fold_conversions.
6224         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
6225         outeside instantiation_loop.
6226         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
6227         (evolution_function_is_affine_or_constant_p): Removed.
6228         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
6229         instantiate_scev.
6230         (analyze_siv_subscript): Pass in the loop nest number.
6231         Call evolution_function_is_affine_in_loop instead of 
6232         evolution_function_is_affine_p.
6233         (analyze_overlapping_iterations): Pass in the loop nest number.
6234
6235 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6236             Sebastian Pop  <sebastian.pop@amd.com>
6237
6238         PR tree-optimization/36206
6239         * tree-chrec.h (chrec_fold_op): New.
6240         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
6241         and other trees.
6242
6243 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
6244
6245         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
6246         (DIRS_EQ): New.
6247         (remove_duplicates): Do not set inode on non-inode systems.
6248         Use DIRS_EQ.
6249
6250 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6251
6252         * config.gcc (tm_file): Update comments about relative pathnames.
6253
6254 2008-05-20  Richard Guenther  <rguenther@suse.de>
6255
6256         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
6257         * tree-ssa-sccvn.c (process_scc): Likewise.
6258         * tree-ssa-sink.c (execute_sink_code): Likewise.
6259         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
6260         * tree-vrp.c (process_assert_insertions): Likewise.
6261         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
6262         (perform_tree_ssa_dce): Likewise.
6263         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
6264         (dump_dominator_optimization_stats): Likewise.
6265         * tree-vectorizer.c (vectorize_loops): Likewise.
6266
6267 2008-05-20  Richard Guenther  <rguenther@suse.de>
6268
6269         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
6270
6271 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
6272
6273         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
6274         (ix86_i386elf_return_in_memory): Likewise.
6275         (ix86_i386interix_return_in_memory): Likewise.
6276         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
6277         (SUBTARGET_RETURN_IN_MEMORY): New.
6278         * config/i386/i386elf.h: Likewise.
6279         * config/i386/ptx4-i.h: Likewise.
6280         * config/i386/sol2-10.h: Likewise.
6281         * config/i386/sysv4.h: Likewise.
6282         * config/i386/vx-common.h: Likewise.
6283         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
6284         * config/i386/i386.c (ix86_return_in_memory): Made static and
6285         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
6286         (ix86_i386elf_return_in_memory): Removed.
6287         (ix86_i386interix_return_in_memory): Removed.
6288         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
6289         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
6290
6291 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
6292
6293         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
6294
6295 2008-05-19  Xinliang David Li  <davidxl@google.com>
6296
6297         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
6298         * opts.c: Ditto.
6299         * common.opt: Ditto.
6300         * doc/invoke.texi: Ditto.
6301
6302 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6303
6304         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
6305         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
6306
6307 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6308
6309         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
6310         sizes of operand array from 8/4 to 4/2.
6311         (ix86_expand_vector_init_general): Change size of operand array
6312         from 32 to 16.  Remove op0, op1 and half_mode.
6313
6314 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6315
6316         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
6317         (ix86_expand_vector_init_interleave): Likewise.
6318         (ix86_expand_vector_init_general): Use them.  Assert
6319         word_mode == SImode when n_words == 4.
6320
6321 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
6322
6323         * config/i386/i386.c (ix86_secondary_reload): New static function.
6324         (TARGET_SECONDARY_RELOAD): New define.
6325         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
6326         * config/i386/i386.md (reload_outqi): Remove.
6327
6328 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6329
6330         PR middle-end/35509
6331         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
6332         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
6333         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
6334         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
6335         (fold_builtin_1): Likewise.
6336         * builtins.def (BUILT_IN_ISINF_SIGN): New.
6337         c-common.c (check_builtin_function_arguments): Handle
6338         BUILT_IN_ISINF_SIGN.
6339         * doc/extend.texi: Document __builtin_isinf_sign.
6340         * fold-const.c (operand_equal_p): Handle COND_EXPR.
6341
6342 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
6343
6344         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
6345         EH cleanup at the end of the pass, search for those that have been
6346         turned into forwarder blocks and do the cleanup on their successor.
6347
6348 2008-05-18  Richard Guenther  <rguenther@suse.de>
6349
6350         * tree-cfg.c (verify_gimple_expr): Allow conversions from
6351         pointers to sizetype and vice versa.
6352
6353 2008-05-18 Xinliang David Li   <davidxl@google.com>
6354
6355         * gcc/tree-ssa-dce.c: Coding style fix.
6356         (check_pow): Documentation comment. 
6357         (check_log): Documenation comment. Coding style fix.
6358         (is_unnecessary_except_errno_call): Ditto.
6359         (gen_conditions_for_pow): Ditto.
6360         (gen_conditions_for_log): Ditto.
6361         (gen_shrink_wrap_conditions): Ditto.
6362         (shrink_wrap_one_built_in_calls): Ditto.
6363         * gcc/doc/invoke.texi: Better documentation string.
6364         * ChangeLog: Fix wrong change log entries from 
6365         May 17 checkin on function call DCE.
6366
6367 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
6368
6369         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
6370
6371 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
6372
6373         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
6374         * df-problems.c (simulation routines): Fixed block comment to
6375         properly say how to add forwards scanning functions.
6376         
6377 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6378
6379         * tree-inline.c (setup_one_parameter): Remove dead code.
6380
6381 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6382
6383         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
6384         a BIT_AND_EXPR only for an INTEGER_TYPE.
6385
6386 2008-05-17 Xinliang David Li   <davidxl@google.com>
6387
6388         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
6389         (check_pow, check_log, is_unnecessary_except_errno_call): New 
6390         functions to check for eliminating math functions that are pure 
6391         except for setting errno.
6392         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
6393         general condition expressions for shrink-wrapping pow/log calls.
6394         (gen_shrink_wrap_conditions): Ditto.
6395         (shrink_wrap_one_built_in_call): Ditto.
6396         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
6397         (mark_operand_necessary): If debugging, output if OP is necessary.
6398         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
6399         unnecessary.
6400         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
6401         opt level >= 2.
6402         * gcc/common.opt: New user flag -ftree-builtin-dce.
6403         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
6404
6405 2008-05-16  David S. Miller  <davem@davemloft.net>
6406
6407         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
6408         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6409
6410 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
6411
6412         PR target/36246
6413         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
6414
6415 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6416
6417         * ifcvt.c (dead_or_predicable): Rename
6418         df_simulate_one_insn_backwards to df_simulate_one_insn.
6419         * recog.c (peephole2_optimize): Ditto.
6420         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
6421         Ditto.
6422         * df.h: Rename df_simulate_one_insn_backwards to
6423         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
6424         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
6425         scanning of defs and uses.
6426         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
6427         (df_simulate_one_insn_forwards): Removed.
6428
6429 2008-05-16  Doug Kwan  <dougkwan@google.com>
6430
6431         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
6432         QNaN & SNaN.
6433         (real_from_string): Handle NaNs and Inf as approriate.
6434
6435 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6436
6437         * doc/gty.texi (Source Files Containing Type Information): Note
6438         that headers should appear first in the gtfiles list.
6439
6440 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6441
6442         * tree.def (COND_EXEC): Properly documented this code.
6443
6444 2008-05-16  Diego Novillo  <dnovillo@google.com>
6445
6446         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
6447         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
6448         the new field.
6449
6450 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6451
6452         * tree-ssa-dse (max_stmt_uid): Removed.
6453         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
6454         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
6455         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
6456         * function.h (cfun.last_stmt_uid): New field.
6457         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
6458         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
6459         New functions.
6460         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
6461         (create_stmt_ann): Initialize the ann->uid field.
6462         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
6463         with new calls.
6464         * tree-flow.h (renumber_gimple_stmt_uids): New function.
6465
6466 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6467
6468         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
6469         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
6470         (init_empty_tree_cfg): Call it.
6471
6472 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6473
6474         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
6475         Update all users.
6476
6477 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6478
6479         * doc/invoke.text (-fdump-tree-*-verbose): New option.
6480         * tree-dump.c (dump_options): New verbose option.
6481         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
6482         Add verbose dump.
6483         * tree-pass.h (TDF_VERBOSE): New dump flag.
6484         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
6485         (tree-flow.h): Added include.
6486         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
6487
6488 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
6489
6490         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
6491
6492         From Jie Zhang  <jie.zhang@analog.com>
6493         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6494         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
6495         mcpu=bf561-none and mcpu=bf561-0.2.
6496         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6497         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6498         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6499         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6500         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
6501         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
6502         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
6503         option.
6504         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
6505         (cputype_selected): Remove.
6506         (bfin_handle_option): Don't use cputype_selected.
6507         (override_options): When no mcpu option, enable all workarounds.
6508         Don't use bfin_workarounds.
6509         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
6510         processor type.
6511         (DEFAULT_CPU_TYPE): Don't define.
6512
6513 2008-05-16  Richard Guenther  <rguenther@suse.de>
6514
6515         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
6516         on deletion of the last stmt.
6517
6518 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6519
6520         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
6521         V8HImode for SSE2 and V16QImode for SSE4.1.
6522
6523 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
6524
6525         * cgraph.h (compute_inline_parameters): Made public.
6526         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
6527         variable_generate_summary, function_write_summary,
6528         variable_write_summary, variable_read_summary.  Added generate_summary,
6529         write_summary, read_summary.
6530         * cgraphunit.c (cgraph_process_new_functions): Changed call from
6531         pass_ipa_inline.function_generate_summary, to
6532         compute_inline_parameters. 
6533         * ipa-inline.c (compute_inline_parameters): Made public and added
6534         node parameter.
6535         (compute_inline_parameters_for_current): New function.
6536         (pass_inline_param): Now calls compute_inline_parameters_for_current.
6537         (inline_generate_summary): Removed parameter and made to loop over
6538         all cgraph nodes.
6539         (pass_ipa_inline): Updated for new IPA_PASS structure.
6540         * passes.c (execute_ipa_summary_passes): Now is called once per
6541         pass rather than once per node*pass.
6542         
6543 2008-05-15  Anatoly Sokolov <aesok@post.ru>
6544
6545         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
6546         avr_have_mul_p, avr_asm_only_p): Remove variables.
6547         (avr_override_options): Remove initialization of removed variables.
6548         (avr_file_start):  Convert removed variables to fields of 
6549         'struct base_arch_s *avr_current_arch'. 
6550         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
6551         (AVR_HAVE_MUL): (Ditto.).
6552         (AVR_HAVE_MOVW): (Ditto.).
6553         (AVR_HAVE_LPMX): (Ditto.). 
6554         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
6555         avr_asm_only_p): Remove declaration.
6556
6557 2008-05-15  Diego Novillo  <dnovillo@google.com>
6558
6559         * config/arm/arm.c (arm_return_in_memory): Fix return type.
6560         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
6561
6562 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
6563
6564         PR middle-end/36194
6565         * combine.c (check_conversion): Rename back to check_promoted_subreg.
6566         Don't call record_truncated_value from here.
6567         (record_truncated_value): Turn it into a for_each_rtx callback.
6568         (record_truncated_values): New function.
6569         (combine_instructions): Call note_uses with record_truncated_values.
6570         Change name of check_conversion to check_promoted_subreg. 
6571
6572 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
6573
6574         * doc/sourcebuild.texi: Document support for torture tests.
6575
6576 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6577
6578         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
6579         to alternative 4 of operand 2.
6580
6581 2008-05-15  Richard Guenther  <rguenther@suse.de>
6582
6583         * tree-pass.h (current_pass): Declare.
6584         (get_pass_for_id): Likewise.
6585         * passes.c (passes_by_id, passes_by_id_size): New globals.
6586         (set_pass_for_id): New function.
6587         (get_pass_for_id): Likewise.
6588         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
6589         (execute_function_todo): Flush per function statistics.
6590         * toplev.c (compile_file): Init statistics.
6591         (general_init): Do early statistics initialization.
6592         (finalize): Finish statistics.
6593         * statistics.h (statistics_early_init): Declare.
6594         (statistics_init): Likewise.
6595         (statistics_fini): Likewise.
6596         (statistics_fini_pass): Likewise.
6597         (statistics_counter_event): Likewise.
6598         (statistics_histogram_event): Likewise.
6599         * statistics.c: New file.
6600         * Makefile.in (OBJS-common): Add statistics.o.
6601         (statistics.o): Add dependencies.
6602         * doc/invoke.texi (-fdump-statistics): Document.
6603
6604         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
6605         (insert): Likewise.
6606         (execute_pre): Use statistics_counter_event.
6607         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
6608         (substitute_and_fold): Increment it.  Use statistics_counter_event.
6609
6610 2008-05-15  Diego Novillo  <dnovillo@google.com>
6611
6612         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
6613
6614         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
6615         * tree-ssa-alias.c (new_type_alias): Remove references to
6616         sub-variables from comment.
6617         * tree-ssa-operands.c (swap_tree_operands): Likewise.
6618
6619 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6620
6621         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
6622         attribute to 1 only for insertps alternative.
6623
6624 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6625
6626         * config/bfin/bfin.md (loadbytes): New pattern.
6627         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
6628         (bfin_init_builtins): Initialize it.
6629         (bdesc_1arg): Add it.
6630
6631 2008-05-15  Sa Liu  <saliu@de.ibm.com>
6632
6633         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
6634         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
6635         * testsuite/lib/target-supports.exp: Add
6636         check_effective_target_fortran_integer_16.
6637
6638 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6639
6640         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
6641         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
6642         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
6643         (TARGET_RETURN_IN_MEMORY): Define.
6644
6645 2008-05-15  Richard Guenther  <rguenther@suse.de>
6646
6647         PR middle-end/36244
6648         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
6649         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
6650         represent unmodifiable vars.
6651
6652 2008-05-15  Richard Guenther  <rguenther@suse.de>
6653
6654         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
6655         INDIRECT_REF and TARGET_MEM_REF.
6656         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6657         TARGET_MEM_REF.
6658
6659 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6660             H.J. Lu  <hongjiu.lu@intel.com>
6661
6662         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
6663         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
6664         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
6665         insn alternatives.  Add missing alternatives.
6666         (*vec_concatv2di_rex64_sse4_1): Likewise.
6667         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
6668         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
6669         Require TARGET_SSE.
6670
6671 2008-05-15  Richard Guenther  <rguenther@suse.de>
6672
6673         PR tree-optimization/36009
6674         PR tree-optimization/36204
6675         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
6676         (determine_invariantness_stmt): Record the loop a store is
6677         always executed in.
6678         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
6679         dependency.
6680
6681 2008-05-15  Richard Guenther  <rguenther@suse.de>
6682
6683         PR tree-optimization/34330
6684         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
6685         through the pointer will alias the SMT.
6686
6687 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
6688
6689         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
6690
6691 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
6692
6693         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
6694
6695 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6696             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
6697
6698         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
6699         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
6700         (vashl_optab): New optab for vector/vector shifts.
6701         (vashr_optab): Ditto.
6702         (vlshr_optab): Ditto.
6703         (vrotl_optab): Ditto.
6704         (vrotr_optab): Ditto.
6705         (optab_subtype): New enum for optab_for_tree_code call.
6706         (optab_for_tree_code): Add enum optab_subtype argument.
6707
6708         * optabs.c (optab_for_tree_code): Take an additional argument to
6709         distinguish between a vector shift by a scalar and vector shift by
6710         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
6711         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
6712         vector shift by a vector.
6713         (expand_widen_pattern_expr): Pass additional argument to
6714         optab_for_tree_code.
6715
6716         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
6717         vrotl_optab, vrotr_optab.
6718
6719         * expr.c (expand_expr_real_1): Update calls to
6720         optab_for_tree_code to distinguish between vector shifted by a
6721         scalar and vector shifted by a vector.
6722         * tree-vectorizer.c (supportable_widening_operation): Ditto.
6723         (supportable_narrowing_operation): Ditto.
6724         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
6725         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
6726         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
6727         (vect_create_epilog_for_reduction): Ditto.
6728         (vectorizable_reduction): Ditto.
6729         (vectorizable_operation): Ditto.
6730         (vect_strided_store_supported): Ditto.
6731         (vect_strided_load_supported): Ditto.
6732         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
6733         * expmed.c (expand_shift): Ditto.
6734
6735         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
6736         scalar type.
6737         (ashr@var{m}3): Ditto.
6738         (vashl@var{m}3): Document new vector/vector shift standard name.
6739         (vashr@var{m}3): Ditto.
6740         (vlshr@var{m}3): Ditto.
6741         (vrotl@var{m}3): Ditto.
6742         (vrotr@var{m}3): Ditto.
6743
6744         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
6745         (PPERM_INVERT): Ditto.
6746         (PPERM_REVERSE): Ditto.
6747         (PPERM_REV_INV): Ditto.
6748         (PPERM_ZERO): Ditto.
6749         (PPERM_ONES): Ditto.
6750         (PPERM_SIGN): Ditto.
6751         (PPERM_INV_SIGN): Ditto.
6752         (PPERM_SRC1): Ditto.
6753         (PPERM_SRC2): Ditto.
6754
6755         * config/i386/sse.md (mulv2di3): Add SSE5 support.
6756         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
6757         allows a memory operand to be the value being added, and split it
6758         to improve vectorization.
6759         (sse5_pmacsdqh_mem): Ditto.
6760         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
6761         (sse5_mulv2div2di3_high): Ditto.
6762         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
6763         (vec_pack_trunc_v4si): Ditto.
6764         (vec_pack_trunc_v2di): Ditto.
6765         (sse5_pcmov_<mode>): Remove code that tried to use use
6766         andps/andnps instead of pcmov.
6767         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
6768         pmacsdqh instructions.
6769         (vec_widen_smult_lo_v4si): Ditto.
6770
6771         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
6772         (PPERM_INVERT): Ditto.
6773         (PPERM_REVERSE): Ditto.
6774         (PPERM_REV_INV): Ditto.
6775         (PPERM_ZERO): Ditto.
6776         (PPERM_ONES): Ditto.
6777         (PPERM_SIGN): Ditto.
6778         (PPERM_INV_SIGN): Ditto.
6779         (PPERM_SRC1): Ditto.
6780         (PPERM_SRC2): Ditto.
6781         (ix86_expand_sse_movcc): Move the SSE5 test after the if
6782         true/false tests.
6783         (ix86_expand_int_vcond): If SSE5 generate all possible integer
6784         comparisons.
6785         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
6786         says ignore whether the last reference is a memory operand.
6787
6788 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6789             Paolo Bonzini <bonzini at gnu dot org>
6790
6791         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
6792         shift patterns.
6793
6794         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
6795         (vlshr<mode>3): Rename from vlshr<mode>3.
6796         (vashr<mode>3): Rename from vashr<mode>3.
6797         (mulv4sf3): Change the names of vector shift patterns.
6798         (mulv4si3): Ditto.
6799         (negv4sf2): Ditt.
6800
6801         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
6802         shift insns.
6803
6804         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
6805         (SI_SHLHI): Ditto.
6806         (SI_SHL): Ditto.
6807         (SI_SHLI): Ditto.
6808         (SI_ROTH): Ditto.
6809         (SI_ROTHI): Ditto.
6810         (SI_ROT): Ditto.
6811         (SI_ROTI): Ditto.
6812         (SPU_RL_0): Ditto.
6813         (SPU_RL_1): Ditto.
6814         (SPU_RL_2): Ditto.
6815         (SPU_RL_3): Ditto.
6816         (SPU_RL_4): Ditto.
6817         (SPU_RL_5): Ditto.
6818         (SPU_RL_6): Ditto.
6819         (SPU_RL_7): Ditto.
6820         (SPU_SL_0): Ditto.
6821         (SPU_SL_1): Ditto.
6822         (SPU_SL_2): Ditto.
6823         (SPU_SL_3): Ditto.
6824         (SPU_SL_4): Ditto.
6825         (SPU_SL_5): Ditto.
6826         (SPU_SL_6): Ditto.
6827         (SPU_SL_7): Ditto.
6828
6829         * config/spu/spu.md (v): New iterator macro to add v for vector types.
6830         (floatunssidf2_internal): Change vector/vector shift names.
6831         (floatunsdidf2_internal): Ditto.
6832         (mulv8hi3): Ditto.
6833         (ashrdi3): Ditto.
6834         (ashrti3): Ditto.
6835         (cgt_df): Ditto.
6836         (cgt_v2df): Ditto.
6837         (dftsv): Ditto.
6838         (vashl<mode>3): Rename from ashl<mode>3.
6839         (vashr<mode>3): Rename from ashr<mode>3.
6840         (vlshr<mode>3): Rename from lshr<mode>3.
6841         (vrotl<mode>3): Rename from rotl<mode>3.
6842
6843 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6844
6845         PR target/36224
6846         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
6847         multiply gives the wrong value when doing widening multiplies.
6848         (vec_widen_smult_lo_v4si): Ditto.
6849
6850 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
6851
6852         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
6853         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
6854         emit_library_call_value. 
6855         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
6856         * tree.h (ECF_LIBCALL_BLOCK): Removed.
6857         * calls.c (initialize_argument_information, precompute_arguments, 
6858         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
6859         (precompute_arguments): Removed flags parameter.
6860         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
6861         
6862 2008-05-14  Richard Guenther  <rguenther@suse.de>
6863
6864         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
6865         Make sure to register the store if the use is a PHI_NODE.
6866
6867 2008-05-14  Olivier Hainque  <hainque@adacore.com>
6868
6869         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
6870         memory if the component is to be referenced in BLKmode according
6871         to get_inner_reference.
6872
6873 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
6874
6875         * calls.c (emit_library_call_value_1): Restore code clearing
6876         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
6877
6878 2008-05-14  Olivier Hainque  <hainque@adacore.com>
6879             Nicolas Roche  <roche@adacore.com>
6880
6881         * configure.ac: Add support for a "gcc_subdir" variable in
6882         config-lang.in, to denote a subdirectory where the language/GCC
6883         integration files are to be found.
6884         * configure: Regenerate.
6885
6886 2008-05-14  Ira Rosen  <irar@il.ibm.com>
6887
6888         PR tree-optimization/36098
6889         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
6890         value for the first load in the group in case of a gap.
6891         (vect_build_slp_tree): Check that there are no gaps in loads.
6892
6893 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
6894
6895         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
6896         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
6897         expand_copysign_bit, ): Change call to emit_no_conflict_block to
6898         emit_insn and remove unneeded code to construct extra args.
6899         (emit_no_conflict_block): Removed.
6900         * optabls.h: (emit_no_conflict_block): Removed.
6901         * cse.c (cse_extended_basic_block): Remove search for
6902         REG_NO_CONFLICT note.
6903         * global.c: Removed incorrect comment added in revision 117.
6904         * expr.c (convert_move): Change call to emit_no_conflict_block to
6905         emit_insn.
6906         * recog.c: Change comments so that they do not mention
6907         REG_NO_CONFLICT.
6908         * local_alloc.c (combine_regs): Removed last parameter.
6909         (no_conflict_p): Removed.
6910         (block_alloc): Removed note, no_conflict_combined_regno and set
6911         local vars. Removed all code to process REG_NO_CONFLICT blocks.
6912         (combine_regs): Removed already_dead and code to look for
6913         REG_NO_CONFLICT notes.
6914         * lower_subreg (remove_retval_note): Removed code to look for
6915         REG_NO_CONFLICT block.
6916         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
6917         (resolve_clobber): Remove code to process libcalls that have
6918         REG_NO_CONFLICT notes.
6919         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
6920         case.
6921         * combine.c (can_combine_p, distribute_notes):  Removed
6922         REG_NO_CONFLICT case.
6923         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
6924         to emit_insns.
6925         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
6926         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6927         Ditto.
6928         * reg-notes.def (NO_CONFLICT): Removed.
6929
6930 2008-05-14  David S. Miller  <davem@davemloft.net>
6931
6932         * config/sparc/sparc.c (sparc_profile_hook): If
6933         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
6934         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
6935         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6936
6937 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
6938
6939         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
6940
6941 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
6942
6943         PR target/36222
6944         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
6945         and op1 expansion before vector concat to have less live pseudos.
6946
6947 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
6948
6949         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
6950         ix86_expand_vector_set if supported.
6951
6952 2008-05-13  Diego Novillo  <dnovillo@google.com>
6953             Kenneth Zadeck  <zadeck@naturalbridge.com>
6954
6955         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
6956
6957         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
6958         phinodes_print_statistics, init_ssanames, fini_ssanames,
6959         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
6960         release_ssa_name, release_defs, replace_ssa_name_symbol,
6961         ssanames_print_statistics): Move ...
6962         * tree-flow.h: ... here.
6963         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
6964         Use FN instead of cfun.
6965         (make_ssa_name_fn): Rename from make_ssa_name.
6966         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
6967         * tree-flow-inline.h (make_ssa_name): Move from
6968         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
6969         * omp-low.c (expand_omp_parallel):
6970         * tree-flow-inline.h (redirect_edge_var_map_result):
6971         * tree-ssa.c (init_tree_ssa): Add argument FN.
6972         Use it instead of cfun.  Update all users.
6973
6974 2008-05-13  Tom Tromey  <tromey@redhat.com>
6975
6976         PR preprocessor/22168:
6977         * doc/cpp.texi (Top): Update menu.
6978         (Alternatives to Wrapper #ifndef): New node.
6979         (Other Directives): Document deprecation.
6980         (Obsolete Features): Remove menu.
6981         (Assertions): Merge node into Obsolete Features.
6982         (Obsolete once-only headers): Move earlier; rename to Alternatives
6983         to Wrapper #ifndef.
6984         * doc/cppopts.texi: Update.
6985         * c.opt (Wdeprecated): Enable for C and ObjC.
6986         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
6987         (C++ Dialect Options): Move -Wno-deprecated from here to...
6988         (Warning Options): ... here.
6989
6990 2008-05-13  Richard Guenther  <rguenther@suse.de>
6991
6992         PR middle-end/36227
6993         * fold-const.c (fold_sign_changed_comparison): Do not allow
6994         changes in pointer-ness.
6995
6996 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
6997
6998         PR target/24713
6999         * config/sh/sh.c (sh_expand_prologue): Don't clear
7000         RTX_FRAME_RELATED_P for push insns.
7001
7002 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
7003
7004         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
7005
7006 2008-05-12  Anatoly Sokolov <aesok@post.ru>
7007
7008         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
7009         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
7010         Use 'machine->is_leaf' instead of 'leaf_func_p'.
7011
7012 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7013
7014         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
7015         (*vec_concatv4sf_sse): This.
7016         (*sse2_concatv2si): Renamed to ...
7017         (*vec_concatv2si_sse2): This.
7018         (*sse1_concatv2si): Renamed to ...
7019         (*vec_concatv2si_sse): This.
7020         (*vec_concatv2di_rex): Renamed to ...
7021         (*vec_concatv2di_rex64): This.
7022         (*vec_concatv2si_sse4_1): New.
7023         (*vec_concatv2di_rex64_sse4_1): Likewise.
7024
7025 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
7026
7027         PR rtl-optimization/36111
7028         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
7029         that was created for swappable operands.
7030
7031 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
7032
7033         PR ada/36001
7034         * Makefile.in: Substitute GNATMAKE and GNATBIND.
7035         * configure.ac: Add call to ACX_PROG_GNAT.
7036
7037 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
7038
7039         * optc-gen.awk: Fix comment typo.
7040
7041 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7042
7043         * pretty-print.c (pp_integer_with_precision): Use
7044         HOST_LONG_LONG_FORMAT.
7045
7046 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
7047
7048         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
7049                 
7050 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
7051
7052         * config/i386/i386.c (bdesc_ptest): Removed.
7053         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
7054         (bdesc_args): Add __builtin_ia32_ptestz128,
7055         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
7056         (ix86_init_mmx_sse_builtins): Updated.
7057         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
7058         (ix86_expand_builtin): Updated.
7059
7060 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
7061
7062         * tree-cfg.c (valid_fixed_convert_types_p): New function.
7063         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
7064
7065 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
7066
7067         * value-prof.c (interesting_stringop_to_profile): Do not
7068         return early for BUILT_IN_MEMPCPY.
7069
7070 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7071
7072         * calls.c (expand_call): Don't use callgraph to increase
7073         preferred_stack_boundary.
7074
7075         * cgraph.h (cgraph_rtl_info): Use unsigned on
7076         preferred_incoming_stack_boundary.
7077
7078         * final.c (rest_of_clean_state): Use unsigned on
7079         preferred_stack_boundary.
7080
7081 2008-05-09  Tom Tromey  <tromey@redhat.com>
7082
7083         PR preprocessor/22231:
7084         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
7085         proceeding.
7086
7087 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
7088
7089         PR tree-optimization/36129
7090         * tree-ssa-ccp.c: Include value-prof.h.
7091         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
7092         built-in function was folded to a constant.
7093         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
7094
7095 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
7096             Sebastian Pop  <sebastian.pop@amd.com>
7097
7098         * tree-scalar-evolution.c: Document instantiate_scev.
7099         (instantiate_parameters_1): Renamed instantiate_scev_1.
7100         Don't use the same loop for instantiation_loop and evolution_loop.
7101         (instantiate_scev): New.
7102         (instantiate_parameters): Moved...
7103         (resolve_mixers): Update call to instantiate_scev_1 to pass the
7104         same loop twice.  Maintains the semantics for this function.
7105         * tree-scalar-evolution.h (instantiate_scev): Declare.
7106         (instantiate_parameters): ...here.  Now static inline.
7107         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
7108         instead of resolve_mixers.
7109
7110 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
7111
7112         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
7113
7114 2008-05-09  Tomas Bily  <tbily@suse.cz>
7115
7116         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
7117         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
7118         * tree-ssa-structalias.c (get_constraint_for): Likewise.
7119         * c-common.c (c_common_truthvalue_conversion): Likewise.
7120         * tree-object-size.c (compute_object_offset): Likewise.
7121         * tree-inline.c (estimate_num_insns_1): Likewise.
7122         * varasm.c (const_hash_1, compare_constant, copy_constant)
7123         (compute_reloc_for_constant, output_addressed_constants)
7124         (initializer_constant_valid_p): Likewise.
7125         * c-omp.c (check_omp_for_incr_expr): Likewise.
7126         * gimplify.c (gimplify_expr): Likewise.
7127         * c-typeck.c (c_finish_return): Likewise.
7128         * tree-vectorizer.c (supportable_widening_operation)
7129         (supportable_narrowing_operation): Likewise.
7130         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
7131         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
7132         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
7133         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
7134         (descr_info_loc): Likewise.
7135         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
7136         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
7137         (fold_unary): Likewise.
7138         * builtins.c (get_pointer_alignment): Likewise.
7139         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
7140         (instantiate_parameters_1): Likewise.
7141         * tree.c (expr_align, stabilize_reference): Likewise.
7142         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
7143         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7144         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
7145         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
7146         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
7147         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
7148         Likewise.
7149         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
7150         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
7151         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
7152         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
7153         (forward_propagate_comparison)
7154         (tree_ssa_forward_propagate_single_use_vars): Likewise.
7155         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
7156         * emit-rtl.c (component_ref_for_mem_expr)
7157         (set_mem_attributes_minus_bitpos): Likewise.
7158         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
7159         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
7160         Likewise.
7161         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
7162         (build_function_call, pointer_diff, build_compound_expr)
7163         (c_finish_return): Likewise.
7164         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
7165         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
7166         Likewise.
7167         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
7168         * expr.c (is_aligning_offset): Likewise.
7169         * tree-ssa-alias.c (is_escape_site): Likewise.
7170         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
7171         (check_all_va_list_escapes): Likewise.
7172         * tree-ssa-loop-ivopts.c (determine_base_object)
7173         (determine_common_wider_type): Likewise.
7174         * dojump.c (do_jump): Likewise.
7175         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
7176         * tree-gimple.c (is_gimple_cast): Likewise.
7177         * fold-const.c (decode_field_reference, )
7178         (fold_sign_changed_comparison, fold_unary, fold_comparison)
7179         (fold_binary): Likewise.
7180         * tree-ssa-alias-warnings.c (find_alias_site_helper)
7181         (already_warned_in_frontend_p): Likewise.
7182         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
7183         * tree.c (really_constant_p, get_unwidened): Likewise.
7184         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7185         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
7186         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
7187         Likewise.
7188         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
7189         CONVERT_EXPR_P.
7190         (CONVERT_EXPR_P): Define.
7191         (CASE_CONVERT): Define.
7192         
7193 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
7194
7195         PR middle-end/36117
7196         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
7197         (delete_unmarked_insns): When deleting a call, call
7198         delete_unreachable_blocks.
7199         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7200         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
7201
7202 2008-05-08  Richard Guenther  <rguenther@suse.de>
7203
7204         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
7205         (-ftree-salias): Likewise.
7206         (salias-max-implicit-fields): Remove param documentation.
7207         (salias-max-array-elements): Likewise.
7208         * tree-pass.h (pass_create_structure_vars): Remove.
7209         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7210         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7211         * tree-ssa-alias.c (create_structure_vars): Remove.
7212         (gate_structure_vars): Likewise.
7213         (pass_create_structure_vars): Likewise.
7214         (gate_build_alias): Likewise.
7215         (pass_build_alias): Adjust to run always and dump the function.
7216         * common.opt (ftree-salias): Hide.
7217         * passes.c (init_optimization_passes): Remove
7218         pass_create_structure_vars, adjust comment.
7219         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7220         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7221         * opts.c (decode_options): Do not set flag_tree_salias.
7222         (common_handle_option): Add OPT_ftree_salias to the backward
7223         compatibility section.
7224
7225 2008-05-08  Richard Guenther  <rguenther@suse.de>
7226
7227         * tree-flow-inline.h (var_can_have_subvars): Move ...
7228         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
7229         * tree-flow.h (var_can_have_subvars): Remove.
7230         (push_fields_onto_fieldstack): Remove.
7231         (sort_fieldstack): Likewise.
7232         (struct fieldoff): Move ...
7233         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
7234         alias_set and base_for_components fields.
7235         (sort_fieldstack): Make static.
7236         (push_fields_onto_fieldstack): Likewise.  Remove code that
7237         handles anything but RECORD_TYPEs.  Remove alias_set and
7238         base_for_components handling.
7239         (create_variable_info_for): Adjust.
7240
7241 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
7242
7243         * common.opt (Wframe-larger-than=): Shorten the help message
7244         to one line.
7245         * doc/invoke.texi (Wframe-larger-than=): Add more description.
7246
7247 2008-05-08  Rafael Espindola  <espindola@google.com>
7248
7249         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
7250         trap.
7251         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
7252         trap and that both operands are gimple values.
7253         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
7254         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
7255         is a fp operation.
7256
7257 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7258
7259         * read-rtl.c (join_c_conditions): Return the first string if the
7260         two strings are equal.
7261
7262 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7263
7264         * gensupport.h (pred_data): Add a "num_codes" field.
7265         (add_predicate_code): Declare.
7266         * gensupport.c (add_predicate_code): New function.
7267         (std_pred_table): Add an "allows_const_p" field.
7268         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
7269         Remove the (incomplete) list of such codes from the codes field.
7270         (init_predicate_table): Use add_predicate_code.  Add all
7271         RTX_CONST_OBJs if allows_const_p is true.
7272         * genrecog.c (process_define_predicate): Use add_predicate_code.
7273
7274 2008-05-08  David Daney  <ddaney@avtrex.com>
7275             Richard Sandiford  <rsandifo@nildram.co.uk>
7276         
7277         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
7278         special case of constant zero operands.
7279         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
7280         old and new values.  Special case constant zero values.
7281         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
7282         fails.
7283         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
7284         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
7285
7286 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
7287
7288         PR target/36090
7289         * simplify-rtx.c (simplify_plus_minus): Create CONST of
7290         similar RTX_CONST_OBJ before CONST_INT.
7291
7292 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
7293
7294         * stmt.c (expand_stack_restore): Change sa mode if needed.
7295
7296 2008-05-08  Richard Guenther  <rguenther@suse.de>
7297
7298         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
7299         return type to bool.
7300         (ix86_sol10_return_in_memory): Likewise.
7301         (ix86_i386elf_return_in_memory): Likewise.
7302         (ix86_i386interix_return_in_memory): Likewise.
7303         * config/i386/i386.c (ix86_return_in_memory): Likewise.
7304         (ix86_sol10_return_in_memory): Likewise.
7305         (ix86_i386elf_return_in_memory): Likewise.
7306         (ix86_i386interix_return_in_memory): Likewise.
7307
7308 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7309
7310         PR bootstrap/36180
7311         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
7312         fndecl argument.
7313         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
7314         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
7315         declared in front.
7316
7317 2008-05-08  Richard Guenther  <rguenther@suse.de>
7318
7319         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
7320         * tree-data-ref.h (struct dr_alias): Remove subvars field.
7321         (DR_SUBVARS): Remove.
7322         * tree-dfa.c (dump_subvars_for): Remove.
7323         (debug_subvars_for): Likewise.
7324         (dump_variable): Do not dump subvars.
7325         (remove_referenced_var): Do not remove subvars.
7326         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
7327         (lookup_subvars_for_var): Remove.
7328         (get_subvars_for_var): Likewise.
7329         (get_subvars_at): Likewise.
7330         (get_first_overlapping_subvar): Likewise.
7331         (overlap_subvar): Likewise.
7332         * tree-flow.h (subvar_t): Remove.
7333         (struct var_ann_d): Remove subvars field.
7334         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
7335         argument.  Remove special handling of SFTs.
7336         (compute_tag_properties): Likewise.
7337         (set_initial_properties): Likewise.
7338         (compute_call_clobbered): Likewise.
7339         (count_mem_refs): Likewise.
7340         (compute_memory_partitions): Likewise.
7341         (compute_flow_insensitive_aliasing): Likewise.
7342         (setup_pointers_and_addressables): Likewise.
7343         (new_type_alias): Likewise.
7344         (struct used_part): Remove.
7345         (used_portions): Likewise.
7346         (struct used_part_map): Likewise.
7347         (used_part_map_eq): Likewise.
7348         (used_part_map_hash): Likewise.
7349         (free_used_part_map): Likewise.
7350         (up_lookup): Likewise.
7351         (up_insert): Likewise.
7352         (get_or_create_used_part_for): Likewise.
7353         (create_sft): Likewise.
7354         (create_overlap_variables_for): Likewise.
7355         (find_used_portions): Likewise.
7356         (create_structure_vars): Likewise.
7357         * tree.def (STRUCT_FIELD_TAG): Remove.
7358         * tree.h (MTAG_P): Adjust.
7359         (struct tree_memory_tag): Remove base_for_components and
7360         unpartitionable flags.
7361         (struct tree_struct_field_tag): Remove.
7362         (SFT_PARENT_VAR): Likewise.
7363         (SFT_OFFSET): Likewise.
7364         (SFT_SIZE): Likewise.
7365         (SFT_NONADDRESSABLE_P): Likewise.
7366         (SFT_ALIAS_SET): Likewise.
7367         (SFT_UNPARTITIONABLE_P): Likewise.
7368         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
7369         (union tree_node): Remove sft field.
7370         * alias.c (get_alias_set): Remove special handling of SFTs.
7371         * print-tree.c (print_node): Remove handling of SFTs.
7372         * tree-dump.c (dequeue_and_dump): Likewise.
7373         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
7374         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
7375         * tree-predcom.c (set_alias_info): Do not set subvars.
7376         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
7377         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
7378         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
7379         (add_vars_for_offset): Remove.
7380         (add_virtual_operand): Remove special handling of SFTs.
7381         (add_call_clobber_ops): Likewise.
7382         (add_call_read_ops): Likewise.
7383         (get_asm_expr_operands): Likewise.
7384         (get_modify_stmt_operands): Likewise.
7385         (get_expr_operands): Likewise.
7386         (add_to_addressable_set): Likewise.
7387         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
7388         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
7389         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
7390         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
7391         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
7392         (tree_node_structure): Likewise.
7393         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
7394         handling of SFTs.
7395         (find_what_p_points_to): Likewise.
7396
7397 2008-05-08  Sa Liu  <saliu@de.ibm.com>
7398
7399         * config/spu/spu.md: Fixed subti3 pattern.
7400
7401 2008-05-08  Richard Guenther  <rguenther@suse.de>
7402
7403         PR middle-end/36154
7404         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
7405         sure to create a representative for trailing arrays for PTA.
7406
7407 2008-05-08  Richard Guenther  <rguenther@suse.de>
7408
7409         PR middle-end/36172
7410         * fold-const.c (operand_equal_p): Two objects which types
7411         differ in pointerness are not equal.
7412
7413 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7414
7415         * calls.c (compute_argument_block_size): Add argument tree fndecl.
7416         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
7417         (emit_library_call_value_1): Add new variable fndecl initialized by
7418         NULL_TREE. It should be the decl type of orgfun, but this information
7419         seems not to be available here, so it uses the default calling abi.
7420         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
7421         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
7422         by TARGET_RETURN_IN_MEMORY.
7423         * config/i386/i386-interix.h: Likewise.
7424         * config/i386/i386.h: Likewise.
7425         * config/i386/i386elf.h: Likewise.
7426         * config/i386/ptx4-i.h: Likewise.
7427         * config/i386/sol2-10.h: Likewise.
7428         * config/i386/sysv4.h: Likewise.
7429         * config/i386/vx-common.h: Likewise.
7430         * config/cris/cris.h: Removed #if 0 clause.
7431         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
7432         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
7433         argument.
7434         (ix86_sol10_return_in_memory): Likewise.
7435         (ix86_i386elf_return_in_memory): New.
7436         (ix86_i386interix_return_in_memory): New.
7437         * config/mt/mt-protos.h (mt_return_in_memory): New.
7438         * config/mt/mt.c: Likewise.
7439         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7440         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
7441         * config/bfin/bfin.h: Likewise.
7442         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
7443         argument.
7444         * config/bfin/bfin.c: Likewise.
7445         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7446         * config/alpha/unicosmk.h: Likewise.
7447         * config/i386/cygming.h: Likewise.
7448         * config/iq2000/iq2000.h: Likewise.
7449         * config/mips/mips.h: Likewise.
7450         * config/mn10300/mn10300.h: Likewise.
7451         * config/rs6000/rs6000.h: Likewise.
7452         * config/score/score.h: Likewise.
7453         * config/spu/spu.h: Likewise.
7454         * config/v850/v850.h: Likewise.
7455         * defaults.h: Likewise.
7456         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
7457         * expr.c (emit_block_move): Adjust use of
7458         OUTGOING_REG_PARM_STACK_SPACE.
7459         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
7460         OUTGOING_REG_PARM_STACK_SPACE.
7461         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
7462
7463 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
7464
7465         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
7466         on OMP_RETURN for OMP_FOR.
7467
7468         PR debug/35896
7469         * dwarf2out.c (dw_expand_expr, common_check): Removed.
7470         (fortran_common): New function.
7471         (gen_variable_die): Call fortran_common instead of common_check,
7472         adjust for it returning tree instead of rtx.  Formatting.
7473
7474 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7475
7476         PR rtl/7335
7477         PR rtl/33826
7478         * see.c (see_copy_insn): Copy new pure const attributes for new call.
7479         * c-decl.c (merge_decls): Ditto.
7480         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
7481         to RTL_CONST_OR_PURE_CALL_P.
7482         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
7483         Initialized DECL_LOOPING_CONST_PURE.
7484         (process_call_operands): Set tree_side_effects properly.
7485         * tree.h (TREE_READONLY_DECL_P): Removed.
7486         (DECL_IS_PURE): Renamed to DECL_PURE_P.
7487         (DECL_LOOPING_OR_CONST_P): New macro.
7488         (struct tree_function_decl): Added looping_const_or_pure_p.
7489         (ECF_*) Renumbered.
7490         (ECF_LOOPING_OR_CONST_P): New macro.
7491         * rtlanal.c (pure_const_p): Removed.
7492         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
7493         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
7494         to RTL_CONST_CALL_P.
7495         * ipa-pure-const.c (pure_const_state_e): Added looping field.
7496         (check_decl, check_tree, check_call, scan_function): Initialize
7497         looping.
7498         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
7499         (static_execute): Set looping true for recursive functions.
7500         Undo setting state to IPA_NEITHER for recursive functions.
7501         * cse.c (cse_insn): 
7502         * ifcvt.c (noce_can_store_speculate_p): Changed
7503         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
7504         RTL_CONST_OR_PURE_CALL_P.
7505         * dse.c (scan_insn): Ditto.
7506         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
7507         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
7508         RTL_CONST_OR_PURE_CALL_P.
7509         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
7510         pure_call_p to RTL_CONST_CALL_P.
7511         * gimplify.c (gimplify_call_expr): Clear side effects for
7512         non-looping pure and constant calls.
7513         * calls.c (emit_call_1): Set rtl flags from ecf flags.
7514         (flags_from_decl_or_type): Set ecf flags from decl flags.
7515         (initialize_argument_information): Turn off
7516         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
7517         Change const to pure if callee_copies is true rather than just
7518         turning off const.
7519         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
7520         way of marking pure calls.
7521         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
7522         Remove hack that was supposed to fix pr7335 and remove old
7523         way of marking pure calls.
7524         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
7525         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
7526         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
7527         RTL_CONST_OR_PURE_CALL_P.
7528         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
7529         * loop-invariant.c (find_exits, find_invariant_bb): Changed
7530         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
7531         * sched-deps.c (schedule_analyze): Ditto.
7532         * rtl.h (struct rtx_def): Use call field, unchanging field, and
7533         return_val field of calls to represent pure and const function info.
7534         (CONST_OR_PURE_CALL_P): Deleted macro.
7535         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7536         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
7537         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
7538         TREE_READONLY.
7539         * tree-optimize.c (execute_fixup_cfg): Added test for
7540         ECF_LOOPING_CONST_OR_PURE.
7541         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
7542         DECL_PURE_P.
7543         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
7544         effects for looping pure or const calls.
7545         (verify_gimple_expr): Added verification code. 
7546         * config/alpha/alpha.c (alpha_legitimize_address,
7547         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
7548         RTL_CONST_CALL_P.
7549         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
7550         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
7551         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
7552         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
7553         RTL_CONST_OR_PURE_CALL_P.
7554         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
7555         and const calls to be deleted.
7556
7557 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7558
7559         PR target/35714
7560         * config/i386/mmx.md (mmx_subv2sf3): New expander.
7561         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
7562         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
7563         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7564         to handle nonimmediate operands.
7565         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
7566         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
7567         to handle nonimmediate operands.
7568         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
7569         (mmx_pmulhrwv4hi3): New expander.  Use
7570         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7571         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
7572         (sse2_umulv1siv1di3): New expander.  Use
7573         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7574         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
7575         (mmx_eq<mode>3): New expander.  Use
7576         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7577         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
7578         (mmx_uavgv8qi3): New expander.  Use
7579         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7580         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
7581         (mmx_uavgv4hi3): New expander.  Use
7582         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7583
7584         * config/i386/sse.md
7585         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
7586         to handle nonimmediate operands.
7587         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
7588         to handle nonimmediate operands.
7589         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
7590         to handle nonimmediate operands.
7591         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
7592         to handle nonimmediate operands.
7593         (sse2_unpckhpd_exp): New expander.  Use
7594         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7595         (sse2_unpcklpd_exp): New expander.  Use
7596         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7597         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
7598         to handle nonimmediate operands.
7599         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
7600         to handle nonimmediate operands.
7601         (*sse2_<plusminus_insn><mode>3): Rename from
7602         sse2_<plusminus_insn><mode>3 insn pattern.
7603         (sse2_<plusminus_insn><mode>3): New expander.  Use
7604         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7605         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
7606         (sse2_umulv2siv2di3): New expander.  Use
7607         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7608         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
7609         (sse4_1_mulv2siv2di3): New expander.  Use
7610         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7611         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
7612         (sse2_pmaddwd): New expander.  Use
7613         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7614         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
7615         (sse2_eq<mode>3): New expander.  Use
7616         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7617         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
7618         (sse4_1_eqv2di3): New expander.  Use
7619         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7620         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
7621         (sse2_uavgv16qi3): New expander.  Use
7622         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7623         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
7624         (sse2_uavgv16qi3): New expander.  Use
7625         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7626         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
7627         (sse2_uavgv8hi3): New expander.  Use
7628         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7629         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
7630         (ssse3_pmulhrswv8hi3): New expander.  Use
7631         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7632         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
7633         (ssse3_pmulhrswv4hi3): New expander.  Use
7634         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7635
7636         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
7637         (<sse>_vmmul<mode>3): Ditto.
7638         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
7639         (divv2df3): Ditto.
7640         (ssse3_pmaddubsw128): Use register_operand for operand 1.
7641         (ssse3_pmaddubsw): Ditto.
7642
7643         * config/i386/i386.c (struct_builtin_description)
7644         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
7645         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
7646         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
7647         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
7648         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
7649         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
7650         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
7651         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
7652         (ix86_fixup_binary_operands): Assert that src1
7653         and src2 must have the same mode when swapped.
7654         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
7655         and ix86_binary_operator_ok.  Do not force operands in registers
7656         when optimizing.
7657
7658 2008-05-07  Jan Hubicka  <jh@suse.cz>
7659
7660         * cgraph.c (dump_cgraph_node): Update.
7661         * cgraph.h (cgraph_local_info): Break out inline summary.
7662         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
7663         hook.
7664         * ipa-inline (inline_summary): New accestor function.
7665         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
7666         cgraph_decide_inlining, compute_inline_parameters): Update.
7667         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
7668
7669 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
7670
7671         Cleanup ColdFire scheduling support and add V4 pipeline model.
7672
7673         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
7674         (define_attr cpu): Add cfv4 value.
7675         (define_attr type, define_attr type1): Merge into a single 'type'
7676         attribute.  Update all uses.
7677         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
7678         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
7679         Update all uses.
7680         (define_attr opx_mem, define_attr opy_mem): Remove.
7681         (define_attr op_mem): Clean up, update comment.
7682         (define_attr size): Use specific values instead of general int.
7683         (define_attr guess, define_attr split): Remove.  Update all uses.
7684         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
7685         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
7686         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
7687         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
7688         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
7689         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
7690         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
7691         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
7692         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
7693         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
7694         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
7695         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
7696         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
7697         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
7698         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
7699         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
7700         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
7701         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
7702         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
7703         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
7704         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
7705         Update or set attributes.
7706         (stack_tie): New fake instruction.
7707
7708         * config/m68k/m68k.h (TUNE_CFV4): New macro.
7709         (m68k_sched_attr_size): Update declaration.
7710         (m68k_sched_attr_type2): Remove.
7711         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
7712         Declare new bypass predicates.
7713
7714         * config/m68k/m68k.c (m68k_sched_issue_rate,
7715         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
7716         implementations.
7717         (TARGET_SCHED_ISSUE_RATE,
7718         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
7719         (override_options): Handle scheduling for ColdFire V4 core.
7720         (m68k_expand_prologue): Emit stack_tie.
7721         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
7722         'OP_TYPE_FPN'.  Update all uses.
7723         (sched_guess_p): Remove.
7724         (sched_address_type): Handle symbolic addresses.
7725         (sched_get_operand): New static function.
7726         (sched_operand_type): Merge into sched_attr_op_type.
7727         (sched_attr_op_type): Handle FP registers, handle quick constants,
7728         update.
7729         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
7730         (m68k_sched_attr_size): Update.  Move logic to ...
7731         (sched_get_attr_size_int): New static function.
7732         (sched_get_opxy_mem_type): New static function.
7733         (m68k_sched_attr_op_mem): Update.
7734         (m68k_sched_attr_type2): Remove.
7735         (sched_cfv4_bypass_data): New static variable.
7736         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
7737         (m68k_sched_issue_rate): Implement scheduler hook.
7738         (struct _sched_ib: enabled_p): New field.
7739         (m68k_sched_variable_issue): Update.  Handle V4.
7740         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
7741         sched_dump_class_func_t, sched_dump_split_class,
7742         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
7743         sched_dump_dfa_class, m68k_sched_dump): Remove.
7744         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
7745         hook.
7746         (m68k_sched_init_global): Remove statisctics dumping, introduce
7747         sanity check that all instructions have pipeline reservations.  Handle
7748         ColdFire V4 core.
7749         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
7750         Handle ColdFire V4 core.
7751         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
7752         New static functions.
7753         (m68k_sched_address_bypass_p): New bypass predicate.
7754         (sched_get_indexed_address_scale): New static function.
7755         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
7756
7757         * cf.md: Update comments.
7758         (define_attr type2): Remove.  Use 'type' attribute instead.
7759         Update all uses.
7760         (cf_ib): Rename to cfv123_ib.  Update all uses.
7761         (cf_oep): Rename to cfv123_oep.  Update all uses.
7762         (cf_chr): Rename to cfv123_chr.  Update all uses.
7763         (cf_mem): Rename to cfv123_mem.  Update all uses.
7764         (cf_mac): Move to more appropriate place.
7765         (cfv123_guess): New automaton and cpu_unit.
7766         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
7767         Update uses of 'size' attribute.  Handle before reload scheduling.
7768         (cfv123_guess): New dummy reservation for unhandled instructions.
7769         (cfv4_*): Pipeline description of ColdFire V4 core.
7770         (ignore): New reservation to handle 'ignore' type.
7771
7772 2008-05-07  Ian Lance Taylor  <iant@google.com>
7773
7774         PR middle-end/36013
7775         * gimplify.c (find_single_pointer_decl_1): Don't look through
7776         indirections.
7777         (find_single_pointer_decl): Adjust comments.
7778
7779 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
7780
7781         PR middle-end/36137
7782         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
7783         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
7784
7785         PR middle-end/36106
7786         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
7787         integral type rather than floating point, then VIEW_CONVERT_EXPR
7788         to the floating point type.
7789
7790 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7791
7792         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
7793         TFmode op0 to register.
7794
7795 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
7796
7797         * c-decl.c (grokdeclarator): Comment typo.
7798
7799 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
7800
7801         * tree-flow.h: Remove prototype for computed_goto_p.
7802         * tree-cfg.c (computed_goto_p): Make static.
7803
7804 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7805
7806         PR target/35657
7807         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
7808         (contains_aligned_value_p): This.  Handle _Decimal128.
7809         (ix86_function_arg_boundary): Only align _Decimal128 to its
7810         natural boundary and handle it properly.
7811
7812 2008-05-06  Martin Jambor  <mjambor@suse.cz>
7813
7814         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
7815         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
7816         (ipcp_method_set_orig_node): Removed.
7817         (ipcp_cval_get_cvalue_type): Removed.
7818         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
7819         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
7820         (ipcp_cval_set_cvalue_type): Removed.
7821         (ipcp_cval_get_cvalue): Removed.
7822         (ipcp_cval_set_cvalue): Removed.
7823         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
7824         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
7825         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
7826         (ipcp_cval_meet): Renamed to ipa_lattice_meet
7827         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
7828         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
7829         (ipcp_get_ith_lattice): Changed parameters.
7830         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
7831         (ipcp_lattice_from_jfunc): Changed parameters.
7832         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
7833         (ipcp_method_cval_print): Added temporary variable info.
7834         (ipcp_redirect): Removed already unused local variable caller.
7835         (ipcp_redirect): New temporary variable orig_callee_info
7836         (ipcp_redirect): Removed newly unused local variable callee.
7837         (ipcp_redirect): Removed (a bit confusing) local variable type.
7838         (ipcp_insert_stage): Added local variable info.
7839         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
7840         renamed too
7841         (ipcp_formal_create): Removed.
7842         (ipcp_method_cval_set): Removed.
7843         (ipcp_propagate_stage): Renamed lattice variables.
7844         (ipcp_method_cval_set_cvalue_type): Removed.
7845         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
7846         (ipcp_print_all_lattices): Changed printed strings to refer to 
7847         lattices rather than cvals.
7848         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
7849         (ipcp_propagate_const): Changed formal parameters.
7850         (build_const_val): Changed formal parameters.
7851         (ipcp_insert_stage): Removed useless variable cvalue
7852         (build_const_val): Changed formal parameters.
7853         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
7854         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
7855         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
7856         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
7857         (ipcp_print_func_profile_counts): Changed string from "method" to 
7858         "function"
7859         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
7860         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
7861         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
7862         (ipcp_structures_print): Renamed to ipcp_print_all_structures
7863         (ipcp_profile_print): Renamed to ipcp_print_profile_data
7864         (ipcp_lat_is_const): Changed parameters and made inline.
7865         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
7866         (ipcp_redirect): Renamed to ipcp_need_redirect_p
7867         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
7868         the predicate condition directly
7869         (ipcp_propagate_stage): Added local variable args. Removed local
7870         variable callee.  (Both are mere code simplifications.)
7871         (ipcp_method_dont_insert_const): Renamed to
7872         ipcp_node_not_modifiable_p.
7873         (ipcp_node_not_modifiable_p): Made inline.
7874         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
7875         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
7876         (ipcp_print_all_lattices): Removed variable cvalue
7877         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
7878         Updated comments.
7879
7880 2008-05-06  Olivier Hainque  <hainque@adacore.com>
7881
7882         * tree-sra.c (try_instantiate_multiple_fields): Early return
7883         if field has POINTER_TYPE.
7884
7885 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
7886
7887         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
7888         by using 'q' specifier for instruction.
7889         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
7890
7891 2008-05-06  Anatoly Sokolov <aesok@post.ru>
7892
7893         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
7894         Change mode of zero_extract from QImode to HImode.
7895         (sign bit tests peepholes): (Ditto.).
7896
7897 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
7898
7899         * config/i386/mmx.md: Remove double backslashes from asm templates.
7900         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
7901         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7902         to handle nonimmediate operands.
7903         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
7904         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7905         to handle nonimmediate operands.
7906         (*mmx_<code>v2sf3_finite): New insn pattern.
7907         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
7908         (mmx_<code>v2sf3): New expander.  Use
7909         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7910         (mmx_<plusminus_insn><mode>3): New expander.  Use
7911         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7912         (*mmx_<plusminus_insn><mode>3): New insn pattern.
7913         (mmx_add<mode>3): Removed.
7914         (mmx_ssadd<mode>3): Ditto.
7915         (mmx_usadd<mode>3): Ditto.
7916         (mmx_sub<mode>3): Ditto.
7917         (mmx_sssub<mode>3): Ditto.
7918         (mmx_ussub<mode>3): Ditto.
7919         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
7920         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
7921         to handle nonimmediate operands.
7922         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
7923         insn pattern.
7924         (mmx_smulv4hi3_highpart): New expander.  Use
7925         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7926         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
7927         insn pattern.
7928         (mmx_umulv4hi3_highpart): New expander.  Use
7929         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7930         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
7931         (mmx_<code>v4hi3): New expander.  Use
7932         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7933         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
7934         (mmx_<code>v8qi3): New expander.  Use
7935         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7936         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
7937         (mmx_<code><mode>3): New expander.  Use
7938         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7939
7940 2008-05-05  Jan Hubicka  <jh@suse.cz>
7941
7942         PR tree-optimization/36118
7943         * passes.c (pass_init_dump_file): Fix dump header.
7944
7945 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7946
7947         PR middle-end/36141
7948         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
7949         VCE for function decls.
7950
7951 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7952
7953         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
7954
7955 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7956
7957         * config/i386/i386.md (sat_plusminus): New.
7958         (plusminus_insn): Likewise.
7959         (plusminus_mnemonic): Likewise.
7960         (addsub): Removed.
7961         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
7962         (*<addsub><mode>3_cc_overflow): Renamed to ...
7963         (*<plusminus_insn><mode>3_cc_overflow): This.
7964         (*<addsub>si3_zext_cc_overflow): Renamed to ...
7965         (*<plusminus_insn>si3_zext_cc_overflow): This.
7966
7967         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
7968         (<plusminus_insn><mode>3): This.
7969         (*<addsub><mode>3): Renamed to ...
7970         (*<plusminus_insn><mode>3): This.
7971         (<sse>_vm<addsub><mode>3): Renamed to ...
7972         (<sse>_vm<plusminus_insn><mode>3): This.
7973         (sse3_h<addsub>v4sf3): Renamed to ...
7974         (sse3_h<plusminus_insn>v4sf3): This.
7975         (sse3_h<addsub>v2df3): Renamed to ...
7976         (sse3_h<plusminus_insn>v2df3): This.
7977         (<plusminus_insn><mode>3): New.
7978         (*<plusminus_insn><mode>3): Likewise.
7979         (sse2_<plusminus_insn><mode>3): Likewise.
7980         (add<mode>): Removed.
7981         (*add<mode>3): Likewise.
7982         (sse2_ssadd<mode>3): Likewise.
7983         (sse2_usadd<mode>3): Likewise.
7984         (sub<mode>3): Likewise.
7985         (*sub<mode>3): Likewise.
7986         (sse2_sssub<mode>3): Likewise.
7987         (sse2_ussub<mode>3): Likewise.
7988
7989 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
7990
7991         * gthr-single.h: Add in required interface elements as per gthr.h.
7992         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
7993         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
7994         Generalize UNUSED macro. 
7995         (__gthread_once): Add.
7996         (__gthread_key_create): Add.
7997         (__gthread_key_delete): Add.
7998         (__gthread_getspecific): Add.
7999         (__gthread_setspecific): Add.
8000         
8001 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
8002
8003         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
8004         the same size types for the indirect reference on the rhs, then
8005         create a VCE.
8006
8007 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
8008
8009         * config/i386/i386.md
8010         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
8011         one insn template instead of template series.
8012         (*xordi_1_rex64): Ditto.
8013         (*xordi_2_rex64): Ditto.
8014
8015 2008-05-05  Ira Rosen  <irar@il.ibm.com>
8016
8017         PR tree-optimization/36119
8018         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
8019         in case of SLP.
8020
8021 2008-06-04  Jan Hubicka  <jh@suse.cz>
8022
8023         tree-optimization/36100
8024         * tree-pass.h (pass_O0_always_inline): Declare.
8025         * ipa-inline.c (inline_transform): Remove dead code.
8026         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
8027         pass_O0_always_inline): New.
8028         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
8029
8030 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
8031
8032         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
8033         mnemonic in this_param move for TARGET_64BIT.
8034
8035 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
8036
8037         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
8038         (*strmovsi_rex_1): Ditto.
8039         (*strsetsi_1): Ditto.
8040         (*strsetsi_rex_1): Ditto.
8041
8042         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
8043         adddicc expanders using SWI mode iterator.
8044
8045 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
8046
8047         PR target/36121
8048         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
8049         argument handling.
8050
8051 2008-05-04  David S. Miller  <davem@davemloft.net>
8052
8053         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
8054         (sparc*-*-linux*): Use linux.h in tm_file.
8055         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
8056         compiler defaulting to 32-bit.
8057         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
8058         no longer needed.
8059         * config/sparc/linux.h: Remove definitions now obtained
8060         properly from linux.h
8061         * config/sparc/linux64.h: Likewise.
8062         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
8063         don't want this setting for 32-bit builds in a biarch compiler.
8064         * doc/install.texi: Add sparc-linux to list of targets
8065         supporting --enable-targets=all.
8066
8067 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
8068
8069         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
8070
8071 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
8072
8073         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
8074         after V4SI_FTYPE_V8HI.
8075         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
8076         case V4SI_FTYPE_V2DF.
8077
8078 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
8079
8080         * doc/invoke.texi (max-flow-memory-locations): Removed.
8081         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
8082         
8083 2008-05-03  Richard Guenther  <rguenther@suse.de>
8084
8085         PR middle-end/34973
8086         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
8087
8088 2008-05-02  David S. Miller  <davem@davemloft.net>
8089
8090         * config.gcc (need_64bit_hwint): Document libcpp dependency.
8091
8092 2008-05-02  Simon Baldwin <simonb@google.com>
8093
8094         PR bootstrap/36108
8095         * c-common.h (warn_array_subscript_range): Removed.
8096         * c-common.c (warn_array_subscript_range): Ditto.
8097         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
8098         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
8099
8100 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
8101
8102         * config/i386/i386.c (ix86_special_builtin_type): New.
8103         (bdesc_special_args): Likewise.
8104         (ix86_expand_special_args_builtin): Likewise.
8105         (ix86_init_mmx_sse_builtins): Updated.
8106         (ix86_expand_builtin): Updated.
8107         (ix86_expand_store_builtin): Removed.
8108         (ix86_expand_unop_builtin): Likewise.
8109
8110         * config/i386/mm3dnow.h (__v2sf): Moved to ...
8111         * config/i386/mmintrin.h (__v2sf): Here.
8112
8113         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
8114         const __v2sf.
8115         (_mm_loadl_pi): Likewise.
8116         (_mm_storeh_pi): Replace __v2si with __v2sf.
8117         (_mm_storel_pi): Likewise.
8118
8119         * doc/extend.texi: Correct __builtin_ia32_loadhps,
8120         __builtin_ia32_loadlps, __builtin_ia32_storehps,
8121         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
8122         __builtin_ia32_loadlpd.
8123
8124 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
8125
8126         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
8127         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
8128         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
8129         (ix86_init_mmx_sse_builtins): Updated.
8130         (ix86_expand_args_builtin): Likewise.
8131         (ix86_expand_builtin): Likewise.
8132         (ix86_expand_unop1_builtin): Renamed to ...
8133         (ix86_expand_unop_vec_merge_builtin): This.
8134
8135 2008-05-01  Jan Hubicka  <jh@suse.cz>
8136
8137         PR bootstrap/36100
8138         * ipa-inline.c (inline_generate_summary): Make static.
8139         (inline_transform): Do not call inlining at -O0; make static.
8140         * passes.c (execute_todo): Add sanity check.
8141         (execute_one_ipa_transform_pass): Execute proper flags.
8142
8143 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
8144
8145         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
8146         (DECL_NONADDRESSABLE_P): Likewise.
8147         * alias.c (record_component_aliases): Fix comment.
8148
8149 2008-05-01  Simon Baldwin <simonb@google.com>
8150
8151         * c-common.h (warn_array_subscript_range): New function.
8152         * c-common.c (warn_array_subscript_range): Ditto.
8153         * tree-vrp.c (check_array_ref): Corrected code to agree with
8154         comment, ignoring only arrays of size 0 or size 1.
8155         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
8156
8157 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8158
8159         * config/i386/i386.c (ix86_builtin_type): Replace
8160         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
8161         (bdesc_args): Updated.
8162         (ix86_init_mmx_sse_builtins): Likewise.
8163         (ix86_expand_args_builtin): Likewise.
8164
8165         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
8166         with __v1di.
8167
8168         * doc/extend.texi: Correct __builtin_ia32_palignr.
8169
8170 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8171
8172         PR target/36095
8173         * config/i386/i386.c (bdesc_crc32): Removed.
8174         (ix86_expand_crc32): Likewise.
8175         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
8176         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
8177         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
8178         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
8179         UINT_FTYPE_UINT_UCHAR.
8180         (bdesc_args): Updated. Add crc32 builtins.
8181         (ix86_init_mmx_sse_builtins): Updated.
8182         (ix86_expand_args_builtin): Updated to support subreg.
8183
8184         * doc/extend.texi: Correct __builtin_ia32_crc32di.
8185
8186 2008-05-01  Jan Hubicka  <jh@suse.cz>
8187
8188         * tree-pass.h (opt_pass): Add IPA_PASS.
8189         (varpool_node, cgraph_node): Forward declare.
8190         (ipa_opt_pass): Define.
8191         (pass_ipa_inline): Turn into ipa_opt_pass.
8192         (pass_apply_inline): Remove.
8193         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
8194         (apply_inline): Turn into ....
8195         (inline_transform): ... this one.
8196         (inline_generate_summary): New function.
8197         (pass_apply_inline): Remove.
8198         * function.h (ipa_opt_pass): Forward declare structure; typedef;
8199         vector.
8200         (struct function): Add ipa_transforms_to_apply.
8201         * passes.c (register_one_dump_file): Work on IPA_PASS.
8202         (init_optimization_passes): Remove pass_inline_parameters and
8203         pass_apply_inline.
8204         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
8205         (execute_one_pass) ... here; apply transforms when possible.
8206         (add_ipa_transform_pass, execute_ipa_summary_asses,
8207         execute_one_ipa_transform_pass): New.
8208         (execute_ipa_pass_list): Update for IPA_PASS type.
8209
8210 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8211
8212         * config/i386/i386.c (ix86_builtin_type): Add
8213         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
8214         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
8215         (bdesc_args): Add SSE4a builtins.
8216         (ix86_init_mmx_sse_builtins): Updated.
8217         (ix86_expand_args_builtin): Likewise.
8218         (ix86_expand_builtin): Likewise.
8219
8220 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8221
8222         * config/i386/i386.c (ix86_builtin_type): Add
8223         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
8224         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
8225         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
8226         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
8227         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
8228         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
8229         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
8230         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
8231         and DI_FTYPE_DI_DI_INT.
8232         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
8233         (ix86_init_mmx_sse_builtins): Updated.
8234         (ix86_expand_args_builtin): Likewise.
8235         (ix86_expand_builtin): Likewise.
8236         (ix86_expand_binop_imm_builtin): Removed.
8237
8238         * doc/extend.texi: Correct __builtin_ia32_palignr128.
8239
8240 2008-04-30  Richard Guenther  <rguenther@suse.de>
8241
8242         PR tree-optimization/32921
8243         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
8244
8245 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
8246
8247         * config/arm/arm.c (arm_unwind_emit): Use
8248         crtl->all_throwers_are_sibcalls instead of
8249         cfun->all_throwers_are_sibcalls.
8250         (arm_output_fn_unwind): Likewise.
8251         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
8252         instead of cfun->uses_pic_offset_table.
8253         (frv_expand_prologue): Likewise.
8254         (frv_frame_pointer_required): Likewise.
8255         (frv_expand_fdpic_call): Likewise.
8256         (frv_emit_movsi): Likewise.
8257         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
8258         cfun->returns_pcc_struct instead of
8259         current_function_returns_pcc_struct.
8260         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
8261         instead of cfun->calls_eh_return.
8262         (m32c_pushm_popm): Likewise.
8263         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
8264         "extern" declaration.
8265
8266 2008-04-30  Richard Guenther  <rguenther@suse.de>
8267
8268         PR tree-optimization/21636
8269         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
8270         constant address.
8271         (evaluate_stmt): Print the likely value.
8272         (ccp_visit_stmt): Avoid excessive vertical spacing.
8273
8274 2008-04-30  Rafael Espindola  <espindola@google.com>
8275
8276         * builtins.c (fold_call_expr): Return realret.
8277         * tree-ssa-threadedge.c
8278         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
8279         __builtin_object_size.
8280
8281 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
8282
8283         * gcc.c (wrapper_string): New variable.
8284         (insert_wrapper): New function.
8285         (execute): New option -wrapper.
8286         * doc/invoke.texi (Overall Options): New driver option -wrapper.
8287
8288 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
8289
8290         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
8291         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
8292         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
8293         from...
8294         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
8295         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
8296         config/rs6000/e500crtres64gprctr.asm,
8297         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
8298         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
8299         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
8300         config/rs6000/e500crtsav64gprctr.asm,
8301         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
8302         config/rs6000/e500crtsavg64gprctr.asm: New files.
8303         * config/rs6000/t-ppccomm: Add build rules for new files.
8304         (LIB2FUNCS_STATIC_EXTRA): Add new files.
8305         * config/rs6000/t-netbsd: Add build rules for new files.
8306         (LIB2FUNCS_STATIC_EXTRA): New variable.
8307         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
8308         (CRTSAVRES_DEFAULT_SPEC): Likewise.
8309         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
8310
8311 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
8312
8313         * config/i386/i386.c (ix86_builtin_type): Add
8314         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
8315         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
8316         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
8317         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
8318         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
8319         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
8320         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
8321         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
8322         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
8323         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
8324         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
8325         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
8326         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
8327         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
8328         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
8329         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
8330         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
8331         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
8332         V1DI_FTYPE_V2SI_V2SI.
8333         (bdesc_2arg): Moved to ...
8334         (bdesc_args): Here.
8335         (ix86_init_mmx_sse_builtins): Updated.
8336         (ix86_expand_args_builtin): Updated.  Take a pointer
8337         to const struct builtin_description.  Handle comparison
8338         builtin functions.
8339         (ix86_expand_sse_compare): Take a new argument for swapping operands.
8340         (ix86_expand_builtin): Updated.
8341
8342         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
8343         (ssse3_pmaddubsw128): This.
8344         (ssse3_pmaddubswv4hi3): Renamed to ...
8345         (ssse3_pmaddubsw): This.
8346
8347         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
8348         (__builtin_ia32_packssdw128): Likewise.
8349         (__builtin_ia32_packuswb128): Likewise.
8350         (__builtin_ia32_pmaddubsw): Likewise.
8351         (__builtin_ia32_pmaddubsw128): Likewise.
8352
8353 2008-04-30  Richard Guenther  <rguenther@suse.de>
8354
8355         PR tree-optimization/14847
8356         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
8357         (recognize_bits_test): Use it.
8358         (recognize_single_bit_test): Likewise.
8359
8360 2008-04-30  Martin Jambor  <mjambor@suse.cz>
8361
8362         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
8363         instead of setting number of formal parameters to zero.
8364         (ipcp_init_stage): Do not set the number of actual parameters to zero 
8365         either.
8366         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
8367         which are called with variable number of arguments.
8368         (ipcp_insert_stage): Explicitely skipping all nodes which are
8369         called with variable number of arguments.
8370         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
8371         number of parameters.
8372
8373         * ipa-prop.h (struct ipa_node_params): Added flag
8374         called_with_var_arguments
8375         (ipa_set_param_count): Added.  Changed sole setter to use it.
8376         (ipa_get_param_count): Added.  All readers of param_count
8377         converted to use it instead.
8378         (ipa_set_called_with_variable_arg): Added.
8379         (ipa_is_called_with_var_arguments): Added.
8380         (ipa_get_ith_param): Added.  All readers of param_decls converted
8381         to use it instead.
8382         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
8383         changed to use it. 
8384         (ipa_get_cs_argument_count): Added, all readers of argument_count
8385         changed to cal it.
8386         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
8387         to use it.
8388         
8389         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
8390         (struct ipcp_lattice): Renamed cval_type to type
8391         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
8392
8393         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
8394         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
8395         (ipcp_insert_stage): Changed the type of variable cvalue to tree
8396         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
8397         (build_const_val): Changed the type of parameter cvalue to tree
8398         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
8399         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
8400         
8401         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
8402         constant 
8403
8404         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
8405         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
8406         (ipa_add_method): Renamed to ipa_push_func_to_list
8407         (ipa_remove_method): Renamed to ipa_pop_func_from_list
8408         (ipa_callsite_param_count): Removed.
8409         (ipa_callsite_param_count_set): Removed.
8410         (ipa_callsite_param): Removed.
8411         (ipa_callsite_callee): Removed.
8412         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
8413         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
8414         (ipa_method_formal_count): Removed.
8415         (ipa_method_formal_count_set): Removed.
8416         (ipa_method_get_tree): Removed.
8417         (ipa_method_tree_map_create): Removed.
8418         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
8419         (ipa_create_param_decls_array): Creates the array itself
8420         (ipa_create_param_decls_array): Temporary variable info instead of 
8421         a few dereferences.
8422         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
8423         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
8424         (get_type): Removed.
8425         (ipa_jf_get_info_type): Removed.
8426         (ipa_node_create): Renamed to ipa_create_node_params
8427         (ipa_free): Renamed to ipa_free_all_node_params
8428         (ipa_nodes_create): Renamed to ipa_create_all_node_params
8429         (ipa_edges_create): Renamed to ipa_create_all_edge_args
8430         (ipa_edges_free): Renamed to ipa_free_all_edge_args
8431         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
8432         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
8433         ipa_free_all_edge_args
8434         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
8435         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
8436         (ipa_create_methodlist_node): Removed.
8437         (ipa_methodlist_method): Removed.
8438         (ipa_methodlist_method_set): Removed.
8439         (ipa_methodlist_next_method): Removed.
8440         (ipa_methodlist_next_method_set): Removed.
8441         (ipa_method_is_modified): Removed.
8442         (ipa_method_modify_create): Removed.
8443         (ipa_method_modify_init): Temporary variable info instead of a few 
8444         dereferences.
8445         (ipa_detect_param_modifications): Temporary variable info instead of 
8446         a few dereferences.
8447         (ipa_compute_jump_functions): Temporary variable info instead of 
8448         a few dereferences.
8449         (ipa_method_modify_set): Removed.
8450         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
8451         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
8452         than craph_node as the first parameter.
8453         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
8454         (ipa_method_modify_init): Removed.
8455         (ipa_compute_jump_functions): Added a temp variable instead of 
8456         repeatadly dereferencing the cgraph_edge.aux pointer
8457         (ipa_callsite_param_set_type): Removed.
8458         (ipa_compute_jump_functions): i renamed to index and moved to 
8459         an inner block
8460         (ipa_callsite_param_set_info_type_formal): Removed.
8461         (ipa_callsite_param_set_info_type): Removed.
8462         (ipa_callsite_param_map_create): Removed.
8463         (ipa_callsite_tree): Removed.
8464         (ipa_callsite_caller): Removed.
8465         (ipa_pop_func_from_list): return_method removed to return_func
8466
8467         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
8468         prefixed all values with IPA_. Changed all users.
8469         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
8470         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
8471         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
8472         (union parameter_info): Renamed to jump_func_value.
8473         (union jump_func_value): Renamed value to constant
8474         (struct ipa_jump_func): Renamed info_type to value
8475         (struct ipa_node): Renamed to ipa_node_params
8476         (struct ipa_node_params): Renamed ipa_arg_num to param_count
8477         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
8478         (struct ipa_node_params): Renamed ipa_mod to modified_flags
8479         (struct ipa_edge): Renamed to ipa_edge_args
8480         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
8481         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
8482         (struct ipa_methodlist): Renamed to ipa_func_list
8483         (struct ipa_func_list): method_p renamed to node, next_method
8484         renamed to next
8485         (ipa_methodlist_p): Removed, switched all users to struct pointer
8486         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
8487
8488 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
8489
8490         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
8491         (rs6000_emit_epilogue): Use backchain to restore only when we
8492         have a large frame.  Make use of frame pointer to restore if we
8493         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
8494
8495 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
8496
8497         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
8498         Add mode to zero_extract.
8499         (sign bit tests peepholes): (Ditto.).
8500
8501 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8502
8503         * config/i386/i386.c (ix86_builtins): Replace Prescott New
8504         Instructions in comments with SSE3.
8505         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
8506         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
8507         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
8508         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
8509         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
8510         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
8511         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
8512         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
8513         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
8514         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
8515         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
8516         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
8517         (bdesc_sse_args): Renamed to ...
8518         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
8519         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
8520         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
8521         IX86_BUILTIN_FABSQ.
8522         (bdesc_1arg): Moved to ...
8523         (bdesc_args): Here.
8524         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
8525         Instructions in comments with SSE3.
8526         (ix86_expand_sse_operands_builtin): Renamed to ...
8527         (ix86_expand_args_builtin): This.  Updated.
8528         (ix86_expand_unop1_builtin): Update comments.
8529         (ix86_expand_builtin): Updated.
8530
8531 2008-04-29  Richard Guenther  <rguenther@suse.de>
8532
8533         PR tree-optimization/36078
8534         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
8535         Update virtual SSA form after cleaning up the CFG.
8536
8537 2008-04-29  Richard Guenther  <rguenther@suse.de>
8538
8539         PR middle-end/15255
8540         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
8541
8542 2008-04-29  Richard Guenther  <rguenther@suse.de>
8543
8544         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
8545         (compute_may_aliases): Do not call finalize_ref_all_pointers.
8546         (compute_flow_insensitive_aliasing): Do not treat
8547         PTR_IS_REF_ALL pointers special.
8548         (get_smt_for): Likewise.
8549         (may_alias_p): Re-structure.
8550         (is_escape_site): A ref-all pointer conversion is not an escape site.
8551         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
8552         PTR_IS_REF_ALL pointers special.
8553         * tree-ssa-structalias.h (struct alias_info): Remove
8554         ref_all_symbol_mem_tag field.
8555         (PTR_IS_REF_ALL): Remove.
8556
8557 2008-04-29  Richard Guenther  <rguenther@suse.de>
8558
8559         PR middle-end/36077
8560         * fold-const.c (extract_muldiv_1): In combining division constants
8561         make sure to never overflow.
8562
8563 2008-04-29  Nick Clifton  <nickc@redhat.com>
8564
8565         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
8566
8567 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8568
8569         PR bootstrap/35169
8570         * optc-gen.awk: Work around HP-UX/IA awk bug.
8571
8572 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
8573
8574         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
8575         2008-04-25 commit.
8576
8577 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8578
8579         PR target/36073
8580         * config/i386/i386.md
8581         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
8582         Change operand 1 predicate to nonimmediate_operand.
8583
8584 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
8585
8586         PR debug/36060
8587         * dwarf2out.c (struct die_struct): Mark as chain_circular through
8588         die_sub field.
8589         * gengtype.c (walk_type, write_func_for_structure): Handle
8590         chain_circular.
8591         * doc/gty.texi: Document chain_circular.
8592
8593 2008-04-28  Richard Guenther  <rguenther@suse.de>
8594
8595         PR tree-optimization/36066
8596         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
8597         SCEV and loop.
8598
8599 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8600
8601         PR target/36064
8602         * config/i386/i386.md
8603         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
8604         Use match_scratch instead of match_operand for operands 3 and 4.
8605
8606 2008-04-27  Richard Guenther  <rguenther@suse.de>
8607
8608         PR tree-optimization/18754
8609         PR tree-optimization/34223
8610         * tree-pass.h (pass_complete_unrolli): Declare.
8611         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
8612         loop size before and after unconditionally of UL_NO_GROWTH in effect.
8613         Rewrite loop into loop closed SSA form if it is not already.
8614         (tree_unroll_loops_completely): Re-structure to iterate over
8615         innermost loops with intermediate CFG cleanups.
8616         Unroll outermost loops only if requested or the code does not grow
8617         doing so.
8618         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
8619         loops are available.
8620         (tree_vectorize): Instead do so here.
8621         (tree_complete_unroll): Also unroll outermost loops.
8622         (tree_complete_unroll_inner): New function.
8623         (gate_tree_complete_unroll_inner): Likewise.
8624         (pass_complete_unrolli): New pass.
8625         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
8626         uses outside of the loop.
8627         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
8628         form if it is available.  
8629         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
8630         * passes.c (init_optimization_passes): Schedule complete inner
8631         loop unrolling pass before the first CCP pass after final inlining.
8632
8633 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8634
8635         * targhooks.h (default_emutls_var_fields,
8636         default_emutls_var_init): Declare.
8637         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
8638         * target.h (struct gcc_target): Add struct emutls member.
8639         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
8640         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
8641         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
8642         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
8643         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
8644         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
8645         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
8646         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
8647         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
8648         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
8649         emit debug information.
8650         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
8651         * varasm.c: Include targhooks.h.
8652         (emutls_object_section, emutls_tmpl_section): New.
8653         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
8654         (EMUTLS_SEPARATOR): New.
8655         (prefix_name): New.
8656         (get_emutls_object_name): New.
8657         (default_emutls_var_fields): New, broken out of ...
8658         (get_emutls_object_type): ... here.  Adjust to use target hooks.
8659         (get_emutls_init_templ_addr): Adjust to use target hooks.
8660         (emutls_decl): Adjust to use target hooks.
8661         (emutls_finish): Likewise.
8662         (default_emutls_var_init): New, broken out of ...
8663         (assemble_variable): ... here.  Adjust to use target hooks.
8664         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
8665         SECCAT_EMUTLS_TMPL.
8666         * c-common.c (handle_section_attribute): Prevent overriding
8667         sections for emulated tls with special sections.
8668         * config/i386/i386.c (x86_64_elf_select_section): Add
8669         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
8670         (x86_64_elf_unique_section): Likewise.
8671         * config/vxworks.c: Include tree.h.
8672         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
8673         (vxworks_override_options): Set TLS scheme.
8674         * doc/tm.texi (Emulated TLS): New node.
8675
8676 2008-04-26  Simon Baldwin <simonb@google.com>
8677
8678         PR c/35652
8679         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
8680         with propagated string constants.
8681
8682 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
8683
8684         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
8685         constraint for operand 2 when operand 0 is memory operand.
8686         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
8687         operand 0 is memory operand.
8688         (fix_trunc<mode>_i387_with_temp): Ditto.
8689         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
8690         operand 2 when operand 1 is memory operand.
8691         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
8692         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
8693         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
8694         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8695         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
8696         operands 2,3 and 4 when operand 1 is memory operand.
8697         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
8698         is memory operand.
8699         (fistdi2_floor_with_temp): Ditto.
8700         (fist<mode>2_floor_with_temp): Ditto.
8701         (fistdi2_ceil_with_temp): Ditto.
8702         (fist<mode>2_ceil_with_temp): Ditto.
8703         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
8704
8705 2008-04-26  David Daney  <ddaney@avtrex.com>
8706
8707         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
8708         unspec_volitile.
8709         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
8710         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
8711         UNSPEC_UPDATE_GOT_VERSION): Renumber.
8712         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
8713         (compare_and_swap_12): New insn.
8714         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
8715         * config/mips/mips.c (mips_force_binary): New function.
8716         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
8717         (mips_expand_compare_and_swap_12): New function.
8718         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
8719
8720 2008-04-25  Jan Hubicka  <jh@suse.cz>
8721
8722         PR testsuite/35843
8723         * cfgexpand.c (pass_expand): Turn into RTL pass.
8724         * passes.c (execute_one_pass): Do pass typechecking after execution.
8725         * tree-pass.h (pass_expand): Turn into RTL pass.
8726
8727         * function.h (struct rtl_data): Move here fields
8728         accesses_prior_frames, calls_eh_return, saves_all_registers,
8729         has_nonlocal_goto, has_asm_statement, is_thunk,
8730         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
8731         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
8732         arg_pointer_save_area_init from struct function; turn into bool.
8733         (struct function): Move
8734         calls_eh_return, saves_all_registers, has_nonlocal_goto,
8735         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
8736         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
8737         tail_call_emit, arg_pointer_save_area_init
8738         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
8739         (current_function_returns_struct, current_function_returns_pcc_struct,
8740         current_function_calls_setjmp, current_function_calls_alloca,
8741         current_function_accesses_prior_frames,
8742         current_function_calls_eh_return, current_function_is_thunk,
8743         current_function_stdarg, current_function_profile,
8744         current_function_limit_stack, current_function_uses_pic_offset_table,
8745         current_function_uses_const_pool, current_function_has_nonlocal_label,
8746         current_function_saves_all_registers,
8747         current_function_has_nonlocal_goto,
8748         current_function_has_asm_statement): Remove accesor macros.
8749         * ra-conflict.c (global_conflicts): Update.
8750         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
8751         (suitable_for_tail_call_opt_p): Update.
8752         * builtins.c (expand_builtin_return_addr): Update.
8753         (expand_builtin_setjmp_setup): Update.
8754         (expand_builtin_nonlocal_goto): Update.
8755         * final.c (final_start_function): Update.
8756         (profile_function): Update.
8757         (leaf_function_p): Update.
8758         (only_leaf_regs_used): Update.
8759         * df-scan.c (df_get_exit_block_use_set): Update.
8760         * dojump.c (clear_pending_stack_adjust): Update.
8761         * tree-stdarg.c (gate_optimize_stdarg): Update.
8762         * gimple-low.c (lower_function_body): Update.
8763         * global.c (compute_regsets): Update.
8764         (global_alloc): Update.
8765         * dwarf2out.c (dwarf2out_begin_prologue): Update.
8766         * expr.c (expand_assignment): Update.
8767         * dse.c (dse_step0): Update.
8768         (dse_step1): Update.
8769         * c-decl.c (store_parm_decls): Update.
8770         * local-alloc.c (combine_regs): Update.
8771         (find_free_reg): Update.
8772         * function.c (assign_parms_augmented_arg_list): Update.
8773         (assign_parm_find_data_types): Update.
8774         (assign_parms): Update.
8775         (allocate_struct_function): Update.
8776         (expand_function_start): Update.
8777         (expand_function_end): Update.
8778         (get_arg_pointer_save_area): Update.
8779         (thread_prologue_and_epilogue_insns): Update.
8780         (rest_of_match_asm_constraints): Update.
8781         * stor-layout.c (variable_size): Update.
8782         * gcse.c (gcse_main): Update.
8783         (bypass_jumps): Update.
8784         * gimplify.c (gimplify_function_tree): Update.
8785         * calls.c (emit_call_1): Update.
8786         (expand_call): Update.
8787         * bt-load.c (compute_defs_uses_and_gen): Update.
8788         * except.c (sjlj_assign_call_site_values): Update.
8789         (sjlj_emit_function_enter): Update.
8790         (can_throw_external): Update.
8791         (set_nothrow_function_flags): Update.
8792         (expand_builtin_unwind_init): Update.
8793         (expand_eh_return): Update.
8794         (convert_to_eh_region_ranges): Update.
8795         (output_function_exception_table): Update.
8796         * emit-rtl.c (gen_tmp_stack_mem): Update.
8797         * cfgexpand.c (expand_used_vars): Update.
8798         (tree_expand_cfg): Update.
8799         * cfgcleanup.c (rest_of_handle_jump): Update.
8800         * explow.c (allocate_dynamic_stack_space): Update.
8801         * varasm.c (assemble_start_function): Update.
8802         (force_const_mem): Update.
8803         (mark_constant_pool): Update.
8804         * tree-optimize.c (tree_rest_of_compilation): Update.
8805         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
8806         * tree-cfg.c (notice_special_calls): Update.
8807         (is_ctrl_altering_stmt): Update.
8808         (tree_can_make_abnormal_goto): Update.
8809         (tree_purge_dead_abnormal_call_edges): Update.
8810         * config/alpha/predicates.md: Update.
8811         * config/alpha/alpha.c (alpha_sa_mask): Update.
8812         (alpha_sa_size): Update.
8813         (alpha_does_function_need_gp): Update.
8814         (alpha_expand_prologue): Update.
8815         (alpha_start_function): Update.
8816         (alpha_output_function_end_prologue): Update.
8817         (alpha_expand_epilogue): Update.
8818         * config/frv/frv.c (frv_stack_info): Update.
8819         (frv_expand_epilogue): Update.
8820         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
8821         (s390_register_info): Update.
8822         (s390_frame_info): Update.
8823         (s390_init_frame_layout): Update.
8824         (s390_can_eliminate): Update.
8825         (save_gprs): Update.
8826         * config/spu/spu.c (spu_split_immediate): Update.
8827         (need_to_save_reg): Update.
8828         (spu_expand_prologue): Update.
8829         (spu_expand_epilogue): Update.
8830         * config/sparc/sparc.md: Update.
8831         * config/sparc/sparc.c (eligible_for_return_delay): Update.
8832         (sparc_tls_got): Update.
8833         (legitimize_pic_address): Update.
8834         (sparc_emit_call_insn): Update.
8835         (sparc_expand_prologue): Update.
8836         (output_return): Update.
8837         (print_operand): Update.
8838         (sparc_function_ok_for_sibcall): Update.
8839         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
8840         * config/m32r/m32r.md: Update.
8841         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
8842         (m32r_compute_frame_size): Update.
8843         (m32r_expand_prologue): Update.
8844         (m32r_expand_epilogue): Update.
8845         (m32r_legitimize_pic_address): Update.
8846         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
8847         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
8848         * config/i386/i386.c (ix86_frame_pointer_required): Update.
8849         (gen_push): Update.
8850         (ix86_save_reg): Update.
8851         (ix86_compute_frame_layout): Update.
8852         (ix86_expand_prologue): Update.
8853         (ix86_expand_epilogue): Update.
8854         * config/sh/sh.c (output_stack_adjust): Update.
8855         (calc_live_regs): Update.
8856         (sh5_schedule_saves): Update.
8857         (sh_expand_prologue): Update.
8858         (sh_expand_epilogue): Update.
8859         (sh_setup_incoming_varargs): Update.
8860         (sh_allocate_initial_value): Update.
8861         (sh_get_pr_initial_val): Update.
8862         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
8863         * config/sh/sh.md (label:): Update.
8864         * config/avr/avr.c (out_movhi_mr_r): Update.
8865         * config/crx/crx.h (enum): Update.
8866         * config/xtensa/xtensa.h (along): Update.
8867         * config/stormy16/stormy16.c Update.
8868         (xstormy16_compute_stack_layout): Update.
8869         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
8870         (fr30_expand_prologue): Update.
8871         * config/cris/cris.c (cris_conditional_register_usage): Update.
8872         (cris_reg_saved_in_regsave_area): Update.
8873         (cris_initial_frame_pointer_offset): Update.
8874         (cris_simple_epilogue): Update.
8875         (cris_expand_prologue): Update.
8876         (cris_expand_epilogue): Update.
8877         (cris_expand_pic_call_address): Update.
8878         (cris_asm_output_symbol_ref): Update.
8879         (cris_asm_output_label_ref): Update.
8880         * config/cris/cris.md Update.
8881         * config/iq2000/iq2000.c (compute_frame_size): Update.
8882         (iq2000_expand_epilogue): Update.
8883         * config/mt/mt.h (save_direction): Update.
8884         * config/mn10300/mn10300.c (mn10300_function_value): Update.
8885         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
8886         (ia64_secondary_reload_class): Update.
8887         * config/m68k/m68k.c (m68k_save_reg): Update.
8888         (m68k_expand_prologue): Update.
8889         (m68k_expand_epilogue): Update.
8890         (legitimize_pic_address): Update.
8891         * config/rs6000/rs6000.c (rs6000_got_register): Update.
8892         (first_reg_to_save): Update.
8893         (first_altivec_reg_to_save): Update.
8894         (compute_vrsave_mask): Update.
8895         (compute_save_world_info): Update.
8896         (rs6000_stack_info): Update.
8897         (spe_func_has_64bit_regs_p): Update.
8898         (rs6000_ra_ever_killed): Update.
8899         (rs6000_emit_eh_reg_restore): Update.
8900         (rs6000_emit_allocate_stack): Update.
8901         (rs6000_emit_prologue): Update.
8902         (rs6000_emit_epilogue): Update.
8903         (rs6000_output_function_epilogue): Update.
8904         (output_profile_hook): Update.
8905         (rs6000_elf_declare_function_name): Update.
8906         * config/rs6000/rs6000.h (rs6000_args): Update.
8907         * config/rs6000/rs6000.md: Update.
8908         * config/mcore/mcore.c (mcore_expand_prolog): Update.
8909         * config/arc/arc.c (arc_output_function_epilogue): Update.
8910         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
8911         * config/darwin.c (machopic_function_base_name): Update.
8912         * config/score/score3.c (score3_compute_frame_size): Update.
8913         (rpush): Update.
8914         (rpop): Update.
8915         (score3_epilogue): Update.
8916         * config/score/score7.c (score7_compute_frame_size): Update.
8917         (score7_prologue): Update.
8918         (score7_epilogue): Update.
8919         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
8920         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
8921         * config/arm/arm.c (use_return_insn): Update.
8922         (require_pic_register): Update.
8923         (arm_load_pic_register): Update.
8924         (arm_compute_save_reg0_reg12_mask): Update.
8925         (arm_compute_save_reg_mask): Update.
8926         (thumb1_compute_save_reg_mask): Update.
8927         (output_return_instruction): Update.
8928         (arm_output_function_prologue): Update.
8929         (arm_output_epilogue): Update.
8930         (arm_get_frame_offsets): Update.
8931         (arm_expand_prologue): Update.
8932         (thumb_pushpop): Update.
8933         (thumb_exit): Update.
8934         (thumb1_expand_prologue): Update.
8935         (thumb1_expand_epilogue): Update.
8936         (arm_unwind_emit): Update.
8937         (arm_output_fn_unwind): Update.
8938         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
8939         * config/arm/arm.md: Update.
8940         * config/pa/pa.md: Update.
8941         * config/pa/pa.c (legitimize_pic_address): Update.
8942         (compute_frame_size): Update.
8943         (hppa_expand_prologue): Update.
8944         (hppa_expand_epilogue): Update.
8945         (borx_reg_operand): Update.
8946         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
8947         (HARD_REGNO_RENAME_OK): Update.
8948         * config/mips/mips.c (mips_global_pointer): Update.
8949         (mips_save_reg_p): Update.
8950         (mips_compute_frame_info): Update.
8951         (mips_frame_pointer_required): Update.
8952         (mips_expand_prologue): Update.
8953         (mips_expand_epilogue): Update.
8954         (mips_can_use_return_insn): Update.
8955         (mips_reorg_process_insns): Update.
8956         * config/v850/v850.c (compute_register_save_size): Update.
8957         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
8958         * config/mmix/mmix.c (along): Update.
8959         (mmix_expand_epilogue): Update.
8960         * config/bfin/bfin.c (legitimize_pic_address): Update.
8961         (must_save_p): Update.
8962         (stack_frame_needed_p): Update.
8963         (add_to_reg): Update.
8964         (bfin_expand_prologue): Update.
8965         * stmt.c (expand_asm_operands): Update.
8966         * reload1.c (reload): Update.
8967         (init_elim_table): Update.
8968
8969 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
8970         
8971         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
8972         
8973 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
8974
8975         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
8976         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
8977         (mov<mode>): Removed.
8978         (*movv4sf_internal): Likewise.
8979         (*movv2df_internal): Likewise.
8980
8981 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
8982
8983         * config.gcc (crx-*-elf): Remove deprecation.
8984
8985 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
8986
8987         * config/i386/cygming-crtend.c (register_frame_ctor): Register
8988         __gcc_deregister_frame with atexit.
8989         (deregister_frame_dtor): Remove.
8990
8991 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
8992             Nathan Sidwell  <nathan@codesourcery.com>
8993
8994         * config/rs6000/rs6000.opt (mspe): Remove Var property.
8995         (misel): Likewise.
8996         * config/rs6000/rs6000.h (rs6000_spe): Declare.
8997         (rs6000_isel): Likewise.
8998         * config/rs6000/rs6000.c (rs6000_spe): New variable.
8999         (rs6000_isel): New variable.
9000         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
9001
9002 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9003
9004         PR c++/35758
9005         * c-common.c (handle_vector_size_attribute): Call
9006         lang_hooks.types.reconstruct_complex_type instead of
9007         reconstruct_complex_type.
9008         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
9009         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
9010         * langhooks.h (struct lang_hooks_for_types): Add
9011         reconstruct_complex_type hook.
9012         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
9013         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
9014
9015 2008-04-24  Richard Guenther  <rguenther@suse.de>
9016
9017         * c-common.h (check_builtin_function_arguments): Declare.
9018         * c-common.c (validate_nargs): New function.
9019         (check_builtin_function_arguments): Likewise.
9020         * c-typeck.c (build_function_call): Call
9021         check_builtin_function_arguments.
9022         * builtins.c (fold_builtin_classify): Remove error reporting code.
9023         (fold_builtin_unordered_cmp): Likewise.
9024         (fold_builtin_1): Likewise.
9025         (fold_builtin_n): Likewise.
9026
9027 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9028
9029         PR tree-optimization/36008
9030         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
9031         the original op1, rather than delta by step.
9032
9033 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
9034             Sebastian Pop  <sebastian.pop@amd.com>
9035
9036         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
9037         eliminate_local_variables_stmt, eliminate_local_variables,
9038         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
9039         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
9040         of code delimited by two edges in the CFG.
9041         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
9042         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
9043         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
9044         the case of parallelisation of reductions.
9045         (expr_invariant_in_region_p): New.
9046
9047         * tree-flow.h (gather_blocks_in_sese_region): Declared.
9048         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
9049
9050 2008-04-24  Ira Rosen  <irar@il.ibm.com>
9051             Richard Guenther  <rguenther@suse.de>
9052
9053         PR tree-optimization/36034
9054         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
9055         incapable of dealing with loads with gaps.
9056
9057 2008-04-24  Rafael Espindola  <espindola@google.com>
9058
9059         * tree-flow.h (vrp_evaluate_conditional): Change signature.
9060         * tree-ssa-propagate.c (fold_predicate_in): Update call to
9061         vrp_evaluate_conditional.
9062         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
9063         (vrp_evaluate_conditional): Split the cond argument.
9064         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
9065         (simplify_stmt_for_jump_threading): Update call to
9066         vrp_evaluate_conditional.
9067
9068 2008-04-24  Ira Rosen  <irar@il.ibm.com>
9069
9070         PR tree-optimization/35982
9071         * tree-vect-analyze.c (vect_check_interleaving): Check that the
9072         interleaved data-refs are of the same type.
9073
9074 2008-04-24  Danny Smith  <dannysmith@users.net>
9075
9076         * c-format.c (check_format_info_main): Use strncmp rather than a
9077         magic prefix to handle multichar length specs.
9078         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
9079         Don't prefix "I64" and "I32" with '\0'.
9080
9081 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9082
9083         PR target/36015
9084         * config/i386/i386.c (init_cumulative_args): Don't pass anything
9085         in registers for -m32 only if stdarg_p (fntype).
9086
9087 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
9088
9089         PR rtl-optimization/36006
9090         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
9091         temp to op0 in order to avoid invalid rtx sharing.
9092
9093 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
9094
9095         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
9096         check TREE_INVARIANT.
9097         * tree-gimple.c (is_gimple_address): New.
9098         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
9099         * tree-gimple.h (is_gimple_address): New.
9100         * tree.h (decl_address_invariant_p): New.
9101         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
9102         (build_string): Likewise.
9103         (decl_address_invariant_p): New, from is_gimple_invariant_address.
9104         (tree_invariant_p_1): Likewise.
9105         (save_expr): Use it.
9106         (tree_invariant_p): New.
9107         (skip_simple_arithmetic): Use it.
9108         (stabilize_reference_1): Use it.
9109         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
9110         simplify.
9111         (build1_stat): Drop code to compute TREE_INVARIANT.
9112         (build2_stat): Drop code to compute TREE_INVARIANT.
9113         (build3_stat): Drop code to compute TREE_INVARIANT.
9114         (build4_stat): Drop code to compute TREE_INVARIANT.
9115         (build5_stat): Drop code to compute TREE_INVARIANT.
9116         (build7_stat): Drop code to compute TREE_INVARIANT.
9117         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
9118         * tree.h (struct tree_base): Remove invariant_flag.
9119         (TREE_INVARIANT): Remove.
9120         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
9121         (fold_builtin_expect): Check TREE_CONSTANT.
9122         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
9123         * c-tree.h (c_expr_to_decl): Drop third parameter.
9124         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
9125         (build_c_cast): Don't set TREE_INVARIANT.
9126         (pop_init_level): Don't set TREE_INVARIANT.
9127         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
9128         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
9129         TREE_CONSTANT.
9130         (gimplify_init_constructor): Don't set TREE_INVARIANT.
9131         (gimplify_addr_expr): Adjust comment.
9132         * tree-mudflap.c (mf_build_string):
9133         * print-tree.c (print_node): Don't print TREE_INVARIANT.
9134         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
9135         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
9136         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
9137         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
9138         * langhooks.h (struct lang_hooks): Drop third parameter from
9139         expr_to_decl.
9140
9141 2008-04-23  Richard Guenther  <rguenther@suse.de>
9142
9143         PR tree-optimization/27799
9144         PR tree-optimization/32921
9145         PR tree-optimization/32624
9146         * tree-ssa-structalias.c (merge_smts_into): Only merge the
9147         SMTs aliases and the tag itself into the solution.
9148         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
9149         merge the points-to solution back into the SMT aliases.
9150         (may_alias_p): Use alias_set_subset_of instead of
9151         aliases_conflict_p.  A pointer which points to
9152         memory with alias set zero may access any variable.
9153
9154 2008-04-23  Richard Guenther  <rguenther@suse.de>
9155
9156         * alias.c (alias_set_subset_of): Correctly handle asking
9157         if zero is a subset of an alias set with zero child.
9158         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
9159         (compute_flow_insensitive_aliasing): Correctly walk all
9160         pointers.  Do not unnecessarily union sets.
9161
9162 2008-04-23  Richard Guenther  <rguenther@suse.de>
9163
9164         PR middle-end/36021
9165         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
9166
9167 2008-04-22  Tomas Bily  <tbily@suse.cz>
9168
9169         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
9170         unreachable case.
9171         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
9172         NON_LVALUE_EXPR.
9173         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9174         * tree-ssa-structalias.c (get_constraint_for): Likewise.
9175         * tree-inline.c (estimate_num_insns_1): Likewise.
9176         * varasm.c (const_hash_1, compare_constant, copy_constant)
9177         (compute_reloc_for_constant, output_addressed_constants): Likewise.
9178         * emit-rtl.c (component_ref_for_mem_expr)
9179         (set_mem_attributes_minus_bitpos): Likewise.
9180         * expr.c (highest_pow2_factor, expand_expr_real_1, )
9181         (is_aligning_offset): Likewise.
9182         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
9183         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
9184         * dojump.c (do_jump): Likewise.
9185         * builtins.c (get_pointer_alignment, get_memory_rtx)
9186         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
9187         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
9188
9189 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
9190
9191         PR rtl-optimization/36017
9192         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
9193         expanding the library call.
9194
9195 2008-04-22  Ian Lance Taylor  <iant@google.com>
9196
9197         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
9198         than size_in_bytes.
9199
9200 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
9201
9202         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
9203         of LR/CTR moves for Power6.
9204
9205 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9206
9207         PR middle-end/36003
9208         * passes.c (init_optimization_passes): Remove
9209         pass_fast_rtl_byte_dce.
9210         
9211 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
9212
9213         PR target/29096
9214         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
9215         builtin functions to generate faster code.
9216         (_mm_cvtpu16_ps): Ditto.
9217         (_mm_cvtpi32x2_ps): Ditto.
9218
9219 2008-04-22  Nick Clifton  <nickc@redhat.com>
9220
9221         * common.opt (ftree-loop-distribution): Add Optimization
9222         attribute.
9223
9224         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
9225         (frv_expand_builtin_va_start): Likewise.
9226
9227         * config/arm/arm.c (thumb_find_work_register): Fix location of
9228         argument register count.
9229
9230 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9231
9232         Support scheduling for ColdFire V1 and V3 microarchitecture.
9233         Improve scheduling of multiplication instructions.
9234
9235         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
9236         (mac): New instruction attribute.
9237         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
9238         (m68k_sched_mac): New variable.
9239         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
9240         Handle cfv1 and cfv3.
9241         (max_insn_size): New static variable.
9242         (struct _sched_ib): New type.
9243         (sched_ib): New static variable.
9244         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
9245         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
9246         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
9247         Update.
9248         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
9249         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
9250         new variables.  Update.
9251         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
9252         Add modeling of cfv3 instruction buffer.  Update.
9253         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
9254         * config/m68k/m68k.h (TUNE_CFV3): New macro.
9255         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
9256         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
9257         a particular reservation applies to.
9258         (type2): Reorganize attribute values.  Rename alu to alu_reg,
9259         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
9260         to mul_l and mul_w.
9261         (cf_ib_*): Simplify description of instruction buffer.
9262         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
9263         (cf_mem): Split into cf_mem1 and cf_mem2.
9264         (cf_v2_move_??): Rename to cfv12_alu_??.
9265         (cf_v2_move_l_??): Rename to cfv12_omove_??.
9266         (cf_v2_mul_??): Remove reservations.
9267         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
9268         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
9269         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
9270         appropriate place.
9271         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
9272         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
9273         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
9274         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
9275         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
9276         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
9277         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
9278         expansions of the above reservations for instructions of sizes
9279         1, 2 and 3 words.
9280
9281 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9282
9283         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
9284
9285 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
9286
9287         * coverage.c: Include tree-pass.h.
9288         (coverage_counter_alloc): Print da_file_name to the dump file.
9289
9290 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
9291
9292         * sbitmap.c (sbitmap_range_empty_p): New function.
9293         * sbitmap.h (sbitmap_range_empty_p): New function.
9294         * bitmap.h: Now includes obstack.h.
9295
9296 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
9297             Kenneth Zadeck  <zadeck@naturalbridge.com>
9298
9299         * dbgcnt.def (ra_byte_scan): Added.
9300         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
9301         when the last hit happens for a counter.  
9302         * timevar.def (TV_DF_BYTE_LR): New variable.
9303         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
9304         * passes.c (pass_fast_rtl_byte_dce): New pass.
9305         * fwprop.c (update_df): Added mode to call df_ref_create.
9306         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9307         DF_REF_EXTRACT_OFFSET.
9308         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
9309         DF_BYTE_LR_OUT, df_byte_lr): New macro.
9310         (df_mm): New enum.
9311         (df_ref_extract): Added mode field.
9312         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
9313         DF_REF_EXTRACT_OFFSET.
9314         (DF_REF_EXTRACT_MODE): New macro.
9315         (df_byte_lr_bb_info): New structure.
9316         (df_print_byte_regset, df_compute_accessed_bytes, 
9317         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
9318         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
9319         df_byte_lr_simulate_uses,
9320         df_byte_lr_simulate_artificial_refs_at_top,
9321         df_byte_lr_simulate_artificial_refs_at_end,
9322         df_compute_accessed_bytes): New function.
9323         (df_ref_create): Add parameter.
9324         (df_byte_lr_get_bb_info): New inline function.
9325         * df-scan.c (df_ref_record, df_uses_record,
9326         df_ref_create_structure): Added mode parameter.
9327         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
9328         df_defs_record, df_uses_record, df_get_conditional_uses,
9329         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
9330         df_entry_block_defs_collect, df_exit_block_uses_collect):
9331         Added mode parameter to calls to df_ref_record, df_uses_record,
9332         df_ref_create_structure.
9333         (df_ref_equal_p, df_ref_compare): Added test for modes.
9334         (df_ref_create_structure): Added code to set mode.  Renamed
9335         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9336         DF_REF_EXTRACT_OFFSET.
9337         * df-core.c (df_print_byte_regset): New function.
9338         * df-byte-scan.c: New file.
9339         * df-problems.c (df_rd_transfer_function): Removed unnecessary
9340         calls to BITMAP_FREE.  
9341         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
9342         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
9343         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
9344         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
9345         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
9346         df_byte_lr_local_compute, df_byte_lr_init,
9347         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
9348         df_byte_lr_transfer_function, df_byte_lr_free, 
9349         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
9350         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
9351         df_byte_lr_simulate_uses,
9352         df_byte_lr_simulate_artificial_refs_at_top,
9353         df_byte_lr_simulate_artificial_refs_at_end): New function.
9354         * dce.c (byte_dce_process_block): New function.
9355         (dce_process_block): au is now passed in rather than computed
9356         locally.  Changed loops that look at artificial defs to not look
9357         for conditional or partial ones, because there never are any.  
9358         (fast_dce): Now is able to drive byte_dce_process_block or 
9359         dce_process_block depending on the kind of dce being done.
9360         (rest_of_handle_fast_dce): Add parameter to fast_dce.
9361         (rest_of_handle_fast_byte_dce): New function.
9362         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
9363         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
9364
9365 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
9366
9367         PR fortran/35019
9368         * gcc.h: Added fortran options that take arguments to
9369         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
9370         macros.
9371
9372 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
9373
9374         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
9375         scalarization if on the LHS and not a full access.
9376
9377 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9378
9379         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
9380
9381 2008-04-18  Rafael Espindola  <espindola@google.com>
9382
9383         * tree-vrp.c (find_case_label_index): Fix the binary search.
9384         (find_case_label_range): New.
9385         (vrp_visit_switch_stmt): Use find_case_label_range.
9386         (simplify_switch_using_ranges): Use find_case_label_range.
9387
9388 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9389
9390         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
9391         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
9392
9393 2008-04-18  Tom Tromey  <tromey@redhat.com>
9394
9395         PR libcpp/15500:
9396         * doc/cpp.texi (Implementation-defined behavior): Mention
9397         -finput-charset.
9398
9399 2008-04-18  Ian Lance Taylor  <iant@google.com>
9400
9401         * fold-const.c (pointer_may_wrap_p): New static function.
9402         (fold_comparison): Add another test for pointer overflow.  Use
9403         pointer_may_wrap_p to disable some false positives.
9404
9405 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
9406           
9407         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
9408         (fname_as_string): Match updated cpp_interpret_string prototype.
9409         (fix_string_type): Support char16_t* and char32_t*.
9410         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
9411         derivative) nodes.  Register as builtin if C++0x.
9412         (c_parse_error): Support CPP_CHAR{16,32}.
9413         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
9414         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
9415         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
9416         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
9417         CTI_CHAR32_ARRAY_TYPE>: New elements.
9418         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
9419         char32_type_node, signed_char32_type_node, char16_array_type_node,
9420         char32_array_type_node): New defines.
9421         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
9422         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
9423         (lex_string): Support CPP_STRING{16,32}, match updated
9424         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
9425         (lex_charconst): Support CPP_CHAR{16,32}.
9426         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
9427         and CPP_STRING{16,32}.
9428
9429 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
9430
9431         PR bootstrap/35457
9432         * aclocal.m4: Regenerate.
9433         * configure: Regenerate.
9434
9435 2008-04-18  Jan Hubicka  <jh@suse.cz>
9436
9437         * except.c (dw2_size_of_call_site_table,
9438         sjlj_size_of_call_site_table): Use vector API for call_site_record.
9439
9440         * cgraphbuild.c (build_cgraph_edges): Update.
9441         * tree-pass.h: Update comment.
9442         * final.c (leaf_function_p): Update.
9443         (leaf_renumber_regs): Update.
9444         (rest_of_clean_state): Update.
9445         * omp-low.c (expand_omp_parallel): Update.
9446         * ipa-reference.c (analyze_function): Update.
9447         * reorg.c (find_end_label): Update.
9448         (optimize_skip): Update.
9449         (fill_simple_delay_slots): Update.
9450         (fill_simple_delay_slots): Update.
9451         (make_return_insns): Update.
9452         (dbr_schedule): Update.
9453         * gimple-low.c (record_vars_into): Update.
9454         * cfgbuild.c (make_edges): Update.
9455         * function.c (assign_stack_local): Update.
9456         (assign_parm_adjust_stack_rtl): Update.
9457         (locate_and_pad_parm): Update.
9458         (allocate_struct_function): Do not initialize stack_alignment_needed
9459         and preferred_stack_boundary here.
9460         (stack_protect_prologue): Update.
9461         (stack_protect_epilogue): Update.
9462         (expand_function_start): Initialize stack_alignment_needed,
9463         preferred_stack_boundary and max_jumptable_ents.
9464         (expand_function_end): Update.
9465         (free_after_compilation): Do not NULLify epilogue_delay_list.
9466         * function.h (struct rtl_data): Add stack_protect_guard,
9467         stack_alignment_needed,
9468         preferred_stack_boundary, epilogue_delay_list.
9469         (struct function): Remove value_histograms, stack_alignment_needed,
9470         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
9471         last_label_uid,
9472         unexpanded_var_list, stack_protect_guard.
9473         (current_function_epilogue_delay_list): Remove.
9474         * ipa-type-escape.c (analyze_function): Update.
9475         * gimplify.c (pop_gimplify_context): Update comment.
9476         * calls.c (expand_call): Update.
9477         (emit_library_call_value_1): Update.
9478         * except.c (set_nothrow_function_flags): Update.
9479         * cfgexpand.c (get_decl_align_unit): Update.
9480         (create_stack_guard): Update.
9481         (estimated_stack_frame_size): Update.
9482         (expand_used_vars): Update.
9483         (tree_expand_cfg): Free histogram earliers, init expansion variables.
9484         * explow.c (allocate_dynamic_stack_space): Update.
9485         * tree-ssa-live.c (remove_unused_locals): Update.
9486         * varasm.c (mark_constant_pool): Update.
9487         * tree-inline.c (remap_decls): Update.
9488         (initialize_cfun): Update.
9489         (declare_return_variable): Update.
9490         (inline_forbidden_p): Update.
9491         (expand_call_inline): Update.
9492         (declare_inline_vars): Update.
9493         (tree_function_versioning): Update.
9494         * tree-flow.h (value_histograms): New.
9495         (VALUE_HISTOGRAMS): New macro.
9496         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
9497         last_label_uid.
9498         * tree-cfg.c (set_bb_for_stmt): Update.
9499         (replace_by_duplicate_decl): Update.
9500         (move_block_to_fn): Update.
9501         (new_label_mapper): Update.
9502         (dump_function_to_file): Update.
9503         * ipa-struct-reorg.c (build_data_structure): Update.
9504         * cfgrtl.c (print_rtl_with_bb): Update.
9505         * reload1.c (reload): Update.
9506         (reload): Update.
9507         * config/i386/i386.c (setup_incoming_varargs_64,
9508         ix86_compute_frame_layout): Update.
9509         * config/arc/arc.c (arc_output_function_epilogue): Update.
9510
9511 2008-04-18  Marius Strobl <marius@FreeBSD.org>
9512
9513         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
9514         for FreeBSD as well.
9515         * gthr-posix95.h: Likewise.
9516
9517 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
9518
9519         PR rtl-optimization/35838
9520         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
9521         out the byte offset of the first subreg.
9522
9523 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
9524
9525         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
9526         to split_ti instead of three separate calls with single member arrays.
9527         (subti3 splitter): Ditto.
9528         (adddi3 splitter): Ditto with split_di.
9529         (subdi3 splitter): Ditto.
9530         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
9531         two separate calls with single member arrays.  Swap match_dup
9532         operands 1 and 2 to better fit into the array.
9533         (negdi2 splitter): Ditto with split_di.
9534         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
9535         two separate calls with single member arrays.  Swap match_dup operands
9536         6 and 7 to better fit into the array.
9537
9538 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
9539
9540         * config/i386/i386.c (sse_builtin_type): New.
9541         (bdesc_sse_args): Likewise.
9542         (bdesc_sse_3arg): Removed.
9543         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9544         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
9545         IX86_BUILTIN_ROUNDPS.
9546         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
9547         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
9548         IX86_BUILTIN_ROUNDPS.
9549         (ix86_expand_sse_4_operands_builtin): Removed.
9550         (ix86_expand_sse_operands_builtin): New.
9551         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
9552         and CODE_FOR_sse4_1_roundps.
9553         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9554         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
9555
9556 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
9557
9558         PR target/35907
9559         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
9560         regs before frame pop when needed.  If use_backchain_to_restore_sp
9561         then load backchain into a temp reg to restore vr and vrsave.  Add
9562         code to restore vr after frame pop if possible.
9563
9564 2008-04-17  Richard Guenther  <rguenther@suse.de>
9565
9566         * tree-vn.c (expressions_equal_p): Do not check type
9567         equality or compatibility before calling operand_equal_p.
9568         * fold-const.c (operand_equal_p): Check equivalence of
9569         integer constants before bailing out due to signedness or
9570         precision differences.
9571         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
9572         spurious differences in type qualification.  Ignore types
9573         for COMPONENT_REFs at all.
9574
9575 2008-04-17  Christian Bruel  <christian.bruel@st.com>
9576
9577         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
9578         msw_skip comparison.
9579         
9580 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
9581
9582         PR c/35739
9583         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
9584         reg type.
9585
9586         PR tree-optimization/35899
9587         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
9588         rather than TREE_OPERAND.
9589
9590 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
9591
9592         PR target/35944
9593         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
9594         temporary registers.  Change operand predicate to general_operand.
9595         (remainderxf3): Ditto.
9596
9597 2008-04-16  Richard Guenther  <rguenther@suse.de>
9598
9599         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
9600         * tree-affine.c (aff_combination_expand): Look through some
9601         conversions.
9602
9603 2008-04-15  Doug Kwan  <dougkwan@google.com>
9604
9605         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
9606         for hex printing.
9607         * tree-pretty-print.c (dump_generic_node): Ditto.
9608         * final.c (output_addr_const): Ditto.
9609         * dwarf2out.c (output_cfi): Ditto.
9610         * c-pretty-print.c (pp_c_integer_constant): Ditto.
9611         * print-rtl.c (print_rtx): Ditto.
9612         * print-tree.c (print_node_brief, print_node): Ditto.
9613         * c-common.c (match_case_to_enum_1): Ditto.
9614         * sched-vis.c (print_value): Ditto.
9615         * config/i386/i386.c (print_operand): Cast to long unsigned int
9616         for hex printing.
9617
9618 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
9619         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
9620         MS Windows VirtualProtect function.
9621
9622 2008-04-15  Jan Hubicka  <jh@suse.cz>
9623
9624         * gengtype.c (write_root): Param_is argument is OK.
9625         * expr.c (expand_expr_real_1): Update call of get_exception_*.
9626         * function.h: Include varray.h
9627         (rtl_eh): New stucture based on except.c one.
9628         (call_site_record): New forward declaration and vector type.
9629         * calls.c (emit_call_1): Do not call
9630         note_current_region_may_contain_throw.
9631         * except.c (eh_status): Remove cur_region, try_region since they are
9632         unused.
9633         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
9634         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
9635         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
9636         Remove call_site_data_used, call_site_data_size.
9637         Turn call_site_record into vector in function.h.
9638         (note_current_region_may_contain_throw): Remove.
9639         (get_exception_pointer, get_exception_filter): Do not take struct
9640         function argument; update.
9641         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
9642         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
9643         build_post_landing_pads, dw2_build_landing_pads,
9644         sjlj_assign_call_site_values, sjlj_mark_call_sites,
9645         sjlj_emit_function_enter, sjlj_emit_function_enter, 
9646         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9647         sjlj_build_landing_pads, finish_eh_generation,
9648         remove_exception_handler_label, remove_eh_handler,
9649         maybe_remove_eh_handler, add_reachable_handler,
9650         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
9651         add_action_record, collect_one_action_chain, add_call_site,
9652         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
9653         sjlj_output_call_site_table, output_function_exception_table,
9654         * except.h (note_current_region_may_contain_throw): Remove
9655         (get_exception_pointer, get_exception_filter): Do not take struct
9656         function argument.
9657         * Makefile.in (GTFILES): Put varargs before struct function.
9658
9659 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9660
9661         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
9662         punt for STRING_CST.
9663         (get_constraint_for): Deal with STRING_CST here instead.
9664
9665 2008-04-15  Richard Guenther  <rguenther@suse.de>
9666
9667         * tree-ssa-propagate.c (substitute_and_fold): Substitute
9668         statements in a basic-block with a backward walk.  Do not
9669         substitute into dead statements but instead remove those.
9670
9671 2008-04-15  Richard Guenther  <rguenther@suse.de>
9672
9673         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
9674         to zero, thus disable creation of SFTs.
9675
9676 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9677
9678         * tree-predcom.c (suitable_reference_p): Return false if the
9679         reference can throw.
9680
9681 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
9682
9683         PR c/35751
9684         * c-decl.c (finish_decl): If extern or static var has variable
9685         size, set TREE_TYPE (decl) to error_mark_node.
9686
9687 2008-04-15  Rafael Espindola  <espindola@google.com>
9688
9689         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
9690         variable arg1.
9691
9692 2008-04-15  Richard Guenther  <rguenther@suse.de>
9693
9694         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9695         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
9696         (visit_reference_op_load): Do walk vuse-vdef chains on
9697         vn_reference_lookup.
9698         (visit_reference_op_store): But do not here.
9699         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
9700         vn_reference_lookup.
9701         (vn_lookup_with_vuses): But do so here.
9702
9703 2008-04-14  Ian Lance Taylor  <iant@google.com>
9704
9705         * fold-const.c (fold_overflow_warning): Remove assertion.
9706
9707 2008-04-15  Ben Elliston  <bje@au.ibm.com>
9708
9709         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
9710         temp1 local variables.
9711
9712 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
9713
9714         PR target/35661
9715         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
9716         ".text.unlikely" section as executable.
9717
9718 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
9719
9720         * config/ia64/ia64.c (rtx_needs_barrier): Handle
9721         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
9722         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
9723         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
9724         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
9725         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
9726         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
9727
9728 2008-04-14  Ian Lance Taylor  <iant@google.com>
9729
9730         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
9731         * fold-const.c (fold_comparison): If appropriate, test
9732         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
9733         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
9734         reassociating a pointer type.
9735         * doc/invoke.texi (Optimize Options): Document that
9736         -fstrict-overflow applies to pointer wraparound.
9737
9738 2008-04-13  Jan Hubicka  <jh@suse.cz>
9739
9740         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
9741
9742 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
9743
9744         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
9745         we are going to "save the world".
9746
9747 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
9748
9749         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
9750         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
9751         operand 0 constraint, not "=".
9752
9753 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
9754
9755         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
9756
9757 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9758
9759         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
9760         of size of positions_needed * CHAR_BIT.
9761
9762 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9763
9764         PR middle-end/35897
9765         * dse.c (store_info): Change positions_needed to unsigned
9766         HOST_WIDE_INT.
9767         (lowpart_bitmask): New.
9768         (record_store): Cast to unsigned HOST_WIDE_INT for
9769         positions_needed.  Assert width <= size of positions_needed *
9770         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
9771         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
9772         lowpart_bitmask to set mask.
9773
9774 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
9775
9776         * config/bfin/constraints.md: New file.
9777         * config/bfin/bfin.md: Include it.
9778         (adddi3): Use satisfies_constraint functions instead of the old macros.
9779         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
9780         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
9781         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
9782         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
9783         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
9784         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
9785         EXTRA_CONSTRAINT): Delete.
9786         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
9787         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
9788         of the old macros.
9789         * config/bfin/bfin.c: Include "tm-constrs.h".
9790         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
9791         Use satisfies_constraint functions instead of the old macros.
9792         * doc/md.texi (Blackfin Constraints): Update file name reference.
9793
9794 2008-04-11  Richard Guenther  <rguenther@suse.de>
9795
9796         PR tree-optimization/35869
9797         * tree-vrp.c (execute_vrp): Move switch statement update after
9798         jump threading.  Schedule another cfg cleanup run.
9799
9800 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
9801
9802         PR c/35744
9803         * attribs.c (decl_attributes): Return early on errorneous node.
9804
9805 2008-04-10  Oleg Ryjkov  <olegr@google.com>
9806
9807         * tree.h (struct tree_base): Added a new flag default_def_flag.
9808         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
9809
9810 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
9811
9812         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
9813
9814 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9815
9816         PR target/35768
9817         * pa.md: Define mode iterator P.  Define mode attribute dwc.
9818         (dcacheflush): Update pattern to use iterator P and attribute dwc.
9819         (icacheflush): Likewise.
9820         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
9821         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
9822
9823 2008-04-11  Ben Elliston  <bje@au.ibm.com>
9824
9825         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
9826
9827 2008-04-10  Rafael Espindola  <espindola@google.com>
9828
9829         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
9830         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
9831         (extract_range_from_expr): The same.
9832
9833 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
9834
9835         * config/mips/mips.md (GPR2): New mode iterator.
9836         (seq): Add comment.
9837         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
9838         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
9839         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
9840         Rewrite these to take two modes, the mode of comparison and the
9841         mode of the destination.
9842         * config/mips/mips.c (mips_expand_scc): Instead of having
9843         paradoxical subreg as destination, expand "narrowing" scc if mode
9844         of comparison is SI and target is requested in DI mode.
9845         (mips_emit_int_order_test): Update comment.  Make mode of
9846         comparison match CMP0 rather than TARGET.  When creating inverse
9847         target use mode of TARGET.
9848
9849 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
9850
9851         * gcov-dump.c (tag_summary): Only print summaries for the first
9852         GCOV_COUNTERS_SUMMABLE counters.
9853
9854 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
9855
9856         * config/i386/i386.md (absneg): New code iterator.
9857         (absnegprefix): New code attribute.
9858         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
9859         patterns using absneg code iterator.
9860         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
9861         using absneg code iterator.
9862         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
9863         *neg<mode>2 patterns using absneg code iterator.
9864         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
9865         *negextendsfdf2 patterns using absneg code iterator.
9866         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
9867         *negextendsfxf2 patterns using absneg code iterator.
9868         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
9869         *negextendsfdf2 patterns using absneg code iterator.
9870         * config/i386/sse.md (<code><mode>2): Macroize expander from
9871         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
9872
9873 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
9874
9875         * config/s390/s390.h: Remove the remains of the recent search
9876         & replace action of current_function_outgoing_args_size.
9877
9878 2008-04-10  Ira Rosen  <irar@il.ibm.com>
9879
9880         PR tree-optimization/35821
9881         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
9882         NEW_STMT_LIST is not NULL.
9883
9884 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
9885
9886         PR libstdc++/35597
9887         * toplev.c (process_options): Remove -ffunction-sections debugging
9888         warning.
9889
9890 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
9891
9892         PR middle-end/PR28690
9893         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
9894         than gen_rtx_fmt_ee to perform more canonicalizations.
9895
9896 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9897
9898         PR driver/35665
9899         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
9900
9901 2008-04-09  Richard Guenther  <rguenther@suse.de>
9902
9903         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
9904         (dump_function_to_file): Dump function arguments with types.
9905
9906 2008-04-08  Richard Guenther  <rguenther@suse.de>
9907
9908         * fold-const.c (fold_widened_comparison): Do not allow
9909         sign-changes that change the result.
9910
9911 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
9912
9913         PR target/35839
9914         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
9915         kinds of indirect references.
9916
9917 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
9918
9919         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
9920         GNU Fortran language string.
9921
9922 2008-04-08  Rafael Espindola  <espindola@google.com>
9923
9924         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
9925         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
9926         * tree.h (tree_call_nonnegative_warnv_p): New.
9927
9928 2008-04-08  Jan Hubicka  <jh@suse.cz>
9929
9930         * function.c (free_after_compilation): Clear out regno_reg_rtx
9931         pointer.
9932
9933 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
9934
9935         Revert
9936         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
9937
9938         PR middle-end/PR28690
9939         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
9940         same precedence as REG_POINTER and MEM_POINTER operands.
9941
9942 2008-04-08  Richard Guenther  <rguenther@suse.de>
9943
9944         PR middle-end/35834
9945         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
9946         for adding index to base.
9947
9948 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
9949
9950         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
9951         (MINGW_ENABLE_EXECUTE_STACK): New.
9952         (IN_LIBGCC2): For libgcc include windows.h file for
9953         function declarations.
9954
9955 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
9956
9957         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
9958         and tem2 if tem1 is not a REG or MULT.
9959
9960 2008-04-08  Jan Hubicka  <jh@suse.cz>
9961
9962         * function.h (incomming_args): Break out of struct function.
9963         (function_subsections): Break out of struct function.
9964         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
9965         return_rtx and hard_reg_initial_vals from struct function.
9966         Kill inl_max_label_num.
9967         (current_function_pops_args, current_function_args_info,
9968         current_function_args_size, current_function_args_size,
9969         current_function_pretend_args_size,
9970         current_function_outgoing_args_size,
9971         current_function_internal_arg_pointer, current_function_return_rtx):
9972         Kill compatibility accestor macros.
9973         * builtins.c (expand_builtin_apply_args_1): Update.
9974         (expand_builtin_next_arg): Update.
9975         * df-scan.c (df_get_call_refs): Update.
9976         * dbxout.c (dbxout_function_end): Update.
9977         * dwarf2out.c (dwarf2out_switch_text_section): Update.
9978         (output_line_info): Update.
9979         (secname_for_decl): Update.
9980         (dwarf2out_var_location): Update.
9981         * function.c (free_after_compilation): Update.
9982         (assign_parm_find_stack_rtl): Update.
9983         (assign_parms): Update.
9984         (expand_dummy_function_end): Update.
9985         (expand_function_end): Update.
9986         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
9987         (expand_call): Update.
9988         (emit_library_call_value_1): Update.
9989         (store_one_arg): Update.
9990         * varasm.c (initialize_cold_section_name): Update.
9991         (unlikely_text_section): Update.
9992         (unlikely_text_section_p): Update.
9993         (assemble_start_function): Update.
9994         (assemble_end_function): Update.
9995         (default_section_type_flags): Update.
9996         (switch_to_section): Update.
9997         * integrate.c (set_decl_abstract_flags): Update.
9998         (get_hard_reg_initial_val): Update.
9999         (has_hard_reg_initial_val): Update.
10000         (allocate_initial_values): Update.
10001         * resource.c (init_resource_info): Update.
10002         * config/alpha/alpha.c (NUM_ARGS): Update.
10003         (direct_return): Update.
10004         (alpha_va_start): Update.
10005         (alpha_sa_size): Update.
10006         (alpha_initial_elimination_offset): Update.
10007         (alpha_expand_prologue): Update.
10008         (alpha_start_function): Update.
10009         (alpha_expand_epilogue): Update.
10010         (unicosmk_initial_elimination_offset):
10011         * config/alpha/alpha.md (call expander): Update.
10012         * config/s390/s390.c (s390_register_info): Update.
10013         (s390_register_info): Update.
10014         (s390_frame_info): Update.
10015         (s390_initial_elimination_offset): Update.
10016         (s390_build_builtin_va_list): Update.
10017         (s390_va_start): Update.
10018         * config/spu/spu.c (direct_return): Update.
10019         (spu_expand_prologue): Update.
10020         (spu_initial_elimination_offset): Update.
10021         (spu_build_builtin_va_list): Update.
10022         (spu_va_start): Update.
10023         * config/sparc/sparc.c (sparc_init_modes): Update.
10024         (sparc_compute_frame_size): Update.
10025         (function_value): Update.
10026         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
10027         * config/i386/i386.md (return expander): Update.
10028         * config/i386/i386.c (ix86_va_start): Update.
10029         (ix86_can_use_return_insn_p): Update.
10030         (ix86_compute_frame_layout): Update.
10031         (ix86_expand_epilogue): Update.
10032         * config/sh/sh.c (output_stack_adjust): Update.
10033         (calc_live_regs): Update.
10034         (sh_expand_prologue): Update.
10035         (sh_builtin_saveregs): Update.
10036         (sh_va_start): Update.
10037         (initial_elimination_offset): Update.
10038         (sh_allocate_initial_value): Update.
10039         (sh_function_ok_for_sibcall): Update.
10040         (sh_get_pr_initial_val): Update.
10041         * config/sh/sh.md (return expander): Update.
10042         * config/avr/avr.c (frame_pointer_required_p): UPdate.
10043         * config/crx/crx.c (crx_compute_frame): UPdate.
10044         (crx_initial_elimination_offset): UPdate.
10045         * config/xtensa/xtensa.c (compute_frame_size): Update
10046         (xtensa_builtin_saveregs): Update.
10047         (xtensa_va_start): Update.
10048         (order_regs_for_local_alloc): Update.
10049         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
10050         (xstormy16_expand_builtin_va_start): Update.
10051         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
10052         * config/m68hc11/m68hc11.md (return expanders): Update.
10053         * config/m68hc11/m68hc11.c (expand_prologue): Update.
10054         (expand_epilogue): Update.
10055         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
10056         (cris_simple_epilogue): Update.
10057         (cris_expand_prologue): Update.
10058         (cris_expand_epilogue): Update.
10059         * config/iq2000/iq2000.c (iq2000_va_start): Update.
10060         (compute_frame_size): Update.
10061         * config/mt/mt.c (mt_compute_frame_size): Update.
10062         * config/mn10300/mn10300.c (expand_prologue): Update.
10063         (expand_epilogue): Update.
10064         (initial_offset): Update.
10065         (mn10300_builtin_saveregs):
10066         * config/mn10300/mn10300.md (return expander): Update.
10067         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
10068         (ia64_initial_elimination_offset): Update.
10069         (ia64_initial_elimination_offset): Update.
10070         (ia64_expand_prologue): Update.
10071         * config/m68k/m68k.md (return expander): Update.
10072         * config/rs6000/rs6000.c (rs6000_va_start): Update.
10073         (rs6000_stack_info): Update.
10074         * config/mcore/mcore.c (layout_mcore_frame): Update.
10075         (mcore_expand_prolog): Update.
10076         * config/arc/arc.c (arc_compute_frame_size): Update.
10077         * config/score/score3.c (score3_compute_frame_size): Update.
10078         * config/score/score7.c (score7_compute_frame_size): Update.
10079         * config/arm/arm.c (use_return_insn): Update.
10080         (thumb_find_work_register): Update.
10081         (arm_compute_save_reg_mask): Update.
10082         (arm_output_function_prologue): Update.
10083         (arm_output_epilogue): Update.
10084         (arm_size_return_regs): Update.
10085         (arm_get_frame_offsets): Update.
10086         (arm_expand_prologue): Update.
10087         (thumb_exit): Update.
10088         (thumb_unexpanded_epilogue): Update.
10089         (thumb1_output_function_prologue): Update.
10090         * config/pa/pa.md (return expander): Update.
10091         * config/pa/pa.c (compute_frame_size): Update.
10092         (hppa_builtin_saveregs): Update.
10093         * config/mips/mips.c (mips_va_start): Update.
10094         (mips16_build_function_stub): Update.
10095         (mips_compute_frame_info): Update.
10096         (mips_restore_gp): Update.
10097         (mips_output_function_prologue): Update.
10098         (mips_expand_prologue): Update.
10099         * config/v850/v850.c (compute_frame_size): Update.
10100         (expand_prologue): * config/mmix/mmix.c (along): update.
10101         (mmix_initial_elimination_offset): update.
10102         (mmix_reorg): update.
10103         (mmix_use_simple_return): update.
10104         (mmix_expand_prologue): update.
10105         (mmix_expand_epilogue): Update.
10106         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
10107         (emit_link_insn): Update.
10108
10109 2008-04-08  Anatoly Sokolov <aesok@post.ru>
10110
10111         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
10112         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
10113         instructions.
10114         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
10115         atmega103 device.
10116
10117 2008-04-07  Jan Hubicka  <jh@suse.cz>
10118
10119         * function.h (rtl): Rename to x_rtl.
10120         (crtl): New define.
10121         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
10122         frame_offset, stack_check_probe_note, arg_pointer_save_area,
10123         used_temp_slots avail_temp_slots, temp_slot_level,
10124         nonlocal_goto_handler_labels): Update accesstors.
10125         (rtl): New global variable.
10126         (struct function): Move some fileds to rtl_data.
10127         (get_arg_pointer_save_area): Update prototype.
10128         * builtins.c (expand_builtin_setjmp_receiver): Update call of
10129         get_arg_pointer_save_area.
10130         * expr.c (init_expr): Update
10131         * function.c (get_frame_size): Update
10132         (assign_stack_local): Update
10133         (expand_function_end): Update.
10134         (get_art_pointer_save_area): Update
10135         * function.h 
10136         * emit-rtl.c (rtl): Declare.
10137         (regno_reg_rtx): Declare.
10138         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
10139         Update.
10140         (gen_reg_rtx): Update.
10141         * varasm.c (n_deferred_constatns): Update accestor.
10142         (init_varasm_status): Do not allocate varasm_status.
10143         (force_const_mem, get_pool_size, output_constant_pool): Update.
10144         * stmt.c (force_label_rtx): Do not use x_ prefixes.
10145         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
10146         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
10147         * sparc/sparc.h (INIT_EXPANDERS): Update.
10148         * ia64/ia64.h (INIT_EXPANDERS): Update.
10149
10150 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
10151
10152         * reload.c (push_secondary_reload): Add missing break to for loop.
10153
10154 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
10155
10156         PR middle-end/PR28690
10157         * rtlanal.c: Update copyright years.
10158         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
10159         as REG_POINTER and MEM_POINTER operands.
10160         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
10161         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
10162         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
10163         * gcse.c: Update copyright years.
10164         (pre_delete): Call gen_reg_rtx_and_attrs.
10165         (hoist_code): Likewise.
10166         (build_store_vectors): Likewise.
10167         (delete_store): Likewise.
10168         * loop-invariant.c (move_invariant_reg): Likewise.
10169         Update copyright years.
10170
10171 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
10172
10173         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
10174         control string instead of quoted.
10175
10176 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
10177
10178         * doc/rtl.texi: Rewrite of subreg section.
10179
10180 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
10181
10182         PR/35842
10183         * config/i386/i386.c (legitimize_pic_address): Add treating
10184         of dllimport SYM_REF's.
10185         (legitimize_dllimport_symbol): Add prototype.
10186
10187 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10188
10189         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
10190         reference in constructor with non self-referential type.
10191
10192 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10193
10194         Removal of Return with Depressed Stack Pointer support
10195         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
10196         (ECF_SP_DEPRESSED): Likewise.
10197         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
10198         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
10199         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10200         (expand_call): Do not test ECF_SP_DEPRESSED.
10201         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10202         * function.c (keep_stack_depressed): Delete.
10203         (handle_epilogue_set): Likewise.
10204         (update_epilogue_consts): Likewise.
10205         (emit_equiv_load): Likewise.
10206         (thread_prologue_and_epilogue_insns): Remove support for Return with
10207         Depressed Stack Pointer.
10208         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10209
10210 2008-04-06  Richard Guenther  <rguenther@suse.de>
10211
10212         PR tree-optimization/35400
10213         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
10214         information from SSA_NAMEs.
10215
10216 2008-04-06  Anatoly Sokolov <aesok@post.ru>
10217
10218         * config/avr/avr.h (avr_mega_p): Remove declaration.
10219         (AVR_MEGA): Remove macro.
10220         * config/avr/avr.c (avr_mega_p): Remove variable.
10221         (avr_override_options): Remove inicializion of avr_mega_p.
10222         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10223         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10224         (avr_jump_mode): (Ditto.).
10225         (avr_output_progmem_section_asm_op): (Ditto.).
10226         (avr_asm_init_sections): (Ditto.).
10227         (avr_asm_init_sections): (Ditto.).
10228         (avr_rtx_costs): (Ditto.).
10229         * config/avr/avr.md: (Ditto.).
10230         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
10231         '__AVR_MEGA__'.
10232
10233 2008-04-06  Richard Guenther  <rguenther@suse.de>
10234
10235         PR tree-optimization/35842
10236         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
10237         is_gimple_invariant_address.
10238
10239 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10240
10241         * gcc.c (default_compilers): Sync Fortran extensions list with
10242         that in fortran/lang-specs.h.
10243         * doc/invoke.texi: Likewise.
10244         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
10245         * dwarf2out.c (gen_compile_unit_die): Likewise.
10246
10247 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
10248
10249         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
10250
10251 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
10252
10253         PR target/12329
10254         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
10255         attribute is used for nested functions.
10256
10257 2008-04-05  Jan Hubicka  <jh@suse.cz>
10258
10259         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
10260
10261         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
10262         letter argument.
10263         (dump_files): Update.
10264         (enable_rtl_dump_file): Do not accept letter argument.
10265         * tree-pass.h (dump_file_info): Remove letter argument.
10266         * toplev.c (decode_d_option): Update -da handling.
10267         * toplev.h (enable_rtl_dump_file): Update prototype.
10268         * passes.c (register_one_dump_file): Do not accept IPA argument; work
10269         it out based on pass type.
10270         (register_dump_files_1): Likewise.
10271         (init_optimization_passes): Update register_one_dump_file calls.
10272         (execute_one_pass): Sanity check that IPA passes are called at IPA
10273         level and RTL passes at RTL level.
10274         (execute_pass_list): IPA pass can not be after or subpass of
10275         GIMPLE/RTL pass.
10276         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
10277         disallov RTL subpasses of IPA subpasses.
10278
10279 2008-04-05  Ben Elliston  <bje@au.ibm.com>
10280
10281         * tree-cfg.c (need_fake_edge_p): Return false for calls to
10282         builtins that return exactly once and do not throw. Cache call to
10283         call_expr_flags.
10284
10285 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
10286
10287         PR rtl-optimization/34916
10288         PR middle-end/35519
10289         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
10290         between instruction pairs.
10291
10292 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
10293
10294         * doc/invoke.texi: Document -mbitops for SH.
10295         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
10296         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
10297         * config/sh/sh.c (print_operand): Add %t operand code.
10298         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
10299         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
10300         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
10301         (extendqihi2): Likewise.
10302         (movqi_i): Likewise.
10303         (insv): Use bset, bclr and bst instructions for SH2A if possible.
10304         (extv): Use bld instruction for SH2A if possible.
10305         (extzv): Likewise.
10306         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
10307         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
10308         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
10309         (bset.b, bclr.b): Define peepholes.
10310         * config/sh/sh.opt (mbitops): New option.
10311
10312 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
10313
10314         PR target/35620
10315         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
10316         and view convert expression.
10317
10318 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10319
10320         PR target/35364
10321         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
10322
10323 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
10324
10325         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
10326
10327         * config/i386/cpuid.h (bit_AES): New.
10328         (bit_PCLMUL): Likewise.
10329
10330         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
10331         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
10332         SSE2 if AES or PCLMUL is enabled.
10333         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
10334         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10335         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
10336         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
10337         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
10338         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
10339         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10340         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
10341         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
10342         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
10343         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
10344         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
10345         __builtin_ia32_aeskeygenassist128 and
10346         __builtin_ia32_pclmulqdq128.
10347         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
10348         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
10349         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
10350
10351         * config/i386/i386.h (TARGET_AES): New.
10352         (TARGET_PCLMUL): Likewise.
10353         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
10354
10355         * config/i386/i386.md (UNSPEC_AESENC): New.
10356         (UNSPEC_AESENCLAST): Likewise.
10357         (UNSPEC_AESDEC): Likewise.
10358         (UNSPEC_AESDECLAST): Likewise.
10359         (UNSPEC_AESIMC): Likewise.
10360         (UNSPEC_AESKEYGENASSIST): Likewise.
10361         (UNSPEC_PCLMUL): Likewise.
10362
10363         * config/i386/i386.opt (maes): New.
10364         (mpclmul): Likewise.
10365
10366         * config/i386/sse.md (aesenc): New pattern.
10367         (aesenclast): Likewise.
10368         (aesdec): Likewise.
10369         (aesdeclast): Likewise.
10370         (aesimc): Likewise.
10371         (aeskeygenassist): Likewise.
10372         (pclmulqdq): Likewise.
10373
10374         * config/i386/wmmintrin.h: New.
10375
10376         * doc/extend.texi: Document AES and PCLMUL built-in function.
10377
10378         * doc/invoke.texi: Document -maes and -mpclmul.
10379
10380 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
10381
10382         * function.c (free_after_parsing): Replace with
10383         cxx_push_function_context from C++ front-end.
10384         (allocate_struct_function): Don't call langhook.
10385         * langhooks.h (struct lang_hooks_for_functions): Delete.
10386         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
10387         member "function".
10388         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
10389         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
10390         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
10391         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
10392         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
10393         remove LANG_HOOKS_FUNCTION_INITIALIZER.
10394         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
10395
10396         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
10397         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
10398         
10399 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10400
10401         PR c/35440
10402         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
10403         for all types.
10404
10405 2008-04-04  Richard Guenther  <rguenther@suse.de>
10406
10407         PR middle-end/35823
10408         * fold-const.c (optimize_minmax_comparison): Use the correct
10409         type for the constant in the simplified comparison.
10410
10411 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
10412
10413         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
10414         Pass L2 size as "--param l2-cache-size" to the compiler.
10415         (decode_l2_cache): New function to decode L2 cache parameters using
10416         0x8000006 extended cpuid function.
10417         (detect_caches_amd): Determine parameters of L2 cache using
10418         decode_l2_caches function.
10419         (decode_caches_intel): Decode L2 cache parameters.
10420         (detect_caches_intel): Determine L2 cache parameters using
10421         decode_caches_intel and decode_l2_caches functions.
10422
10423 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
10424
10425         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
10426         secondary input reload for subword loads from the constant pool.
10427
10428 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
10429
10430         PR target/35713
10431         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
10432           constants of the appropriate size for runtime calculations.
10433
10434         PR c/35712
10435         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
10436           decimal-float literal constant zero.
10437
10438 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
10439
10440         PR c/35738
10441         * c-parser.c (c_parser_omp_atomic): Call
10442         default_function_array_conversion on the RHS.
10443
10444         PR middle-end/35818
10445         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
10446         call is_variable_sized if decl has incomplete type.
10447
10448 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
10449
10450         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
10451
10452 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
10453
10454         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
10455         iterators.
10456         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
10457         (sgt<u>): Merge sgt and sgtu into new expander.
10458         (sgt, sgtu): Remove expanders.
10459         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
10460         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
10461         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
10462         *sgtu_<mode>_mips16 into new pattern.
10463         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
10464         (sge<u>): Merge sge and sgeu into new expander.
10465         (sge, sgeu): Remove expanders.
10466         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
10467         new pattern.
10468         (*sge_<mode>, second *sge_<mode>): Remove patterns.
10469         (slt<u>): Merge slt and sltu into new expander.
10470         (slt, sltu): Remove expanders.
10471         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
10472         (*slt_<mode>, *sltu_<mode>): Remove patterns.
10473         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
10474         *sltu_<mode>_mips16 into new pattern.
10475         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
10476         (sle<u>): Merge sle and sleu into new expander.
10477         (sle, sleu): Remove expanders.
10478         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
10479         (*sle_<mode>, *sleu_<mode>): Remove patterns.
10480         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
10481         *sleu_<mode>_mips16 into new pattern.
10482         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
10483
10484 2008-04-03  Jan Hubicka  <jh@suse.cz>
10485
10486         PR tree-optimization/35795
10487         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
10488         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10489         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
10490         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
10491         * score/score3.c (score3_output_mi_thunk): Likewise.
10492         * score/score7.c (score7_output_mi_thunk): Likewise.
10493         * mips/mips.c (mips_output_mi_thunk): Likewise.
10494
10495 2008-04-03  Richard Guenther  <rguenther@suse.de>
10496
10497         * tree-vrp.c (extract_range_from_unary_expr): Handle all
10498         conversions.  Simplify code.
10499
10500 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
10501
10502         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
10503
10504 2008-04-03  Tom Tromey  <tromey@redhat.com>
10505             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10506
10507         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
10508         * config/bfin/t-bfin-linux (generated_files): Add
10509         linux-sysroot-suffix.h.
10510         * doc/install.texi (Prerequisites): Require make 3.80.
10511         * doc/sourcebuild.texi (Front End Directory): Document new
10512         variable.
10513         * Makefile.in (generated_files): New variable.
10514         (ALL_HOST_OBJS): New variable.
10515         ($(ALL_HOST_OBJS)): New target.
10516
10517 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10518
10519         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
10520         (remap_block): Call id->transform_lang_insert_block instead
10521         of langhook.
10522         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
10523         Set id.transform_lang_insert_block to NULL.
10524         (clone_body): Move to cp/optimize.c
10525         * tree-inline.h (struct copy_body_data): Change
10526         transform_lang_insert_block to function pointer.
10527         (copy_generic_body, copy_decl_no_change): Export.
10528         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
10529         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
10530         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
10531
10532         * c-tree.h (insert_block): Kill.
10533         * c-decl.c (insert_block): Kill.
10534
10535 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10536
10537         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10538         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10539         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
10540         argument.
10541         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
10542         argument, call {push,pop}_function_context from here.
10543         * c-parser.c: Use c_{push,pop}_function_context.
10544
10545         * function.c (push_function_context_to): Move meat ...
10546         (push_function_context): ... here.  Simplify.
10547         * function.c (pop_function_context_from): Move meat ...
10548         (pop_function_context): ... here.  Simplify.
10549         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
10550         leave_nested).
10551         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10552         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10553         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
10554         * tree.h (push_function_context_to, pop_function_context_from): Remove.
10555
10556 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10557
10558         * expmed.c (extract_force_align_mem_bit_field): Remove.
10559
10560 2008-04-03  Richard Guenther  <rguenther@suse.de>
10561
10562         PR middle-end/35800
10563         * expr.h (try_casesi): Adjust prototype.
10564         * expr.c (try_casesi): Take fallback label as extra parameter.
10565         Use that for gen_casesi if default_label is NULL.
10566         * stmt.c (expand_case): Pass fallback label to try_casesi,
10567         make sure to fill gaps with a fallback label if default_label
10568         is not present.
10569
10570 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
10571
10572         PR target/35801
10573         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
10574
10575 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10576
10577         * expmed.c (extract_split_bit_field): Remove if (0) code.
10578         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
10579         (do_ds_constraint): Likewise.
10580
10581 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
10582
10583         * doc/cppopts.texi (-dU): Document.
10584         * c-common.h (flag_dump_macros): Update comment.
10585         * c-opts.c (handle_OPT_d): Handle -dU.
10586         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
10587         dump_queued_macros, cb_used_define, cb_used_undef): New.
10588         (init_pp_output): Handle -dU.
10589         (cb_line_change): Call dump_queued_macros.
10590         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
10591
10592 2008-04-02  Anatoly Sokolov <aesok@post.ru>
10593
10594         * config/avr/predicates.md (io_address_operand): New predicate. 
10595         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
10596         * config/avr/avr.c (avr_io_address_p): Remove function.
10597         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
10598         'avr_io_address_p' function.
10599         (out_movhi_r_mr): (Ditto.).
10600         (out_movqi_mr_r): (Ditto.).
10601         (out_movhi_mr_r): (Ditto.).
10602         (avr_address_cost): (Ditto.).
10603
10604 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
10605
10606         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
10607         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
10608         in 32bit mode when XMM registers are available to avoid store
10609         forwarding stalls.
10610         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
10611         corresponding post-reload splitters.
10612
10613 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10614
10615         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
10616         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
10617         __builtin_ia32_roundss.
10618         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
10619         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
10620         __builtin_ia32_roundss.
10621         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
10622         IX86_BUILTIN_SHUFPD here.
10623
10624 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10625
10626         * config/i386/i386.md (plogic): New.
10627         (plogicprefix): Likewise.
10628
10629         * config/i386/mmx.md (mmx_<code><mode>3): New.
10630         (mmx_and<mode>3): Removed.
10631         (mmx_ior<mode>3): Likewise.
10632         (mmx_xor<mode>3): Likewise.
10633
10634         * config/i386/sse.md (<code><mode>3): New.
10635         (*<code><mode>3): Likewise.
10636         (*<code><mode>3): Likewise.
10637         (<code><mode>3): Likewise.
10638         (*sse_<code><mode>3): Likewise.
10639         (*sse2_<code><mode>3): Likewise.
10640         (<code>tf3): Likewise.
10641         (*<code>tf3): Likewise.
10642         (and<mode>3): Likewise.
10643         (*and<mode>3): Likewise.
10644         (ior<mode>3): Removed.
10645         (*ior<mode>3): Likewise.
10646         (xor<mode>3): Likewise.
10647         (*xor<mode>3): Likewise.
10648         (*and<mode>3): Likewise.
10649         (*ior<mode>3): Likewise.
10650         (*xor<mode>3): Likewise.
10651         (and<mode>3): Likewise.
10652         (*sse_and<mode>3): Likewise.
10653         (*sse2_and<mode>3): Likewise.
10654         (andtf3): Likewise.
10655         (*andtf3): Likewise.
10656         (ior<mode>3): Likewise.
10657         (*sse_ior<mode>3): Likewise.
10658         (*sse2_ior<mode>3): Likewise.
10659         (iortf3): Likewise.
10660         (*iortf3): Likewise.
10661         (xor<mode>3): Likewise.
10662         (*sse_xor<mode>3): Likewise.
10663         (*sse2_xor<mode>3): Likewise.
10664         (xortf3): Likewise.
10665         (*xortf3): Likewise.
10666
10667 2008-04-02  Richard Guenther  <rguenther@suse.de>
10668
10669         PR tree-optimization/14495
10670         PR tree-optimization/34793
10671         * tree-vrp.c (struct switch_update): New structure.
10672         (to_remove_edges, to_update_switch_stmts): New VECs.
10673         (simplify_switch_using_ranges): New function.  Remove not taken
10674         case labels and edges.
10675         (simplify_stmt_using_ranges): Call it.
10676         (identify_jump_threads): Mark edges we have queued for removal
10677         so we don't thread them.
10678         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
10679         case label vector.
10680         * tree-cfg.c (group_case_labels): Deal with missing default label.
10681         (tree_verify_flow_info): Allow missing default label.
10682         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
10683         (emit_case_nodes): Likewise.
10684         (expand_case): Do not rely on the default label to be present.
10685         * expr.c (try_casesi): Deal with NULL default_label.
10686         (do_tablejump): Likewise.
10687
10688 2008-04-02  Richard Guenther  <rguenther@suse.de>
10689
10690         PR tree-optimization/14495
10691         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
10692         SWITCH_EXPR here ...
10693         (vrp_visit_switch_stmt): ... but here (new function).
10694         (find_case_label_index): New helper function.
10695         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
10696
10697 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10698
10699         * fwprop.c: Fix ISO-C99ism.
10700
10701 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10702
10703         PR bootstrap/35752
10704         * Makefile.in (objdir): Set it here.
10705         * configure.ac: Not here.  Find dynamic linker characteristics.
10706         * exec-tool.in: Use them.
10707         * aclocal.m4: Regenerate.
10708         * configure: Regenerate.
10709
10710 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10711
10712         * expr.c (expand_var): Delete it.
10713         * expr.h (expand_var): Delete prototype.
10714         * function.c (expand_function_start): Use expand_decl instead.
10715         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
10716         langhook.
10717
10718 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
10719
10720         PR rtl-optimization/35542
10721         * fwprop.c (forward_propagate_and_simplify): Replace
10722         loc_reg_mentioned_in_p with reg_mentioned_p.
10723
10724 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10725
10726         PR rtl-optimization/35281
10727         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
10728         (propagate_rtx_1): Handle PR_HANDLE_MEM.
10729         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
10730         (varying_mem_p): Move above propagate_rtx.
10731         (all_uses_available_at): Do not check MEMs.
10732
10733 2008-04-02  Rafael Espindola  <espindola@google.com>
10734
10735         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
10736         (register_edge_assert_for_2): Split the cond argument.
10737         (register_edge_assert_for_1): Adjust for the change in
10738         register_edge_assert_for_2.
10739         (register_edge_assert_for): Split the cond argument.
10740         (find_switch_asserts): Adjust for the change in
10741         register_edge_assert_for.
10742
10743 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
10744
10745         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
10746         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
10747         offsets for 64-bit mingw.
10748         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
10749         abi for x86_64-pc-mingw.
10750
10751 2008-04-02  Richard Guenther  <rguenther@suse.de>
10752
10753         * tree-vrp.c (extract_range_from_assert): Make sure to not
10754         produce range min/max with TREE_OVERFOW set.
10755         If merging a anti-range and a range keep the anti-range if
10756         the range covers all values of the type.
10757         (register_edge_assert_for_2): Only allow sign-changing
10758         conversions in detecting canonical range checks.  Also
10759         register an assert for the unsigned name if useful.
10760
10761         PR tree-optimization/35787
10762         * tree-vrp.c (vrp_val_max): New function.
10763         (vrp_val_min): Likewise.
10764         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
10765         (vrp_val_is_min): Likewise.
10766         (supports_overflow_infinity): Use vrp_val_{min,max}.
10767         (negative_overflow_infinity): Likewise.
10768         (positive_overflow_infinity): Likewise.
10769         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
10770         (is_positive_overflow_infinity): Likewise.
10771         (is_overflow_infinity): Likewise.
10772         (avoid_overflow_infinity): Use vrp_val_{min,max} and
10773         vrp_val_is_{min,max}.
10774         (set_and_canonicalize_value_range): Canonicalize anti-ranges
10775         to ranges if possible.  Avoid empty ranges.
10776
10777 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10778
10779         PR middle-end/35705
10780         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
10781         the expression is a function address.
10782
10783 2008-04-01  George Helffrich  <george@gcc.gnu.org>
10784
10785         PR fortran/35154, fortran/23057
10786         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
10787         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
10788         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
10789         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
10790         in common.
10791         (dbxout_syms): Check for COMMON-based symbol and wrap in
10792         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
10793         in bracket for efficiency.
10794
10795         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
10796         using DW_TAG_common_block + member offset.
10797         (add_pubname_string): New function.
10798         (dw_expand_expr): New function to find block name and offset for
10799         COMMON var.
10800         (common_check): New function to check whether symbol in Fortran COMMON.
10801         (gen_variable_die): If COMMON, use DW_TAG_common_block.
10802
10803 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
10804
10805         PR c/35436
10806         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
10807
10808 2008-04-02  Ben Elliston  <bje@au.ibm.com>
10809
10810         * config/v850/v850.md (casesi): Remove if (0) code.
10811         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10812         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10813
10814 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
10815
10816         * config/i386/i386.md (rex64suffix): New mode attribute.
10817         (floathi<mode>2): Disable expander for SSE math.
10818         (*floathi<mode>2_1): New insn insn_and_split pattern.
10819         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
10820         corresponding post-reload splitters.
10821         (*floathi<mode>2_i387): New macroized insn pattern.
10822         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
10823         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
10824         insn_and_split pattern.
10825         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
10826         New macroized instruction patterns and corresponding post-reload
10827         splitters.
10828         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
10829         and corresponding post-reload splitters.
10830         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
10831         New macroized instruction patterns.
10832         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
10833         macroized instruction patterns and corresponding post-reload splitters.
10834         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
10835         corresponding post-reload splitters.
10836         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
10837         New macroized instruction patterns.
10838         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
10839         corresponding post-reload splitters.
10840         (*floatsi<mode>2_i387): New macroized instruction patterns.
10841
10842 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
10843
10844         * config/i386/i386.md (smaxmin): New.
10845         (umaxmin): Likewise.
10846         (maxminiprefix): Likewise.
10847         (maxminfprefix): Likewise.
10848         (<code><mode>3): Likewise.
10849         (smin<mode>3): Removed.
10850         (smax<mode>3): Likewise.
10851
10852         * config/i386/mmx.md (mmx_<code>v2sf3): New.
10853         (mmx_<code>v4hi3): Likewise.
10854         (mmx_<code>v8qi3): Likewise.
10855         (mmx_smaxv2sf3): Removed.
10856         (mmx_sminv2sf3): Likewise.
10857         (mmx_umaxv8qi3): Likewise.
10858         (mmx_smaxv4hi3): Likewise.
10859         (mmx_uminv8qi3): Likewise.
10860         (mmx_sminv4hi3): Likewise.
10861
10862         * config/i386/sse.md (<addsub><mode>3): New.
10863         (*<addsub><mode>3): Likewise.
10864         (<sse>_vm<addsub><mode>3): Likewise.
10865         (<maxmin><mode>3): Likewise.
10866         (*<maxmin><mode>3_finite): Likewise.
10867         (*<maxmin><mode>3): Likewise.
10868         (<sse>_vm<maxmin><mode>3): Likewise.
10869         (sse3_h<addsub>v4sf3): Likewise.
10870         (sse3_h<addsub>v2df3): Likewise.
10871         (<maxmin>v16qi3): Likewise.
10872         (*<maxmin>v16qi3): Likewise.
10873         (<maxmin>v8hi3): Likewise.
10874         (*<maxmin>v8hi3): Likewise.
10875         (*sse4_1_<maxmin><mode>3): Likewise.
10876         (*sse4_1_<maxmin><mode>3): Likewise.
10877         (add<mode>3): Removed.
10878         (*add<mode>3): Likewise.
10879         (<sse>_vmadd<mode>3): Likewise.
10880         (sub<mode>3): Likewise.
10881         (*sub<mode>3): Likewise.
10882         (<sse>_vmsub<mode>3): Likewise.
10883         (smin<mode>3): Likewise.
10884         (*smin<mode>3_finite): Likewise.
10885         (*smin<mode>3): Likewise.
10886         (<sse>_vmsmin<mode>3): Likewise.
10887         (smax<mode>3): Likewise.
10888         (*smax<mode>3_finite): Likewise.
10889         (*smax<mode>3): Likewise.
10890         (<sse>_vmsmax<mode>3): Likewise.
10891         (sse3_haddv4sf3): Likewise.
10892         (sse3_haddv2df3): Likewise.
10893         (sse3_hsubv4sf3): Likewise.
10894         (sse3_hsubv2df3): Likewise.
10895         (umaxv16qi3): Likewise.
10896         (*umaxv16qi3): Likewise.
10897         (smaxv8hi3): Likewise.
10898         (*smaxv8hi3): Likewise.
10899         (*sse4_1_smax<mode>3): Likewise.
10900         (*sse4_1_umax<mode>3): Likewise.
10901         (uminv16qi3): Likewise.
10902         (*uminv16qi3): Likewise.
10903         (sminv8hi3): Likewise.
10904         (*sminv8hi3): Likewise.
10905         (*sse4_1_smin<mode>3): Likewise.
10906         (*sse4_1_umin<mode>3): Likewise.
10907
10908 2008-04-01  Rafael Espindola  <espindola@google.com>
10909
10910         * tree-cfg.c (verify_expr): remove in_phi.
10911         (verify_stmt): Don't call walk_tree with verify_expr. Use
10912         is_gimple_min_invariant instead of is_gimple_val.
10913
10914 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
10915
10916         * doc/include/gpl_v3.texi: Update for manpage generation.
10917         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
10918         gpl.texi.
10919         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
10920         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
10921         gpl_v3.texi instead of gpl.texi.
10922         (gpl.pod): New.
10923
10924 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
10925
10926         PR pch/13675
10927         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
10928
10929 2008-04-01  Rafael Espindola  <espindola@google.com>
10930
10931         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
10932         (extract_code_and_val_from_cond): Use
10933         extract_code_and_val_from_cond_with_ops.
10934
10935 2008-04-01  Jan Hubicka  <jh@suse.cz>
10936
10937         * function.c (free_after_compilation): Free epilogue_delay_list.
10938         (prepare_function_start): Assert that previous compilation was freed.
10939
10940 2008-04-01  Jan Hubicka  <jh@suse.cz>
10941             Jim Wilson  <wilson@tuliptree.org>
10942             Andreas Tobler <andreast@gcc.gnu.org>
10943
10944         PR middle-end/35781
10945         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
10946         rtl.emit instead cfun->emit.
10947         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
10948         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
10949
10950 2008-04-01  Ben Elliston  <bje@au.ibm.com>
10951
10952         * doc/c-tree.texi (Function Basics): Fix grammatical error.
10953
10954 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
10955
10956         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
10957         New options
10958         (fprofile-use): Add var flag_profile_use
10959         * coverage.c (coverage_begin_output): Do not open a gcno file for
10960         output only if -ftest-coverage is set.
10961         Do not add getpwd() to gcda file path.
10962         (build_gcov_info): Check the new flag
10963         flag_profile_datafile_relative_path.
10964         (coverage_init): Use profile_data_prefix.
10965         Read profile counter only if flag_profile_use is set.
10966         * opts.c (common_handle_option): New option fprofile-use=,
10967         fprofile-dir=, fprofile-generate=.
10968         * toplev.c (profile_data_prefix): New variable definition.
10969         * toplev.h (profile_data_prefix): New declaration.
10970         * doc/invoke.tex (Option Summary, Optimization Options):
10971         Add new options.
10972
10973 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
10974
10975         * varasm.c (output_constant_pool_1): In LABEL_REF check,
10976         use tmp consistently.
10977
10978         PR target/35695
10979         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
10980         * config/ia64/ia64.c (rtx_needs_barrier): Handle
10981         UNSPEC_FR_RECIP_APPROX_RES.
10982         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
10983
10984 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
10985
10986         PR c/35750
10987         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
10988
10989 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10990
10991         PR middle-end/30186
10992         * fold-const.c (fold_indirect_ref_1): Support accessing non first
10993         element of the vector via a pointer.
10994
10995 2008-03-31  Ian Lance Taylor  <iant@google.com>
10996
10997         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
10998
10999 2008-03-31  Jan Hubicka  <jh@suse.cz>
11000
11001         * builtins.c (expand_builtin_setjmp_receiver): Update call of
11002         get_arg_pointer_save_area.
11003         * expr.c (init_expr): Just clear out rtl.expr.
11004         * function.c (free_after_compilation): Clear out whole RTL structure.
11005         (get_func_frame_size): Merge into ...
11006         (get_frame_size): ... this one.
11007         (assign_stack_local_1): Merge into ...
11008         (assign_stack_local): ... this one.
11009         (expand_function_end): Update call of get_arg_pointer_save_area.
11010         (get_art_pointer_save_area): Remove cfun argument.
11011         * function.h (emit_status): regno_pointer_align does not need length
11012         attribute. Move x_regno_reg_rtx to ...
11013         (regno_reg_rtx): ... new global array.
11014         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
11015         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
11016         apply_args_value, forced_labels, stack_pointer_delta):
11017         Update accestors.
11018         (struct varasm_status): Move here from varasm.c
11019         (struct rtl_data): New. Move here some fields from struct function.
11020         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
11021         frame_offset, stack_check_probe_note, arg_pointer_save_area,
11022         used_temp_slots avail_temp_slots, temp_slot_level,
11023         nonlocal_goto_handler_labels): Update accesstors.
11024         (rtl): New global variable.
11025         (struct function): Move some fileds to rtl_data.
11026         (get_arg_pointer_save_area): Update prototype.
11027         * emit-rtl.c (rtl): Declare.
11028         (regno_reg_rtx): Declare.
11029         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
11030         Update.
11031         (gen_reg_rtx): Update.
11032         (init_virtual_regs): Do not tate emit_status argument.
11033         (init_emit): Do not allocate emit.
11034         * varasm.c (varasm_statuc): Move to function.h.
11035         (n_deferred_constatns): Update accestor.
11036         (init_varasm_status): Do not allocate varasm_status.
11037         (force_const_mem, get_pool_size, output_constant_pool): Update.
11038         * stmt.c (force_label_rtx): Do not use x_ prefixes.
11039         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
11040
11041 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
11042
11043         PR rtl-optimization/35729
11044         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
11045         references.
11046
11047 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
11048
11049         PR target/32000
11050         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
11051         load/store if memory is unaligned.
11052         (*movti_rex64): Likewise.
11053
11054         * config/i386/predicates.md (misaligned_operand): New.
11055
11056 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
11057
11058         PR tree-opt/35431
11059         * tree-ssa-phiopt.c (conditional_replacement): Return early for
11060         complex types.
11061
11062 2008-03-31  Jan Beulich  <jbeulich@novell.com>
11063
11064         * config/ia64/constraints.md: Add 'j' constraint.
11065         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
11066         (movdi_internal): Likewise.
11067
11068 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
11069
11070         PR c/35748
11071         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
11072
11073 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11074
11075         PR target/35757
11076         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
11077         proper error message for the third argument on blendpd and
11078         blendps.
11079
11080         * config/i386/sse.md (blendbits): New.
11081         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
11082
11083 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
11084
11085         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
11086
11087 2008-03-30  Richard Guenther  <rguenther@suse.de>
11088
11089         PR middle-end/31023
11090         * fold-const.c (fold_sign_changed_comparison): Do leave
11091         conversions to base-types alone.
11092
11093 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11094
11095         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
11096         the link register if one altivec register is be saved.
11097
11098 2008-03-30  Ben Elliston  <bje@au.ibm.com>
11099
11100         * final.c (final_scan_insn): Remove if (0) code.
11101
11102 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
11103
11104         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
11105
11106 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
11107
11108         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
11109         of V4SFmode to ix86_binary_operator_ok.
11110
11111 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
11112
11113         * config/i386/i386.c (override_options): Initialize
11114         ix86_veclib_handler to ix86_veclibabi_svml when
11115         -mveclibabi=svml is used.
11116         (ix86_veclibabi_svml): New function for SVML ABI style
11117         vectorization support.
11118         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
11119
11120 2008-03-28  Rafael Espindola  <espindola@google.com>
11121
11122         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
11123         (tree_binary_nonnegative_warnv_p): Make it public.
11124         (tree_single_nonnegative_warnv_p): Make it public.
11125         (tree_invalid_nonnegative_warnv_p): Make it public.
11126         (tree_unary_nonzero_warnv_p): Make it public.
11127         (tree_binary_nonzero_warnv_p): Make it public
11128         (tree_single_nonzero_warnv_p): Make it public.
11129         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
11130         (extract_range_from_binary_expr): Split the expr argument.
11131         (extract_range_from_unary_expr): Split the expr argument.
11132         (extract_range_from_comparison): Split the expr argument.
11133         (extract_range_from_expr): Use the new aux functions.
11134         (vrp_evaluate_conditional_warnv): Use
11135         vrp_evaluate_conditional_warnv_with_ops.
11136         * tree.h (tree_unary_nonzero_warnv_p): Declare.
11137         (tree_binary_nonzero_warnv_p): Declare.
11138         (tree_single_nonzero_warnv_p): Declare.
11139         (tree_expr_nonzero_warnv_p): Declare.
11140         (tree_unary_nonnegative_warnv_p): Declare.
11141         (tree_binary_nonnegative_warnv_p): Declare.
11142         (tree_single_nonnegative_warnv_p): Declare.
11143         (tree_invalid_nonnegative_warnv_p): Declare.
11144
11145 2008-03-28  Richard Guenther  <rguenther@suse.de>
11146
11147         PR tree-optimization/30317
11148         PR tree-optimization/30911
11149         PR tree-optimization/34793
11150         * tree-vrp.c (set_and_canonicalize_value_range): New function.
11151         (struct assert_locus_d): New member EXPR.
11152         (register_new_assert_for): Add EXPR parameter to support
11153         ASSERT_EXPR <name, expr OP limit>.
11154         (register_edge_assert_for_1): Adjust callers.
11155         (find_assert_locations): Likewise.
11156         (process_assert_insertions_for): Build condition from expression.
11157         (extract_range_from_assert): Handle ASSERT_EXPRs
11158         of the form ASSERT_EXPR <name, expr OP limit>.
11159         (register_edge_assert_for_2): New helper registering
11160         asserts for comparisons.  Recognize range tests of the form
11161         (unsigned)i - CST1 OP CST2.
11162         (register_edge_assert_for_1): Use it.
11163         (register_edge_assert_for): Likewise.
11164         (needs_overflow_infinity): Integer sub-types
11165         do not need overflow infinities.
11166         (vrp_val_is_max): The extreme values of integer sub-types
11167         are those of the base type.
11168         (vrp_val_is_min): Likewise.
11169         * tree.def (ASSERT_EXPR): Document extra allowed conditional
11170         expressions.
11171
11172 2008-03-28  Nick Clifton  <nickc@redhat.com>
11173
11174         PR target/31110
11175         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11176         Return GENERAL_REGS for stack adjustment reloads.
11177
11178 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11179
11180         PR target/31334
11181         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
11182         const_vector when all the vectors are constant.
11183
11184 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
11185
11186         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
11187         comparisons.
11188         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
11189         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
11190         (scc_sf): New.
11191         (s<code>_sf): Use new scc_sf attribute for opcode names.
11192
11193 2008-03-27  Tom Tromey  <tromey@redhat.com>
11194
11195         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
11196         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
11197         config/spu/t-spu-elf, config/i386/t-interix,
11198         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
11199         config/i386/x-darwin, config/i386/x-mingw32,
11200         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
11201         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
11202         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
11203         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
11204         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
11205         config/rs6000/x-darwin, config/rs6000/t-rs6000,
11206         config/score/t-score-elf, config/arm/t-strongarm-pe,
11207         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
11208         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
11209         Revert automatic dependency patch.
11210
11211 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11212
11213         PR target/35657
11214         * config/i386/i386.c (ix86_function_arg_boundary): Align
11215         decimal floating point to its natural boundary.
11216
11217 2008-03-27  Richard Guenther  <rguenther@suse.de>
11218
11219         PR middle-end/35716
11220         * fold-const.c (fold_comparison): Restrict distinct decl
11221         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
11222         solely rely on operand_equal_p.
11223
11224 2008-03-27  Richard Guenther  <rguenther@suse.de>
11225
11226         PR c/32511
11227         * c-common.c (handle_weak_attribute): Reject combination of
11228         weak and inline.
11229
11230 2008-03-27  Richard Guenther  <rguenther@suse.de>
11231
11232         PR tree-optimization/32810
11233         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
11234         conversions from DECL_INITIAL.
11235         (fold_const_aggregate_ref): Likewise from constructor elements.
11236
11237 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
11238
11239         * tree-affine.h (aff_combination_expand): Declare.
11240         (get_inner_reference_aff): Likewise.
11241         * tree-affine.c (aff_combination_expand): Split out from
11242         tree_to_aff_combination_expand.
11243         (get_inner_reference_aff): New function.
11244         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
11245         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
11246         (struct lim_aux_data): sm_done field removed.
11247         (mem_ref_loc_p, mem_ref_locs_p): New types.
11248         (struct mem_ref): Added id, stored, accesses_in_loop,
11249         indep_loop, dep_loop, indep_ref, dep_ref fields.
11250         Removed is_stored, locs and next fields.
11251         (memory_accesses): New variable.
11252         (movement_possibility): Do not allow moving statements
11253         that store to memory.
11254         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
11255         New functions.
11256         (determine_max_movement): For statements with memory references,
11257         find the outermost loop in that the reference is independent.
11258         (move_computations_stmt): Mark the virtual operands for renaming.
11259         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
11260         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
11261         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
11262         add_vop_ref_mapping, create_vop_ref_mapping_loop,
11263         create_vop_ref_mapping, analyze_memory_references,
11264         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
11265         get_all_locs_in_loop, ref_always_accessed_p,
11266         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
11267         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
11268         store_motion_loop, store_motion): New functions.
11269         (struct vop_to_refs_elt): New type.
11270         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
11271         memref_hash, memref_eq, hoist_memory_references): Rewritten.
11272         (schedule_sm): Replaced by...
11273         (execute_sm): ... this.
11274         (determine_lsm_ref, hoist_memory_references,
11275         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
11276         find_more_ref_vops, free_mem_ref, free_mem_refs,
11277         determine_lsm_loop, determine_lsm): Removed.
11278         (tree_ssa_lim_finalize): Free data structures used by store motion.
11279         (tree_ssa_lim): Call analyze_memory_references.  Use
11280         store_motion instead of determine_lsm.
11281
11282 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11283
11284         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
11285         rename tmake_file to m68hc11/t-m68hc11.
11286         (mcore): Set inhibit_libc to true.
11287         * config.host (alpha*-dec-*vms*): Set extra_programs.
11288         (interix3*): Don't use host_xmake_file.
11289         * configure.ac: Let config.gcc override inhibit_libc.
11290         * configure: Regenerate.
11291
11292         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
11293         * config/t-openbsd-thread: Remove commented out lines.
11294         
11295         * config/x-interix: Remove.
11296
11297         * config/m68hc11/t-m68hc11-gas: Rename to...
11298         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
11299
11300         * config/mcore/t-mcore: Remove T_CFLAGS.
11301         * config/mcore/t-mcore-pe: Likewise.
11302
11303 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11304
11305         * configure.ac: Replace custom __GNU_SOURCE test with
11306         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
11307         * aclocal.m4: Regenerate.
11308         * configure: Regenerate.
11309         * config.in: Regenerate.
11310
11311 2008-03-27  Richard Guenther  <rguenther@suse.de>
11312
11313         * fold-const.c (target.h): Include.
11314         (fold_comparison): Fold comparison of addresses of decls
11315         that bind locally or of constants.  Consolidate address folding code.
11316         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
11317         results from fold_binary_to_constant.
11318         (compare_values_warnv): Likewise.
11319
11320 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
11321
11322         PR middle-end/35429
11323         * fold-const.c (fold_truthop): Check for integeral types when folding
11324         a == 0 && b == 0 and a != 0 || b != 0 .
11325
11326 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
11327
11328         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
11329
11330 2008-03-26  Andreas Schwab  <schwab@suse.de>
11331
11332         * doc/invoke.texi: Fix use of @item vs. @itemx.
11333
11334 2008-03-26  Tom Tromey  <tromey@redhat.com>
11335
11336         * Makefile.in (build/gensupport.o, build/print-rtl.o,
11337         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
11338         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
11339         build/gencodes.o, build/genconditions.o, build/genconfig.o,
11340         build/genconstants.o, build/genemit.o, build/genextract.o,
11341         build/genflags.o, build/genmddeps.o, build/genopinit.o,
11342         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
11343         options.h.
11344
11345 2008-03-26  Richard Guenther  <rguenther@suse.de>
11346
11347         Revert
11348         2008-03-26  Richard Guenther  <rguenther@suse.de>
11349
11350         * fold-const.c (target.h): Include.
11351         (fold_comparison): Fold comparison of addresses of two decls
11352         that bind locally.  Consolidate address folding code.
11353
11354 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11355
11356         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
11357         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
11358         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
11359         dconstsqrt2, dconstthird, dconste and/or dconst10.
11360         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
11361         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
11362         dconstsqrt2, dconste): Delete.
11363         (init_emit_once): Likewise.  Simplify initializing dconstm1.
11364         Constify variable.
11365         * real.c (get_real_const): New.
11366         * real.h (dconst3, dconst10, dconstm2, dconstthird,
11367         dconstsqrt2, dconste): Delete.
11368         (real_value_const, get_real_const): New.
11369
11370 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
11371
11372         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
11373
11374         * config/i386/i386.c (ix86_function_arg_boundary): Check
11375         BIGGEST_ALIGNMENT instead of 128.
11376         (setup_incoming_varargs_64): Likewise.
11377
11378 2008-03-26  Tom Tromey  <tromey@redhat.com>
11379
11380         * Makefile.in (DEPFILES): Add missing '/'.
11381
11382 2008-03-26  Richard Guenther  <rguenther@suse.de>
11383
11384         * fold-const.c (target.h): Include.
11385         (fold_comparison): Fold comparison of addresses of two decls
11386         that bind locally.  Consolidate address folding code.
11387
11388 2008-03-26  Nick Clifton  <nickc@redhat.com>
11389
11390         PR target/31232
11391         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
11392         not allow INT+INT as a legitimate addressing mode.
11393
11394 2008-03-26  Richard Guenther  <rguenther@suse.de>
11395
11396         * tree-flow.h (widen_bitfield): Remove declaration.
11397         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
11398         (widen_bitfield): Remove function.
11399         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
11400         code.
11401
11402 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11403
11404         PR target/31558
11405         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
11406         error_mark_node's.
11407
11408 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11409
11410         PR rtl-optimization/35232
11411         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
11412         (forget_old_reloads_1, forget_marked_reloads): Don't clear
11413         reg_reloaded_call_part_clobbered here.
11414         (reload_regs_reach_end_p): New function.
11415         (reload_reg_rtx_for_input): New variable.
11416         (reload_reg_rtx_for_output): Likewise.
11417         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
11418         when reassigning a pseudo register.  Load reloadreg from 
11419         reload_reg_rtx_for_input, moving the mode and register
11420         calculation to...
11421         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
11422         instead of the original when deciding whether an input reload
11423         would be a no-op or whether an output reload can be deleted.
11424         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
11425         when setting up new_spill_reg_store.  Load it from
11426         reload_reg_rtx_for_output, moving the mode and register
11427         calculation to...
11428         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
11429         instead of the original when deciding whether an output reload
11430         would be a no-op.  Do the same when modifying insn notes.
11431         Use rtx_equal_p instead of == to compare the registers.
11432         (inherit_piecemeal_p): Take a mode and two register numbers
11433         as argument.
11434         (emit_reload_insns): Clear new_spill_reg_store for every hard
11435         register in the reload register.  Remove spill registers
11436         from reg_reloaded_valid before considering whether to record
11437         inheritance information for them.  Use reload_reg_rtx_for_output
11438         instead of reg_rtx when recording output reloads.  Use
11439         reload_reg_rtx_for_input instead of reg_rtx when recording
11440         input reloads.  Set or clear reg_reloaded_call_part_clobbered
11441         at the same time as setting reg_reloaded_valid.
11442         (delete_output_reload): Add a new_reload_reg parameter and use it
11443         instead of rld[j].reg_rtx.
11444         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
11445         calls accordingly.
11446
11447 2008-03-25  Tom Tromey  <tromey@redhat.com>
11448
11449         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
11450         (build/genattr.o): Likewise.
11451         (build/genattrtab.o): Likewise.
11452         (build/gencodes.o): Likewise.
11453         (build/genconfig.o): Likewise.
11454         (build/genconstants.o): Likewise.
11455         (build/genemit.o): Likewise.
11456         (build/genextract.o): Likewise.
11457         (build/genflags.o): Likewise.
11458
11459 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
11460         
11461         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
11462         instead of size_int for integer types.
11463         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
11464         to match type of MINUS_EXPR.
11465         
11466 2008-03-25  Tom Tromey  <tromey@redhat.com>
11467
11468         * configure: Rebuilt.
11469         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
11470         Makefile.
11471
11472 2008-03-25  Tom Tromey  <tromey@redhat.com>
11473
11474         * config/x-solaris (host-solaris.o): Update.
11475         * config/x-linux (host-linux.o): Update.
11476         * config/x-hpux (host-hpux.o): Update.
11477         * config/x-darwin (host-darwin.o): Update.
11478         * config/v850/t-v850e (v850-c.o): Update.
11479         * config/v850/t-v850 (v850-c.o): Update.
11480         * config/t-vxworks (vxworks.o): Update.
11481         * config/t-sol2 (sol2-c.o, sol2.o): Update.
11482         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
11483         * config/spu/t-spu-elf (spu-c.o): Update.
11484         (spu.o): Remove.
11485         * config/sh/t-symbian (sh-c.o): Update.
11486         (symbian.o): Update.
11487         * config/sh/t-sh (sh-c.o): Update.
11488         * config/score/t-score-elf (score7.o, score3.o): Update.
11489         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
11490         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
11491         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
11492         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
11493         (rs6000.o): Remove.
11494         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
11495         * config/m32c/t-m32c (m32c-pragma.o): Update.
11496         * config/ia64/t-ia64 (ia64-c.o): Update.
11497         * config/i386/x-mingw32 (host-mingw32.o): Update.
11498         * config/i386/x-i386 (driver-i386.o): Update.
11499         * config/i386/x-darwin (host-i386-darwin.o): Update.
11500         * config/i386/x-cygwin (host-cygwin.o): Update.
11501         * config/i386/t-nwld (nwld.o): Update.
11502         * config/i386/t-netware (netware.o): Update.
11503         * config/i386/t-interix (winnt.o): Update.
11504         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
11505         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
11506         msformat-c.o): Update.
11507         * config/bfin/t-bfin-linux (generated_files): Add
11508         linux-sysroot-suffix.h.
11509         * config/arm/t-wince-pe (pe.o): Update.
11510         * config/arm/t-strongarm-pe (pe.o): Update.
11511         * config/arm/t-pe (pe.o): Update.
11512         * config/arm/t-arm (arm-c.o): Update.
11513         * doc/install.texi (Prerequisites): Require make 3.80.
11514         * Makefile.in: Remove .o targets.
11515         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
11516         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
11517         (simple_generated_h, simple_generated_c): Move earlier.
11518         (generated_files): New variable.
11519         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
11520         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
11521         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
11522         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
11523         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
11524         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
11525         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
11526         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
11527         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
11528         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
11529         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
11530         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
11531         (.c.o): Remove.
11532         (COMPILE.base, COMPILE): New variables.
11533         (%.o): New pattern rule.
11534         (ALL_HOST_OBJS): New variable.
11535         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
11536         (dummy-checksum.o, cc1-checksum.o): Remove.
11537         (DRIVER_SHLIB): New variable.
11538         (DRIVER_DEFINES): Use it.
11539         (gencondmd.c): Move out of build/.
11540         (s-conditions): Update.
11541         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
11542         (ALL_BUILD_OBJS): Likewise.
11543         (build/%.o): Use BUILDCOMPILE.
11544         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
11545         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
11546         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
11547         build/gencheck.o, build/gencodes.o, build/genconditions.o,
11548         build/genconfig.o, build/genconstants.o, build/genemit.o,
11549         build/genextract.o, build/genflags.o, build/genmddeps.o,
11550         build/genopinit.o, build/genoutput.o, build/genpeep.o,
11551         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
11552         build/gen-protos.o, build/scan.o, build/fix-header.o,
11553         build/scan-decls.o): Simplify.
11554         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
11555         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
11556         prefix.o, toplev.o): Reduce to variable setting.
11557         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
11558         ($(out_object_file), gcc-options.o): New targets.
11559         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
11560         * configure: Rebuilt.
11561         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
11562         * doc/sourcebuild.texi (Front End Directory): Document new variable.
11563
11564 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
11565
11566         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
11567         complain when we hit an error, return ERROR_MARK_NODE.
11568
11569 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11570
11571         * config/sh/constraints.md (Pso, Psz): New constraints.
11572         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
11573         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
11574
11575 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11576
11577         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
11578         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
11579
11580 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11581
11582         * config/sh/sh.md (prefetch): Add condition for SH2A target.
11583         (prefetch_sh2a): New.   
11584
11585 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11586             Naveen.H.S  <naveen.hs@kpitcummins.com>
11587
11588         * config/sh/constraints.md (I28): New constraint.
11589         * config/sh/sh.c (broken_move): Add support for movi20s.
11590         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
11591
11592 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
11593             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11594             Naveen.H.S  <naveen.hs@kpitcummins.com>
11595
11596         * config/sh/sh.c (SH_ATTRIBUTES): Define.
11597         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
11598         (print_operand): Handle resbank in %@ operand code.
11599         (sh_encode_section_info): New.
11600         (push_regs): Add conditions for resbank.
11601         (sh_expand_epilogue): Likewise.
11602         (sh_insert_attributes): Likewise.
11603         (sh_attribute_table): Likewise.
11604         (sh_handle_resbank_handler_attribute): New.
11605         (sh2a_handle_function_vector_handler_attribute): New.
11606         (sh2a_is_function_vector_call): New.
11607         (sh2a_get_function_vector_number): New.
11608         (sh2a_function_vector_p): New.
11609         (sh_cfun_resbank_handler_p): New.
11610         * config/sh/sh.md (calli): Emit jsr/n if possible.
11611         (calli_tbr_rel): New.
11612         (calli_pcrel): Emit jsr/n if possible.
11613         (return_i): Emit rts/n if possible.
11614         (call_valuei_tbr_rel): New.
11615         (call_valuei_pcrel): Add condition for SH2A target.
11616         (call_value): Likewise.
11617         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
11618         (sh2a_get_function_vector_number): Likewise.
11619         (sh2a_is_function_vector_call): Likewise.
11620         * doc/extend.texi: Document TBR relative addressing of SH2A.
11621         (resbank): Add description for SH2A.
11622
11623 2008-03-24  Richard Guenther  <rguenther@suse.de>
11624
11625         PR c/22371
11626         * gimplify.c (gimplify_modify_expr): For frontend type-correct
11627         pointer assignments change conversions according to middle-end rules.
11628         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
11629         * configure.ac: Include type checking in yes.
11630         * configure: Regenerate.
11631
11632 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11633
11634         * diagnostic.c (diagnostic_count_diagnostic): Delete.
11635         (diagnostic_report_diagnostic): Update. Handle ICEs here.
11636         
11637 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
11638
11639         * gthr-vxworks.h (UNUSED): Define.
11640
11641 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
11642
11643         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
11644
11645 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
11646
11647         * doc/extend.texi (Function Attributes): Add missing comma in the
11648         example of the "alloc_size" attribute.
11649         
11650 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
11651
11652         Revert:
11653         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
11654
11655         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11656         32bit host.
11657
11658         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
11659
11660         PR target/35496
11661         * stor-layout.c (update_alignment_for_field): Set minimum alignment
11662         of the underlying type of a MS bitfield layout to the natural
11663         alignment of the type.
11664
11665         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
11666
11667         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
11668         to their natural alignment to avoid store forwarding stalls.
11669
11670 2008-03-22  Richard Guenther  <rguenther@suse.de>
11671
11672         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
11673         For PHI nodes verify the address is invariant.
11674         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
11675         (get_symbol_constant_value): Use is_gimple_min_invariant.
11676         (maybe_fold_stmt_indirect): Likewise.
11677
11678 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
11679
11680         PR rtl-optimization/33927
11681         * Makefile.in (dse.o): Depend on $(TM_P_H).
11682         * expr.h (extract_low_bits): Declare.
11683         * expmed.c (extract_low_bits): New function.
11684         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
11685         * dse.c: Include tm_p.h.
11686         (find_shift_sequence): Remove the read_reg argument and return the
11687         read value.  Emit the instructions instead of returning them.
11688         Iterate on new_mode rather than calculating it each time.
11689         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
11690         source to NEW_MODE and extract_low_bits to convert the shifted
11691         value to READ_MODE.
11692         (replace_read): Allow the load and store to have different mode
11693         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
11694         or extraction instructions before trying the replacement.  Update
11695         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
11696
11697 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
11698
11699         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
11700         to their natural alignment to avoid store forwarding stalls.
11701
11702 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11703
11704         PR target/27946
11705         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
11706         encouraging but not allowing gprs for input;
11707         change the input constraint to !f#r.
11708         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
11709         gprs for output;
11710         change the output constraint to !f#r.
11711
11712 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
11713
11714         PR target/13958
11715         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
11716         corresponding post-reload splitters.
11717         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
11718         when x87 FP math is selected.
11719         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
11720         New function prototype.
11721         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
11722         unreachable function to ease macroization of insn patterns.
11723
11724 2008-03-21  Martin Jambor  <mjambor@suse.cz>
11725
11726         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
11727         reference dumps if ddr is NULL or dependence is unknown.
11728
11729 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11730
11731         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
11732         unsigned extension into account.
11733         (ATOMIC_COMPARE_AND_SWAP): Likewise.
11734         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
11735         Do computations on a scratch register.
11736
11737 2008-03-21  Richard Guenther  <rguenther@suse.de>
11738
11739         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11740         Use is_gimple_min_invariant instead of TREE_INVARIANT.
11741         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
11742         * tree-ssa-dom.c (record_equality): Likewise.
11743         * tree-inline.c (copy_body_r): Likewise.
11744         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
11745         TREE_INVARIANT.
11746
11747 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11748
11749         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
11750         as 'delete_unused' argument.
11751
11752 2008-03-20  Richard Guenther  <rguenther@suse.de>
11753
11754         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
11755         special casing of constant qualifiers.
11756         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
11757         care about them in general.
11758         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
11759         regardless of their type.
11760         (fold_stmt_r): Forcefully fold *& if we end up with that.
11761
11762 2008-03-20  Paul Brook  <paul@codesourcery.com>
11763
11764         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
11765         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
11766         linker flags.
11767         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
11768         definition.
11769         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
11770         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
11771
11772 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
11773
11774         * common.opt (Wmudflap): New option.
11775         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
11776         (mx_register_decls): Likewise.
11777         (mudflap_finish_file): Likewise.
11778         * doc/invoke.texi: Document -Wno-mudflap.
11779
11780 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
11781
11782         * c-format.c (replace_format_name_to_system_name): New.
11783         (cmp_attribs): New.
11784         (convert_format_name_to_system_name): New.
11785         (decode_format_attr): Add use of convert_format_name_to_system_name.
11786         (format_types_orig): Add gnu_ prefix to names.
11787         (check_format_info_main): Special treating of \0 escaped names for
11788         supporting multi-character format specifiers as I32, I64.
11789         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
11790         (gnu_target_overrides_format_attributes): New.
11791         * c-format.h: Add structure target_ovr_attr to hold
11792         system specific formatter names.
11793         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
11794         msformat-c.o file to c_target_objs and cxx_target_objs.
11795         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
11796         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
11797         (TARGET_N_FORMAT_TYPES): New.
11798         * config/i386/msformat-c.c: New.
11799         * config/i386/t-cygming: Add build rule for msformat-c.o.
11800         * doc/extend.texi: Add new format names gnu_* and ms_* and
11801         further details.
11802         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
11803
11804 2008-03-20  Ira Rosen  <irar@il.ibm.com>
11805
11806         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
11807         optimizations turned on under -O3.
11808         (ftree-vectorize): Add that the flag is turned on with -O3.
11809
11810 2008-03-20  Ben Elliston  <bje@au.ibm.com>
11811
11812         * regmove.c (try_auto_increment): Fix spelling error in comment.
11813         * final.c (final_scan_insn): Likewise.
11814
11815 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
11816
11817         PR target/14552
11818         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
11819         allocator preferences for "y" and "r" class registers.
11820         ("*mov<mode>_internal"): Ditto.
11821         ("*movv2sf_internal_rex64"): Ditto.
11822         ("*movv2sf_internal"): Ditto.
11823
11824 2008-03-19  Michael Matz  <matz@suse.de>
11825
11826         PR middle-end/35616
11827         * calls.c (expand_call): Check overlap of arguments with call
11828         address for sibcalls.
11829
11830 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
11831
11832         PR target/35496
11833         * stor-layout.c (update_alignment_for_field): Set minimum alignment
11834         of the underlying type of a MS bitfield layout to the natural
11835         alignment of the type.
11836
11837 2008-03-19  Jan Hubicka  <jh@suse.cz>
11838
11839         PR other/35094
11840         * toplev.c (decode_d_option): Handle all CPP flags.
11841         * tree-vrp.c: Update tree_pass descriptors.
11842         * regrename.c: Update tree_pass descriptors.
11843         * fwprop.c: Update tree_pass descriptors.
11844         * doc/invoke.texi: Remove documentation of dropped -d? flags.
11845         * tree-into-ssa.c: Update tree_pass descriptors.
11846         * tree-dump.c: Update tree_pass descriptors.
11847         * tree-complex.c: Update tree_pass descriptors.
11848         * tree-dump.h: Update tree_pass descriptors.
11849         * see.c: Update tree_pass descriptors.
11850         * cgraphbuild.c: Update tree_pass descriptors.
11851         * tracer.c: Update tree_pass descriptors.
11852         * tree-loop-distribution.c: Update tree_pass descriptors.
11853         * cgraph.c: Update tree_pass descriptors.
11854         * postreload-gcse.c: Update tree_pass descriptors.
11855         * postreload.c: Update tree_pass descriptors.
11856         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
11857         * tree-tailcall.c: Update tree_pass descriptors.
11858         * tree-pass.h (tree_opt_pass): Rename to ...
11859         (opt_pass) ... this one; add "type" field and remove letter field.
11860         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
11861         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
11862         all_lowering_passes): Update declaration.
11863         * ipa-cp.c: Update tree_pass descriptors.
11864         * final.c: Update tree_pass descriptors.
11865         * omp-low.c: Update tree_pass descriptors.
11866         * tree-ssa-dse.c: Update tree_pass descriptors.
11867         * ipa-reference.c: Update tree_pass descriptors.
11868         * tree-ssa-uncprop.c: Update tree_pass descriptors.
11869         * auto-inc-dec.c: Update tree_pass descriptors.
11870         * reorg.c: Update tree_pass descriptors.
11871         * cgraphunit.c: Update tree_pass descriptors.
11872         * tree-ssa-copyrename.c: Update tree_pass descriptors.
11873         * tree-ssa-ccp.c: Update tree_pass descriptors.
11874         * df-core.c: Update tree_pass descriptors.
11875         * mode-switching.c: Update tree_pass descriptors.
11876         * tree-nomudflap.c: Update tree_pass descriptors.
11877         * modulo-sched.c: Update tree_pass descriptors.
11878         * ipa-pure-const.c: Update tree_pass descriptors.
11879         * cse.c: Update tree_pass descriptors.
11880         * web.c: Update tree_pass descriptors.
11881         * tree-stdarg.c: Update tree_pass descriptors.
11882         * tree-ssa-math-opts.c: Update tree_pass descriptors.
11883         * tree-ssa-dom.c: Update tree_pass descriptors.
11884         * tree-nrv.c: Update tree_pass descriptors.
11885         * tree-ssa-alias.c: Update tree_pass descriptors.
11886         * loop-init.c: Update tree_pass descriptors.
11887         * gimple-low.c: Update tree_pass descriptors.
11888         * ipa-inline.c: Update tree_pass descriptors.
11889         * tree-ssa-sink.c: Update tree_pass descriptors.
11890         * global.c: Update tree_pass descriptors.
11891         * ifcvt.c: Update tree_pass descriptors.
11892         * jump.c: Update tree_pass descriptors.
11893         * predict.c: Update tree_pass descriptors.
11894         * tree-ssa-loop.c: Update tree_pass descriptors.
11895         * recog.c: Update tree_pass descriptors.
11896         * dse.c: Update tree_pass descriptors.
11897         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
11898         * tree-eh.c: Update tree_pass descriptors.
11899         * regmove.c: Update tree_pass descriptors.
11900         * local-alloc.c
11901         * function.c: Update tree_pass descriptors.
11902         * tree-vectorizer.c: Update tree_pass descriptors.
11903         * gcse.c: Update tree_pass descriptors.
11904         * ipa-type-escape.c: Update tree_pass descriptors.
11905         * tree-if-conv.c: Update tree_pass descriptors.
11906         * init-regs.c: Update tree_pass descriptors.
11907         * ipa.c: Update tree_pass descriptors.
11908         * tree-ssa-phiopt.c: Update tree_pass descriptors.
11909         * rtl-factoring.c: Update tree_pass descriptors.
11910         * lower-subreg.c: Update tree_pass descriptors.
11911         * bt-load.c: Update tree_pass descriptors.
11912         * tree-dfa.c: Update tree_pass descriptors.
11913         * except.c: Update tree_pass descriptors.
11914         * emit-rtl.c: Update tree_pass descriptors.
11915         * cfgexpand.c: Update tree_pass descriptors.
11916         * tree-cfgcleanup.c: Update tree_pass descriptors.
11917         * cfgcleanup.c: Update tree_pass descriptors.
11918         * tree-ssa-pre.c: Update tree_pass descriptors.
11919         * tree-sra.c: Update tree_pass descriptors.
11920         * tree-mudflap.c: Update tree_pass descriptors.
11921         * tree-ssa-copy.c: Update tree_pass descriptors.
11922         * cfglayout.c: Update tree_pass descriptors.
11923         * tree-ssa-forwprop.c: Update tree_pass descriptors.
11924         * tree-ssa-dce.c: Update tree_pass descriptors.
11925         * tree-ssa.c: Update tree_pass descriptors.
11926         * regclass.c: Update tree_pass descriptors.
11927         * integrate.c: Update tree_pass descriptors.
11928         * tree-optimize.c: Update tree_pass descriptors.
11929         * tree-ssa-phiprop.c: Update tree_pass descriptors.
11930         * tree-object-size.c: Update tree_pass descriptors.
11931         * combine.c: Update tree_pass descriptors.
11932         * tree-outof-ssa.c: Update tree_pass descriptors.
11933         * bb-reorder.c: Update tree_pass descriptors.
11934         * stack-ptr-mod.c: Update tree_pass descriptors.
11935         * var-tracking.c: Update tree_pass descriptors.
11936         * tree-profile.c: Update tree_pass descriptors.
11937         * tree-vect-generic.c: Update tree_pass descriptors.
11938         * reg-stack.c: Update tree_pass descriptors.
11939         * sched-rgn.c: Update tree_pass descriptors.
11940         * tree-ssa-structalias.c: Update tree_pass descriptors.
11941         * tree-cfg.c: Update tree_pass descriptors.
11942         * passes.c (current_pass): Update declaration.
11943         (finish_optimization_passes): Update.
11944         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
11945         (register_one_dump_file, register_dump_files_1, next_pass_1):
11946         Update arguments.
11947         (init_optimization_passes): Update handling of new types.
11948         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
11949         * ipa-struct-reorg.c: Update tree_pass descriptors.
11950         * tree-ssa-reassoc.c: Update tree_pass descriptors.
11951         * combine-stack-adj.c: Update tree_pass descriptors.
11952         * cfgrtl.c: Update tree_pass descriptors.
11953         * dce.c: Update tree_pass descriptors.
11954         * tree-ssanames.c: Update tree_pass descriptors.
11955
11956 2008-03-19  Richard Guenther  <rguenther@suse.de>
11957
11958         PR middle-end/35609
11959         * tree-ssa.c (walk_data): New structure.
11960         (warn_uninitialized_var): If not always_executed warn with "maybe"
11961         instead of "is".
11962         (execute_early_warn_uninitialized): Compute post-dominators.
11963         Initialize always_executed before processing each basic block.
11964
11965 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
11966
11967         PR target/35504
11968         * config/i386/i386.c (x86_this_parameter): Calculate correct location
11969         of "this" pointer when "regparm = N" or "fastcall" is in effect.
11970
11971 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11972
11973         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
11974
11975 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
11976
11977         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
11978         is true.
11979         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
11980         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
11981         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
11982         target after ignore has been set, and move there also the commputation
11983         of subtarget and original_target.
11984         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
11985         (LANG_HOOKS_INITIALIZER): Remove it.
11986         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
11987
11988 2008-03-18  Richard Guenther  <rguenther@suse.de>
11989
11990         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
11991         found an expression with constants, note that in the VN for the lhs.
11992         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
11993         fold them to constants if possible.  Run cleanup_cfg if done so.
11994         (execute_pre): Return todo.
11995         (do_pre): Likewise.
11996         (execute_fre): Likewise.
11997         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
11998         of constants.
11999         (get_prop_source_stmt): Look through pointer conversions.
12000
12001 2008-03-18  Jan Hubicka  <jh@suse.cz>
12002
12003         * tree-pretty-print.c: Include predict.h.
12004         (dump_generic_node): Dump predictor.
12005         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
12006         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
12007         * gimple-low.c (lower_stmt): Likewise.
12008         * expr.c (expand_expr_real): Likewise.
12009         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
12010         them.
12011         (build_predict_expr, build_predict_expr): New.
12012         * predict.h (predictor_name, build_predict_expr): Update.
12013         * c-typeck.c (c_finish_bc_stmt): Add prediction.
12014         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
12015         * predict.def (PRED_CONTINUE): Update hitrate.
12016         * tree.def (PREDICT_EXPR): Define.
12017         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
12018         do not handle BIND_EXPR.
12019         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
12020         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
12021         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
12022         operands.
12023
12024 2008-03-18  Michael Matz  <matz@suse.de>
12025
12026         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
12027
12028 2008-03-18  Richard Guenther  <rguenther@suse.de>
12029
12030         * tree-gimple.h (is_gimple_invariant_address): Declare.
12031         (is_gimple_constant): Likewise.
12032         * tree-gimple.c (is_gimple_constant): New function.
12033         (is_gimple_invariant_address): Likewise.
12034         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
12035         and is_gimple_invariant_address.
12036         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
12037         previous change.
12038         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
12039         an addressable base.
12040
12041 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
12042
12043         PR middle-end/35611
12044         * gimplify.c (gimplify_expr): Gimplify second operand of
12045         OMP_ATOMIC_LOAD.
12046
12047 2008-03-17  Richard Guenther  <rguenther@suse.de>
12048
12049         PR tree-optimization/19637
12050         * fold-const.c (fold_unary): Remove restrictions of removing
12051         intermediate pointer-conversions (P2)(P1)P0.
12052         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
12053         conversion to void pointer.
12054         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
12055
12056 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
12057
12058         PR debug/31510
12059         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
12060         emulated thread local variables.
12061
12062 2008-03-16  Richard Guenther  <rguenther@suse.de>
12063
12064         PR middle-end/35607
12065         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
12066         expand TREE_INVARIANT operations that are not gimple invariant.
12067
12068 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
12069
12070         * doc/extend.texi (Alignment): Say that the ABI controls
12071         the __alignof__ for non-strict-alignment targets rather
12072         than being a recommendation.
12073
12074 2008-03-15  Paul Brook  <paul@codesourcery.com>
12075
12076         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
12077         annotations.
12078         (arm_output_fn_unwind): Mark functions that can not be unwound.
12079
12080 2008-03-15  Paul Brook  <paul@codesourcery.com>
12081
12082         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
12083         extension instructions.
12084
12085 2008-03-15  Richard Guenther  <rguenther@suse.de>
12086
12087         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
12088         and fold constant aggregate refs.
12089         (fold_const_aggregate_ref): Handle string constants
12090         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
12091         (evaluate_stmt): Simplify now that ccp_fold folds constant
12092         aggregate refs.
12093
12094 2008-03-15  Paul Brook  <paul@codesourcery.com>
12095
12096         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
12097         (extzv): Use gen_extzv_t2.
12098         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
12099
12100 2008-03-15  Richard Guenther  <rguenther@suse.de>
12101
12102         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
12103         (fold_const_aggregate_ref): Likewise.
12104         (get_value): Return NULL if we don't have any values.
12105         (ccp_finalize): Set const_val to NULL after freeing it.
12106         * tree-flow.h (get_symbol_constant_value): Declare.
12107         (fold_const_aggregate_ref): Likewise.
12108         * tree-ssa-sccvn.c (try_to_simplify): Use them.
12109
12110 2008-03-15  Richard Guenther  <rguenther@suse.de>
12111
12112         PR middle-end/35593
12113         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
12114         to not produce negative array indices if not allowed.  Add
12115         parameter to indicate that.
12116         (maybe_fold_offset_to_component_ref): Allow negative array
12117         indices only for the first member of a structure.
12118         (maybe_fold_offset_to_reference): Allow negative array indices.
12119         (maybe_fold_stmt_addition): Likewise.
12120
12121 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
12122             Anatoly Sokolov <aesok@post.ru>
12123
12124         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
12125         (avr_arch): Add ARCH_AVR6.
12126         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
12127         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
12128         instead of fixed value 2.
12129         (print_operand_address): Use gs() asm specifier instead of pm().
12130         (avr_assemble_integer): (Ditto.).
12131         (avr_output_addr_vec_elt): (Ditto.).
12132         (print_operand): Handle "!" code.
12133         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
12134         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
12135         (AVR_HAVE_EIJMP_EICALL): Define.
12136         (AVR_3_BYTE_PC): Redefine.
12137         (AVR_2_BYTE_PC): (Ditto.).
12138         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
12139         (LINK_SPEC): Add atmega2560 and atmega2561.
12140         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
12141         (crtm2561.o).
12142         * config/avr/avr.md (call_insn): Use eicall instead of icall 
12143         for 3 byte PC devices.
12144         (call_value_insn): (Ditto.).
12145         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
12146         (indirect_jump): Use only for for 2 byte PC devices.
12147         (*tablejump): (Ditto.).
12148         (*indirect_jump_avr6): Add insn.
12149         (*tablejump_rjmp): Don't use for 3 byte PC devices.
12150         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
12151         instead of ijmp for 3 byte PC devices.
12152         (__tablejump2__): (Ditto.).
12153         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
12154         (MULITLIB_DIRNAMES): (Ditto.). 
12155         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
12156
12157 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
12158
12159         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
12160         "sse2_umulsidi3".  Use V1DI mode for operand 0.
12161         ("mmx_psadbw"): Use V1DI mode for operand 0.
12162         * config/i386/i386-modes.def (V1SI): New vector mode.
12163         * config/i386/i386.c (struct builtin_description)
12164         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
12165         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
12166         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
12167         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
12168         v1di_ftype_v8qi_v8qi type.
12169         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
12170
12171         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
12172         __builtin_ia32_pmuludq]: Fix the mode of return value.
12173
12174 2008-03-15  Richard Guenther  <rguenther@suse.de>
12175
12176         PR middle-end/35595
12177         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
12178         being a PHI_NODE.
12179
12180 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
12181         
12182         * doc/invoke.texi (Option Summary, Xtensa Options): Document
12183         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
12184         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
12185         unless TARGET_SERIALIZE_VOLATILE is enabled.
12186         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
12187         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
12188         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
12189
12190 2008-03-14  Richard Guenther  <rguenther@suse.de>
12191
12192         PR tree-optimization/34172
12193         * tree-flow.h (refs_may_alias_p): Declare.
12194         (get_single_def_stmt): Likewise.
12195         (get_single_def_stmt_from_phi): Likewise.
12196         (get_single_def_stmt_with_phi): Likewise.
12197         * tree-dfa.c (refs_may_alias_p): New function.
12198         (get_single_def_stmt): Likewise.
12199         (get_single_def_stmt_from_phi): Likewise.
12200         (get_single_def_stmt_with_phi): Likewise.
12201         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
12202         (vn_reference_lookup_1): New helper function.
12203         (vn_reference_lookup): Walk the virtual use-def chain to
12204         continue searching for a match if the def does not alias the
12205         reference we are looking for.
12206
12207 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
12208
12209         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
12210         archive and Perzl.  Update The Written Word listing.
12211
12212 2008-03-14  Richard Guenther  <rguenther@suse.de>
12213
12214         PR tree-optimization/34043
12215         PR tree-optimization/33989
12216         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
12217         when doing FRE.
12218         (bitmap_find_leader): Use extra argument to verify dominance
12219         relationship inside a basic-block.
12220         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
12221         (find_leader_in_sets): Adjust.
12222         (create_component_ref_by_pieces): Take extra argument for
12223         dominance check, handle lookup failures.
12224         (find_or_generate_expression): Likewise.
12225         (create_expression_by_pieces): Likewise.
12226         (insert_into_preds_of_block): Adjust.
12227         (create_value_expr_from): If asked for, verify all operands
12228         are in the blocks AVAIL_OUT set.
12229         (make_values_for_stmt): Check for SSA_NAMEs that are life
12230         over an abnormal edge.
12231         (compute_avail): Remove such check.
12232         (do_SCCVN_insertion): New function.
12233         (eliminate): If we do not find a leader suitable for replacement
12234         insert a replacement expression from SCCVN if available.
12235         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
12236         (struct vn_ssa_aux): Add needs_insertion flag.
12237         * tree-ssa-sccvn.c (may_insert): New global flag.
12238         (copy_reference_ops_from_ref): Value-number union member access
12239         based on its size, not type and member if insertion is allowed.
12240         (visit_reference_op_load): For a weak match from union type
12241         punning lookup a view-converted value and insert a SSA_NAME
12242         for that value if that is not found.
12243         (visit_use): Make dumps shorter.  Do not disallow value numbering
12244         SSA_NAMEs that are life over an abnormal edge to constants.
12245         (free_scc_vn): Release inserted SSA_NAMEs.
12246         (run_scc_vn): New flag to specify whether insertion is allowed.
12247         Process SSA_NAMEs in forward order.
12248         * tree-ssa-loop-im.c (for_each_index): Handle invariant
12249         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
12250         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
12251         pointer type to/from integral types that do not change the
12252         precision to regular conversions.
12253
12254 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12255
12256         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12257         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12258         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
12259         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
12260         input arguments and the mode of return value.  Built-in functions
12261         that operate on whole 64-bit MMX register now use V1DI mode.
12262
12263 2008-03-13  Alon Dayan  <alond@il.ibm.com>
12264             Olga Golovanevsky  <olga@il.ibm.com>
12265
12266         PR tree-optimization/35041
12267         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
12268         to locate the right position in a statement.
12269
12270 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12271
12272         PR target/34000
12273         PR target/35553
12274         * config/i386/xmmintrin.h:  Change all static inline functions to
12275         extern inline and add __gnu_inline__ attribute.
12276         * config/i386/bmintrin.h: Ditto.
12277         * config/i386/smmintrin.h: Ditto.
12278         * config/i386/tmmintrin.h: Ditto.
12279         * config/i386/mmintrin-common.h: Ditto.
12280         * config/i386/ammintrin.h: Ditto.
12281         * config/i386/emmintrin.h: Ditto.
12282         * config/i386/pmmintrin.h: Ditto.
12283         * config/i386/mmintrin.h: Ditto.
12284         * config/i386/mm3dnow.h: Ditto.
12285
12286 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
12287
12288         PR middle-end/35185
12289         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
12290         (lower_omp_2): New function.
12291         (lower_omp_1, lower_omp): Rewritten.
12292
12293 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
12294
12295         PR 35054
12296         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
12297         with the phrase "Microsoft Windows compilers".
12298         (Push/Pop Macro Pragmas): New subsection. Document
12299         #pragma push_macro and pragma pop_macro.
12300
12301 2008-03-12  Paul Brook  <paul@codesourcery.com>
12302
12303         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
12304
12305 2008-03-12  Paul Brook  <paul@codesourcery.com>
12306
12307         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
12308         (thumb2_alusi3_short): Exclude PLUS and MINUS.
12309         (thumb2_addsi_shortim): Rename ...
12310         (thumb2_addsi_short): ... to this.  Allow register operands.
12311         (thumb2_subsi_short): New pattern.
12312         (thumb2_one_cmplsi2_short,
12313         thumb2_negsi2_short): New patterns and peepholes.
12314
12315 2008-03-12  Paul Brook  <paul@codesourcery.com>
12316
12317         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
12318
12319 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
12320
12321         * config/i386/i386.md (int_cond): New code iterator.
12322         (fp_cond): Ditto.
12323         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
12324         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
12325         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
12326         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
12327         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
12328         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
12329         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
12330         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
12331
12332 2008-03-12  Paul Brook  <paul@codesourcery.com>
12333
12334         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
12335         instead of {arm,thumb}_compute_save_reg_mask.
12336         (output_return_instruction): Ditto.
12337         (thumb_unexpanded_epilogue): Ditto.
12338         (thumb1_expand_prologue): Ditto.
12339         (thumb1_output_function_prologue): Ditto.
12340         (arm_set_return_address): Ditto.
12341         (thumb_set_return_address): Ditto.
12342         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
12343         regs to achieve stack alignment.
12344         (thumb1_compute_save_reg_mask): Fix compiler warning.
12345         (arm_output_epilogue): Use offsets->saved_regs_mask.
12346         Adjust stack pointer by poping call clobered registers.
12347         (arm_expand_prologue): Use offsets->saved_regs_mask.
12348         Adjust stack pointer by pushing extra registers.
12349         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
12350
12351 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
12352
12353         PR tree-opt/35422
12354         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
12355         conversion to the operands of a multiplication.
12356
12357 2008-03-12  Richard Guenther  <rguenther@suse.de>
12358
12359         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
12360         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
12361         * timevar.def (TV_TREE_PHIPROP): Add.
12362         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
12363         pass description.  Use TV_TREE_PHIPROP.
12364         * tree-ssa-forwprop.c: Remove phiprop code.
12365
12366 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
12367
12368         PR middle-end/35549
12369         * omp-low.c (maybe_lookup_decl): Constify first argument.
12370         (use_pointer_for_field): Change last argument from bool to
12371         omp_context *.  Disallow shared copy-in/out in nested
12372         parallel if decl is shared in outer parallel too.
12373         (build_outer_var_ref, scan_sharing_clauses,
12374         lower_rec_input_clauses, lower_copyprivate_clauses,
12375         lower_send_clauses, lower_send_shared_vars): Adjust callers.
12376
12377 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
12378             Ira Rosen  <irar@il.ibm.com>
12379
12380         * tree-vectorizer.c (free_stmt_vec_info): New function.
12381         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
12382         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
12383         * tree-vectorizer.h (free_stmt_vec_info): Declare.
12384         * tree-vect-transform.c (vectorizable_conversion): Free
12385         vec_oprnds0 if it was allocated.
12386         (vect_permute_store_chain): Remove unused VECs.
12387         (vectorizable_store): Free VECs that are allocated in the..
12388         function.
12389         (vect_transform_strided_load, vectorizable_load): Likewise.
12390         (vect_remove_stores): Simplify the code.
12391         (vect_transform_loop): Move code to vect_remove_stores().
12392         Call vect_remove_stores() and free_stmt_vec_info().
12393
12394 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12395
12396         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
12397         TARGET_HPUX.  Revise comment.
12398         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
12399         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
12400         Use sr4 variant of `be' instruction when not generating PIC code.
12401         (attr_length_call): Adjust for above change.
12402
12403 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12404
12405         * ipa-reference.c (static_execute): Remove module_statics_const and
12406         associated setting code.
12407
12408 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12409
12410         PR target/35540
12411         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
12412         predicate for operand 1.
12413         (paritysi2_cmp): Use register_operand predicate for operand 2.
12414         Use earlyclobber modifier for operand 1.  Remove support for
12415         memory operands.
12416         (paritydi2_cmp): Use register_operand predicate for operand 3.
12417         Use earlyclobber modifier for operand 1.  Remove support for
12418         memory operands.
12419
12420 2008-03-11  Paul Brook  <paul@codesourcery.com>
12421             Vladimir Prus  <vladimir@codesourcery.com>
12422
12423         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
12424         (arm_compute_save_reg0_reg12_mask): Always
12425         check if register 11 must be saved.  Always safe hard frame pointer
12426         when frame_pointer_needeed.
12427         (arm_compute_save_reg_mask): Save IP and PC
12428         only with apcs frames.
12429         (arm_output_epilogue): Adjust Thumb2 codepath to
12430         be also invoked and work for ARM non-apcs frames.
12431         (arm_expand_prologue): Don't bother saving IP
12432         for non-apcs frame, since it's not clobbered by
12433         prologue code.  Implement non-apcs frame
12434         layout.
12435
12436 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12437
12438         PR rtl-optimization/35281
12439         * expr.c (convert_move): Use a new pseudo for the intermediate
12440         from_mode->word_mode result.
12441
12442 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12443
12444         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
12445         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
12446         * toplev.c (compile_file): Don't call it.
12447
12448 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12449
12450         PR middle-end/35526
12451         * expr.c (store_expr): Call emit_block_move if the mode
12452         of "temp" RTX is BLKmode.
12453
12454 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12455             Richard Guenther  <rguenther@suse.de>
12456
12457         PR tree-optimization/31358
12458         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
12459         the step with a NULL_TREE.
12460         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
12461         to sizetype if type is a pointer type.
12462         (add_candidate_1): Don't convert the base and step to
12463         the generic type if the orginal type is a pointer type.
12464         (add_iv_value_candidates): Use sizetype for the step
12465         if type is a pointer type.
12466         (cand_value_at): Likewise.
12467         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
12468         for pointer types.
12469         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
12470         Don't convert the tem affine to the type.
12471         (add_elt_to_tree): Use sizetype for the step if a pointer.
12472         Use POINTER_PLUS_EXPR for pointers.
12473         (aff_combination_to_tree): Use sizetype for the step if a
12474         pointer.
12475
12476 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
12477
12478         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
12479         Remove commutativity hint.
12480
12481 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
12482
12483         PR c/35438
12484         PR c/35439
12485         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
12486         errorneous type.  Check that v is a VAR_DECL.
12487
12488         PR middle-end/35099
12489         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
12490
12491 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
12492
12493         PR tree-optimization/35494
12494         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
12495         may be overriden at link and run time.
12496
12497 2008-03-10  Richard Guenther  <rguenther@suse.de>
12498
12499         PR tree-optimization/34677
12500         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
12501         (poolify_tree): Likewise.
12502         (modify_expr_template): Likewise.
12503         (poolify_modify_stmt): Likewise.
12504         (insert_fake_stores): Handle all component-ref style stores
12505         in addition to INDIRECT_REF.  Also handle complex types.
12506         Do not poolify the inserted load.
12507         (realify_fake_stores): Do not rebuild the tree but only
12508         make it a SSA_NAME copy.
12509         (init_pre): Remove initialzation of modify_expr_template.
12510         Do not allocate modify_expr_node_pool.
12511         (fini_pre): Do not free modify_expr_node_pool.
12512
12513 2008-03-10  Paul Brook  <paul@codesourcery.com>
12514
12515         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
12516         to avoid conflicts.
12517
12518 2008-03-10  Paul Brook  <paul@codesourcery.com>
12519             Mark Shinwell  <shinwell@codesourcery.com>
12520
12521         * config/arm/cortex-r4.md: New.
12522         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
12523         insn attributes.
12524         * config/arm/arm.md: Include cortex-r4.md.
12525         (insn): Add smmls, sdiv and udiv values.
12526         (generic_sched): Don't use generic scheduling for Cortex-R4.
12527         (arm_issue_rate): New function.
12528         (TARGET_SCHED_ISSUE_RATE): Define.
12529
12530 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
12531
12532         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
12533
12534 2008-03-10  Richard Guenther  <rguenther@suse.de>
12535
12536         * tree-ssa-pre.c (get_sccvn_value): Simplify.
12537         (compute_avail): Do not add stmt uses to AVAIL_OUT.
12538
12539 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
12540
12541         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
12542         Set default to true.
12543
12544 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12545
12546         * c.opt (Wsynth): Deprecate.
12547         * doc/invoke.texi (Option Summary, Warning Options): Document
12548         -Wno-format-contains-nul.
12549
12550 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
12551
12552         PR target/35496
12553         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
12554         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
12555
12556 2008-03-09  Ira Rosen  <irar@il.ibm.com>
12557
12558         * config/rs6000/rs6000.c (builtin_description): Rename vector
12559         left shift operations.
12560         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
12561         (altivec_vsl<VI_char>): Rename to ...
12562         (ashl<mode>3): ... new name.
12563         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
12564         gen_ashlv4si3.
12565         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
12566
12567 2008-03-08  Richard Guenther  <rguenther@suse.de>
12568
12569         * coverage.h (tree_coverage_counter_addr): Declare.
12570         * coverage.c (tree_coverage_counter_addr): New function.
12571         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
12572         before using again.
12573         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
12574         (tree_gen_one_value_profiler): Likewise.
12575         (tree_gen_ic_profiler): Likewise.
12576         (tree_gen_average_profiler): Likewise.
12577         (tree_gen_ior_profiler): Likewise.
12578
12579 2008-03-08  Richard Guenther  <rguenther@suse.de>
12580
12581         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
12582         (vn_binary_op_insert): Likewise.
12583         (vn_unary_op_lookup): Likewise.
12584         (vn_unary_op_insert): Likewise.
12585         (vn_nary_op_lookup): Declare.
12586         (vn_nary_op_insert): Likewise.
12587         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
12588         and binary hashes, use a single obstack for unary_op_pool
12589         and binary_op_pool.
12590         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
12591         a single struct vn_nary_op_s.  Store tree code length and
12592         a variable number of operands.
12593         (struct vn_reference_op_struct): Remove unused op2.
12594         (vn_reference_op_eq): Do not compare op2.
12595         (vn_reference_op_compute_hash): Do not compute hash of op2.
12596         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
12597         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
12598         with vn_nary_op_compute_hash.
12599         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
12600         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
12601         vn_nary_op_lookup.
12602         (vn_unary_op_insert, vn_binary_op_insert): Replace with
12603         vn_nary_op_insert.
12604         (visit_unary_op): Call nary functions.
12605         (visit_binary_op): Likewise.
12606         (process_scc): Adjust for struct vn_tables_s changes.
12607         (allocate_vn_table): Likewise.
12608         (free_vn_table): Likewise.
12609         * tree-vn.c (vn_add): Call nary functions.
12610         (vn_lookup): Likewise.
12611
12612 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
12613
12614         PR target/35498
12615         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
12616         wdst back after sync_compare_and_swapqhi_internal.
12617
12618 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
12619
12620         PR target/22152
12621         * config/i386/i386-modes.def (V1DI): New vector mode.
12622         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
12623         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
12624         (MMXMODE248): Ditto.
12625         (MMXMODE): Add V1DI mode.
12626         (mmxvecsize): Change DI mode to V1DI mode.
12627         ("mov<mode>): Use MMXMODEI8 mode iterator.
12628         ("*mov<mode>_internal_rex64"): Ditto.
12629         ("*mov<mode>_internal"): Ditto.
12630         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
12631         ("mmx_sub<mode>3"): Ditto.
12632         ("mmx_adddi3"): Remove insn pattern.
12633         ("mmx_subdi3"): Ditto.
12634         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
12635         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
12636         ("mmx_ashl<mode>3"): Ditto.
12637         ("mmx_lshrdi3"): Remove insn pattern.
12638         ("mmx_ashldi3"): Ditto.
12639         * config/i386/i386.c (classify_argument): Handle V1DImode.
12640         (function_arg_advance_32): Ditto.
12641         (function_arg_32): Ditto.
12642         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
12643         mmx_addv1di3 insn pattern.
12644         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
12645         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
12646         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
12647         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
12648         Remove definitions of built-in functions.
12649         (V1DI_type_node): New node.
12650         (v1di_ftype_v1di_int): Ditto.
12651         (v1di_ftype_v1di_v1di): Ditto.
12652         (v2si_ftype_v2si_si): Ditto.
12653         (v4hi_ftype_v4hi_di): Remove node.
12654         (v2si_ftype_v2si_di): Ditto.
12655         (ix86_init_mmx_sse_builtins): Handle V1DImode.
12656         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
12657         Redefine builtins using def_builtin_const with *_ftype_*_int node.
12658         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
12659         Add new builtins using def_builtin_const.
12660         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
12661         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
12662         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
12663         * config/i386/mmintrin.h (__v1di): New typedef.
12664         (_mm_add_si64): Cast arguments to __v1di type.
12665         (_mm_sub_si64): Ditto.
12666         (_mm_sll_pi16): Cast __count to __v4hi type.
12667         (_mm_sll_pi32): Cast __count to __v2si type.
12668         (_mm_sll_si64): Cast arguments to __v1di type.
12669         (_mm_srl_pi16): Cast __count to __v4hi type.
12670         (_mm_srl_pi32): Cast __count to __v2si type.
12671         (_mm_srl_si64): Cast arguments to __v1di type.
12672         (_mm_sra_pi16): Cast __count to __v4hi type.
12673         (_mm_sra_pi32): Cast __count to __v2si type.
12674         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
12675         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
12676         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
12677         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
12678         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
12679         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
12680         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
12681         (_mm_srai_pi32): Use __builtin_ia32_psradi.
12682         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
12683         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12684         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12685         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
12686
12687 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
12688
12689         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
12690
12691 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
12692
12693         PR target/35373
12694         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
12695         reg+const addressing for Altivec modes.  Don't generate reg+reg
12696         addressing for TFmode or TDmode quantities.
12697
12698 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
12699
12700         * c-common.c (vector_types_convertible_p): Call langhook
12701         instead of comptypes.
12702
12703 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12704
12705         PR tree-opt/35402
12706         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
12707         integral and scalar float variables which have a
12708         NULL DECL_INITIAL.
12709
12710 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
12711
12712         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
12713         dwarf_register_span hook when emitting unwind information for
12714         register-to-memory saves.
12715         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
12716         (rs6000_frame_related): Remove call to spe_synthesize_frame.
12717
12718 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
12719
12720         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
12721         for the same VAR_DECL.
12722
12723 2008-03-06  Tom Tromey  <tromey@redhat.com>
12724
12725         * treelang: Delete.
12726         * doc/standards.texi (Standards): Don't mention treelang.
12727         * doc/invoke.texi (Overall Options): Don't mention treelang.
12728         * doc/install.texi (Prerequisites): Don't mention bison or
12729         treelang.
12730         (Configuration): Don't mention treelang.
12731         (Building): Likewise.
12732         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
12733
12734 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
12735
12736         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
12737         word-extractions out of a multi-word object.
12738
12739 2008-03-06  Richard Guenther  <rguenther@suse.de>
12740
12741         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
12742         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
12743         result type and precision.
12744         * expr.c (get_inner_reference): Set unsignedp based on the result
12745         type of BIT_FIELD_REF.
12746         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
12747         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
12748         (try_instantiate_multiple_fields): Likewise.  Use the correct type
12749         for BIT_FIELD_REF.
12750         (sra_build_assignment): Likewise.
12751         (sra_build_elt_assignment): Likewise.
12752         (sra_explode_bitfield_assignment): Likewise.
12753         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
12754         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
12755         set BIT_FIELD_REF_UNSIGNED.
12756         (vectorizable_load): Likewise.
12757
12758 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
12759
12760         * cse.c (cse_extended_basic_block): Invalidate artificial defs
12761         at bb start.
12762
12763 2008-03-06  Richard Guenther  <rguenther@suse.de>
12764
12765         * alias.c (struct alias_set_entry): Move has_zero_child field
12766         to pack with alias_set.
12767
12768 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
12769
12770         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
12771         32bit host.
12772
12773 2008-03-05  Ian Lance Taylor  <iant@google.com>
12774
12775         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
12776
12777 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
12778
12779         * fwprop.c (update_df): Support width and offset parameters of
12780         df_ref_create.
12781         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
12782         global_conflicts): Change DF_REF_EXTRACT to either
12783         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12784         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12785         * df-scan.c (df_ref_record, df_defs_record,
12786         df_ref_create_structure, df_def_record_1, df_uses_record,
12787         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
12788         df_bb_refs_collect, df_entry_block_defs_collect,
12789         df_exit_block_uses_collect): Support new width and offset fields.
12790         (ref_extract_pool): New storage pool.
12791         (df_free_ref): New function.
12792         (df_reg_chain_unlink, df_free_collection_rec,
12793         df_sort_and_compress_refs): Call df_free_ref.
12794         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
12795         of df_ref_extract.
12796         (df_ref_create_structure): Allocate df_ref_extract if offset and
12797         width fields are used.
12798         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
12799         (df_uses_record): Get offset and width from ZERO_EXTRACT 
12800         and SIGN_EXTRACT.
12801         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
12802         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12803         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12804         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
12805         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12806         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12807         (df_ref_extract): New structure.
12808         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
12809         (df_ref_create): Add width and offset parameters.
12810         
12811 2008-03-05  Richard Guenther  <rguenther@suse.de>
12812
12813         * tree-ssa-structalias.c (get_constraint_for_component_ref):
12814         Use ranges_overlap_p.
12815         (offset_overlaps_with_access): Rename
12816         to ranges_overlap_p and move ...
12817         * tree-flow-inline.h (ranges_overlap_p): ... here.
12818
12819         * tree.h (get_inner_reference, handled_component_p): Update
12820         comments.
12821
12822         * tree.h (record_component_aliases, get_alias_set,
12823         alias_sets_conflict_p, alias_sets_must_conflict_p,
12824         objects_must_conflict_p): Move declarations ...
12825         * alias.h (record_component_aliases, get_alias_set,
12826         alias_sets_conflict_p, alias_sets_must_conflict_p,
12827         objects_must_conflict_p): ... here.
12828         Include coretypes.h.
12829         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
12830
12831 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
12832
12833         * cfg.c: Include tree-flow.h.
12834         (remove_edge_raw): Call redirect_edge_var_map_clear.
12835         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
12836         * tree-flow-inline.h (redirect_edge_var_map_def): New.
12837         (redirect_edge_var_map_result): New.
12838         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
12839         PENDING_STMT use with redirect_edge_var_map_*.
12840         * tree-ssa.c (edge_var_maps): New definition.
12841         (redirect_edge_var_map_add): New.
12842         (redirect_edge_var_map_clear): New.
12843         (redirect_edge_var_map_dup): New.
12844         (redirect_edge_var_map_vector): New.
12845         (redirect_edge_var_map_destroy): New.
12846         (ssa_redirect_edge): Replace PENDING_STMT use with
12847         redirect_edge_var_map_*.
12848         (flush_pending_stmts): Same.
12849         (delete_tree_ssa): Destroy edge var map.
12850         * tree-flow.h (struct _edge_var_map): New.
12851         Define edge_var_map vector type.
12852         Declare redirect_edge_var_map_* prototypes.
12853         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
12854         * tree-cfg.c (reinstall_phi_args): Replace
12855         PENDING_STMT use with redirect_edge_var_map_*.
12856
12857 2008-03-05  Richard Guenther  <rguenther@suse.de>
12858
12859         PR tree-optimization/35472
12860         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
12861         whose single use_stmt has a overlapping set of loaded and
12862         stored symbols as that use_stmt might be a noop assignment then.
12863
12864 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
12865
12866         * gthr-rtems.h: Implement __gthread_mutex_destroy.
12867
12868 2008-03-05  Richard Guenther  <rguenther@suse.de>
12869
12870         PR c++/35336
12871         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
12872         should be constants.
12873         * tree-cfg.c (verify_expr): Verify it.
12874         * fold-const.c (fold_truthop): Remove code generating
12875         BIT_FIELD_REFs of structure bases.
12876         (fold_binary): Likewise.
12877         (fold_ternary): Position and size of BIT_FIELD_REFs are
12878         always host integers.
12879         (make_bit_field_ref): Remove.
12880         (optimize_bit_field_compare): Remove.
12881         (all_ones_mask_p): Remove.
12882
12883 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
12884
12885         PR gcc/33009
12886         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
12887         (split_block_and_df_analyze): New. Split basic block and rebuild
12888         dataflow.
12889         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
12890         SPLIT_BLOCK.
12891         (split_pattern_seq): Likewise.
12892         (erase_matching_seqs): Likewise.
12893         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
12894
12895 2008-03-04  Geoff Keating  <geoffk@apple.com>
12896
12897         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
12898         declaration and code.
12899         (tree_invalid_nonnegative_warnv_p): Likewise.
12900
12901 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
12902
12903         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
12904         examples.  Truncate option-names then causing overfull hbox.
12905
12906 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12907
12908         PR target/35222
12909         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
12910         on hpux10.
12911         * configure: Rebuilt.
12912
12913 2008-03-04  Rafael Espindola  <espindola@google.com>
12914
12915         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
12916         (tree_unary_nonnegative_warnv_p): New.
12917         (tree_binary_nonnegative_warnv_p): New.
12918         (tree_single_nonnegative_warnv_p): New.
12919         (tree_invalid_nonnegative_warnv_p): New.
12920         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
12921
12922 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12923
12924         PR 28322
12925         * opts.c (handle_option): Postpone 'unknown option' errors only for
12926         warning options.
12927
12928 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
12929
12930         PR target/35453
12931         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
12932         (_SIDD_XXX): This.
12933
12934 2008-03-04  Rafael Espindola  <espindola@google.com>
12935
12936         * fold-const.c (tree_unary_nonzero_warnv_p): New.
12937         (tree_binary_nonzero_warnv_p): New.
12938         (tree_single_nonzero_warnv_p): New.
12939         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
12940
12941 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
12942
12943         PR middle-end/35456
12944         * fold-const.c (fold_cond_expr_with_comparison): Prevent
12945         transformations for modes that have signed zeros.
12946         * ifcvt.c (noce_try_abs): Ditto.
12947
12948 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
12949
12950         * config/i386/i386.c (override_options): Force
12951         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
12952
12953 2008-03-04  Jan Hubicka  <jh@suse.cz>
12954
12955         PR c++/35262
12956         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
12957         in last commit.
12958
12959 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
12960
12961         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
12962         label to probe the stack.
12963
12964 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
12965
12966         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
12967         (__gthr_win32_mutex_destroy): Declare.
12968         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
12969         __gthr_win32_mutex_destroy.
12970         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
12971
12972 2008-03-03  Jan Hubicka  <jh@suse.cz>
12973
12974         PR c++/35262
12975         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
12976         aggressive on inlining cold calls.
12977
12978 2008-03-03  Richard Guenther  <rguenther@suse.de>
12979
12980         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
12981         struct copies into the expression table.
12982         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
12983         (try_to_simplify): Likewise.
12984         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
12985         integral and pointer arguments which do not change the
12986         precision to NOP_EXPRs.
12987         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
12988         VIEW_CONVERT_EXPR case.
12989
12990 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
12991
12992         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
12993         defined in a loop at depth 0 is invariant.
12994         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
12995         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
12996         be called at loop depth 0.
12997
12998 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
12999
13000         PR driver/35420
13001         * gcc.c (process_command): Update copyright notice dates.
13002         * gcov.c (print_version): Likewise.
13003         * gcov-dump.c (print_version): Likewise.
13004         * mips-tfile.c (main): Likewise.
13005         * mips-tdump.c (main): Likewise.
13006
13007 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13008
13009         PR 24924
13010         * c-common.c (flag_permissive): Delete.
13011         (constant_expression_warnings): Check flags first.
13012         (constant_expression_error): New.
13013         * c-common.h (flag_permissive): Delete.
13014         (constant_expression_error): Declare.
13015         * flags.h (flag_permissive): Declare. Update description.
13016         * diagnostic.c (pedwarn): Update.
13017         (permerror): New.
13018         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
13019         (permissive_error_kind): New.
13020         * toplev.c (flag_permissive): Define. Update description.
13021         * toplev.h (permissive_error_kind): Declare.
13022         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
13023         (pedwarn_c90): Use pedantic_warning_kind.
13024         * c-opts.c (c_common_post_options): flag_permissive does not affect
13025         flag_pedantic_errors.
13026
13027 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
13028
13029         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
13030         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
13031         __absvsi2, __absvDI2): Use unsigned arithmetic.
13032
13033 2008-03-02  Andi Kleen  <ak@suse.de>
13034             Richard Guenther  <rguenther@suse.de>
13035
13036         * struct-equiv.c: Remove file.
13037         * cfg_cleanup.c (condjump_equiv_p): Remove.
13038         * Makefile.in (OBJS-common): Remove struct-equiv.o.
13039         (struct-equiv.o): Remove rule.
13040         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
13041         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
13042         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
13043
13044 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13045
13046         * ifcvt.c (noce_process_if_block): Try to handle only the then
13047         block if the else block exists but isn't suitable.
13048
13049 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
13050
13051         PR gcc/35063
13052         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
13053         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
13054         regression from previous patch.
13055
13056 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
13057
13058         PR gcc/35063
13059         * gthr.h: Add __gthread_mutex_destroy as a function that must be
13060         implemented.
13061         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
13062         * gthr-single.h (__gthread_mutex_destroy): Likewise.
13063         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
13064         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
13065         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
13066         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
13067         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
13068         (__gthread_mutex_destroy_function): Rename to
13069         __gthread_mutex_destroy.
13070         * gthr-dce.h (__gthread_mutex_destroy): Call
13071         pthread_mutex_destroy.
13072         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
13073         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
13074         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
13075
13076 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13077
13078         * df-scan.c (df_ref_chain_change_bb): Simplify.
13079         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
13080         set_block_for_insn if there's any change.
13081         * df.h ((df_insn_change_bb): Fix prototype.
13082         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
13083         df_insn_change_bb, don't call set_block_for_insn.
13084         * emit-rtl.c (reorder_insns): Likewise.
13085         * haifa-sched.c (move_insn): Likewise.
13086
13087 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13088
13089         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
13090
13091 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13092
13093         * tree-flow-inline.h (next_readonly_imm_use): Return
13094         NULL_USE_OPERAND_P after the end.
13095
13096 2008-03-01  Richard Guenther  <rguenther@suse.de>
13097
13098         PR tree-optimization/35411
13099         * tree-sra.c (sra_build_assignment): Split conversion to
13100         final type to a separate statement if we are not assigning
13101         to a register.
13102
13103 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
13104
13105         * fold-const.c (fold_convertible_p): Correct the logic to follow
13106         that in fold_convert().
13107
13108 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
13109
13110         PR c++/35315
13111         * tree-inline.c (build_duplicate_type): When we make a
13112         duplicate type, make it unique in the canonical types system.
13113
13114 2008-02-29  Tom Tromey  <tromey@redhat.com>
13115
13116         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
13117         input_file_stack_history, input_file_stack_restored): Remove.
13118         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
13119         * input.h (struct file_stack): Remove.
13120         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
13121         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
13122         Likewise.
13123         * diagnostic.h (struct diagnostic_context) <last_module>: Change
13124         type.
13125         (diagnostic_last_module_changed): Add 'map' argument.
13126         (diagnostic_set_last_function): Likewise.
13127         * diagnostic.c (undiagnostic_report_current_module): Iterate using
13128         line map, not input_file_stack.
13129         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
13130
13131 2008-02-29  Paul Brook  <paul@codesourcery.com>
13132
13133         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
13134
13135 2008-02-29  Paul Brook  <paul@codesourcery.com>
13136
13137         * config/arm/ieee754-df.S (muldf3): Use RET macros.
13138
13139 2008-02-29  Richard Guenther  <rguenther@suse.de>
13140
13141         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
13142         vn_lookup_or_add.
13143         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
13144         value for comparing for a store match.
13145         (simplify_unary_expression): Do nothing for SSA_NAMEs.
13146         (try_to_simplify): Do not do a full-blown reference lookup.
13147
13148 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13149
13150         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
13151         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
13152
13153         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
13154
13155 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
13156
13157         * tree-loop-linear.c (try_interchange_loops): Compare memory access
13158         strides against cache sizes.
13159
13160 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13161
13162         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
13163         constant to fpul.
13164
13165 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
13166
13167         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
13168         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
13169         is smaller than the original promoted value.
13170         (simplify_subreg): If OP is a SUBREG, try to preserve its
13171         SUBREG_PROMOTED_VAR_P information.
13172
13173 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
13174
13175         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
13176         (VN_INFO_GET): Allocate new objects on the obstack.
13177         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
13178         for rpo_numbers_temp, for consistency.
13179         (free_scc_vn): Free the obstack.
13180
13181 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
13182
13183         * doc/invoke.texi: Document -ftree-loop-distribution.
13184         * tree-loop-distribution.c: New.
13185         * tree-pass.h (pass_loop_distribution): New.
13186         * graphds.h (struct graph): Add htab_t indices.
13187         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
13188         * tree-vectorizer.c (rename_variables_in_loop): Extern.
13189         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
13190         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
13191         * tree-data-ref.c (debug_data_dependence_relations): New.
13192         (dump_data_dependence_relation): Also print data references.
13193         (free_data_ref): Extern.
13194         (same_access_functions): Moved...
13195         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
13196         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13197         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
13198         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
13199         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
13200         (stmts_from_loop): Skip LABEL_EXPR.
13201         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
13202         New.
13203         (build_rdg): Initialize rdg->indices htab.
13204         (free_rdg, stores_from_loop, ref_base_address,
13205         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
13206         have_similar_memory_accesses_1, ref_base_address_1,
13207         remove_similar_memory_refs): New.
13208         * tree-data-ref.h: Depend on tree-chrec.h.
13209         (debug_data_dependence_relations, free_data_ref): Declared.
13210         (same_access_functions): ... here.
13211         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
13212         New.
13213         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
13214         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
13215         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
13216         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13217         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
13218         rdg_vertex_for_stmt): Declared.
13219         (struct rdg_edge): Add level.
13220         (RDGE_LEVEL): New.
13221         (free_rdg, stores_from_loop, remove_similar_memory_refs,
13222         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
13223         Declared.
13224         (rdg_has_similar_memory_accesses): New.
13225         * tree-vect-analyze.c: Remove unused static decls.
13226         * lambda.h (dependence_level): New.
13227         * common.opt (ftree-loop-distribution): New.
13228         * tree-flow.h (mark_virtual_ops_in_bb, 
13229         slpeel_tree_duplicate_loop_to_edge_cfg,
13230         rename_variables_in_loop): Declared.
13231         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
13232         (OBJS-common): Add tree-loop-distribution.o.
13233         (tree-loop-distribution.o): New rule.
13234         * tree-cfg.c (mark_virtual_ops_in_bb): New.
13235         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
13236         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
13237
13238 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
13239
13240         PR target/33963
13241         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
13242         other than structures and unions.
13243
13244 2008-02-28  Richard Guenther  <rguenther@suse.de>
13245
13246         Revert:
13247         2008-02-26  Richard Guenther  <rguenther@suse.de>
13248
13249         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13250         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13251         (lookup_decl_from_uid): Declare.
13252         (remove_decl_from_map): Likewise.
13253         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13254         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13255         (decl_for_uid_map): New global hashtable mapping DECL_UID
13256         to the decl tree.
13257         (init_ttree): Allocate it.
13258         (insert_decl_to_uid_decl_map): New helper function.
13259         (make_node_stat): Insert new decls into the map.
13260         (copy_node_stat): Likewise.
13261         (lookup_decl_from_uid): New function.
13262         (remove_decl_from_map): Likewise.
13263         (print_decl_for_uid_map_statistics): New helper.
13264         (dump_tree_statistics): Call it.
13265
13266         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13267         (referenced_var_iterator): Adjust.
13268         (FOR_EACH_REFERENCED_VAR): Adjust.
13269         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13270         (num_referenced_vars): Adjust.
13271         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13272         (first_referenced_var): Remove.
13273         (end_referenced_vars_p): Likewise.
13274         (next_referenced_var): Likewise.
13275         (referenced_var_iterator_set): New helper function.
13276         * tree-dfa.c (referenced_var_lookup): Adjust.
13277         (referenced_var_check_and_insert): Likewise.
13278         (remove_referenced_var): Likewise.
13279         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13280         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13281         (verify_call_clobbering): Likewise.
13282         (verify_memory_partitions): Likewise.
13283         (init_tree_ssa): Allocate bitmap instead of hashtable for
13284         referenced_vars.
13285         (delete_tree_ssa): Adjust.
13286         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13287         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13288         (compute_tag_properties): Likewise.
13289         (set_initial_properties): Likewise.
13290         (find_partition_for): Likewise.
13291         (update_reference_counts): Likewise.
13292         (dump_may_aliases_for): Likewise.
13293         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13294         (add_call_clobber_ops): Likewise.
13295         (add_call_read_ops): Likewise.
13296         (get_asm_expr_operands): Likewise.
13297         * tree-into-ssa.c (dump_decl_set): Likewise.
13298         (update_ssa): Likewise.
13299         * tree-sra.c (scan_function): Likewise.
13300         (decide_instantiations): Likewise.
13301         (scalarize_parms): Likewise.
13302         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13303         (dsa_named_for): Likewise.
13304         * tree-ssa-structalias.c (update_alias_info): Likewise.
13305         (merge_smts_into): Likewise.
13306
13307 2008-02-27  David Daney  <ddaney@avtrex.com>
13308
13309         PR target/34409
13310         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
13311         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
13312         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
13313         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
13314         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
13315
13316 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
13317
13318         PR target/25477
13319         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
13320         (BUILT_IN_NEXTTOWARD): Remove.
13321         (BUILT_IN_NEXTTOWARDF): Ditto.
13322         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
13323         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
13324
13325 2008-02-27  Tom Tromey  <tromey@redhat.com>
13326
13327         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
13328         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
13329
13330 2008-02-27  Jan Beulich  <jbeulich@novell.com>
13331
13332         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
13333         update the respective field on newdecl.
13334
13335 2008-02-27  Revital Eres  <eres@il.ibm.com>
13336
13337         PR rtl-optimization/34999
13338         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
13339         crossing edges that ends with a call insn.
13340         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
13341         call insn and clear the EDGE_CROSSING flag of the crossing edge
13342         when fixing fallthru edges.
13343
13344 2008-02-27  Richard Guenther  <rguenther@suse.de>
13345
13346         PR middle-end/35390
13347         * fold-const.c (fold_unary): Return the correct argument,
13348         converted to the result type.
13349
13350 2008-02-27  Richard Guenther  <rguenther@suse.de>
13351
13352         PR middle-end/34971
13353         * expr.c (expand_expr_real_1): Assert on rotates that operate
13354         on partial modes.
13355         * fold-const.c (fold_binary): Use the types precision, not the
13356         bitsize of the mode if folding rotate expressions.  Build rotates
13357         only for full modes.
13358
13359 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
13360
13361         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
13362         and CPP_PRAGMA_EOL.
13363         * c-pragma.c (pragma_ns_name): New typedef.
13364         (registered_pp_pragmas): New variable.
13365         (c_pp_lookup_pragma): New function.
13366         (c_register_pragma_1): If flag_preprocess_only, do nothing
13367         for non-expanded pragmas, for expanded ones push pragma's
13368         namespace and name into registered_pp_pragmas vector.
13369         (c_invoke_pragma_handler): Register OpenMP pragmas even when
13370         flag_preprocess_only, don't register GCC pch_preprocess
13371         pragma if flag_preprocess_only.
13372         * c-opts.c (c_common_init): Call init_pragma even if
13373         flag_preprocess_only.
13374         * c-pragma.c (c_pp_lookup_pragma): New prototype.
13375         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
13376         cpp_register_pragma if flag_preprocess_only.
13377
13378 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13379
13380         PR c/28800
13381         * c-parser.c (c_parser_translation_unit): Warn for empty
13382         translation unit, not empty source file.
13383
13384 2008-02-26  Paul Brook  <paul@codesourcery.com>
13385
13386         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
13387         operand for Thumb-2.
13388         * config/arm/arm.h (reg_class): Add CORE_REGS.
13389         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
13390         (BASE_REG_CLASS): Use CORE_REGS.
13391         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
13392         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
13393         (REGNO_OK_FOR_INDEX_P): Exclude SP.
13394         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
13395         ARM_REGNO_OK_FOR_INDEX_P.
13396         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
13397         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
13398         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
13399         (ldm/stm peepholes): Ditto.
13400         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
13401         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
13402         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
13403         * config/arm/constraints.md: Enable "k" constraint on ARM.
13404
13405 2008-02-27  Ben Elliston  <bje@au.ibm.com>
13406
13407         * config/rs6000/rs6000.c: Annotate cache line size field in all
13408         instances of struct processor_costs.
13409
13410 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
13411
13412         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
13413         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
13414         jump_bypass): New counters.
13415         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
13416         * dce.c (gate_ud_dce): Same.
13417         (gate_fast_dce): Same.
13418         * dse.c (gate_dse1): New function.
13419         (gate_dse2): New function.
13420         (gate_dse): Merge results of new gate functions.
13421         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
13422         (gate_handle_jump_bypass): Add dbg_cnt.
13423         (gate_handle_gcse): Add dbg_cnt.
13424         * ifcvt.c (gate_handle_if_conversion): Same.
13425         (gate_handle_if_after_combine): Same.
13426         (gate_handle_if_after_reload): Same.
13427         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
13428
13429 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
13430
13431         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
13432         line sizes.
13433         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
13434
13435 2008-02-26  Jason Merrill  <jason@redhat.com>
13436
13437         PR c++/35315
13438         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
13439         alone if it's the naming decl for the type's main variant.
13440
13441 2008-02-26  Tom Tromey  <tromey@redhat.com>
13442
13443         * system.h (USE_MAPPED_LOCATION): Poison.
13444         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
13445         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
13446         (make_goto_expr_edges): Likewise.
13447         (remove_bb): Likewise.
13448         (execute_warn_function_return): Likewise.
13449         * basic-block.h (struct edge_def) <goto_locus>: Change type to
13450         location_t.
13451         * c-common.c (fname_decl): Remove old location code.
13452         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
13453         location code.
13454         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
13455         variant.
13456         (ASM_INPUT_SOURCE_LOCATION): Likewise.
13457         (gen_rtx_ASM_INPUT): Likewise.
13458         (gen_rtx_ASM_INPUT_loc): Likewise.
13459         (get_rtx_asm_OPERANDS): Remove.
13460         * cfglayout.c (insn_locators_alloc): Remove old location code.
13461         (set_curr_insn_source_location): Likewise.
13462         (curr_insn_locator): Likewise.
13463         * print-tree.c (print_node): Remove old location code.
13464         * tree-mudflap.c (mf_varname_tree): Remove old location code.
13465         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
13466         * cfgexpand.c (expand_gimple_cond_expr): Don't use
13467         location_from_locus.
13468         (construct_exit_block): Remove old location code.
13469         * emit-rtl.c (force_next_line_note): Remove old location code.
13470         * profile.c (branch_prob): Remove old location code.
13471         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
13472         LOC_LINE): Remove old-location variants.
13473         * langhooks.c (lhd_print_error_function): Remove old location
13474         code.
13475         * configure, config.in: Rebuilt.
13476         * configure.ac (--enable-mapped-location): Remove.
13477         * c-decl.c (c_init_decl_processing): Remove old location code.
13478         (finish_function): Likewise.
13479         * recog.c (decode_asm_operands): Remove old location code.
13480         * c-pch.c (c_common_read_pch): Remove old location code.
13481         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
13482         variants.
13483         * gimple-low.c (lower_function_body): Remove old location code.
13484         * toplev.c (unknown_location): Remove.
13485         (push_srcloc): Remove old-location variant.
13486         (process_options): Remove old location code.
13487         (lang_dependent_init): Likewise.
13488         * input.h (UNKNOWN_LOCATION): Move definition.
13489         (location_t): Undeprecate.
13490         (source_locus): Remove.
13491         (location_from_locus): Remove.
13492         (struct location_s): Remove.
13493         Remove all old-location code.
13494         (input_line, input_filename): Remove.
13495         * final.c (final_scan_insn): Remove old location code.
13496         * diagnostic.c (diagnostic_build_prefix): Remove
13497         USE_MAPPED_LOCATION test.
13498         * tree.h (gimple_stmt) <locus>: Now a location_t.
13499         (tree_exp) <locus>: Likewise.
13500         (DECL_IS_BUILTIN): Remove old-location variant.
13501         (annotate_with_file_line, annotate_with_locus): Likewise.
13502         (expr_locus, set_expr_locus): Update.
13503         * tree.c (build1_stat): Remove old location code.
13504         (last_annotated_node): Remove.
13505         (annotate_with_file_line): Remove old-location variant.
13506         (annotate_with_locus): Likewise.
13507         (expr_location): Remove old location code.
13508         (set_expr_location): Likewise.
13509         (expr_has_location): Likewise.
13510         (expr_locus): Likewise.
13511         (set_expr_locus): Likewise.
13512         (expr_filename): Don't use location_from_locus.
13513         (expr_lineno): Likewise.
13514         * rtl-error.c (location_for_asm): Remove old location code.
13515         * c-lex.c (cb_line_change): Remove old location code.
13516         (fe_file_change): Likewise.
13517         (cb_def_pragma): Likewise.
13518         (c_lex_with_flags): Likewise.
13519         * gengtype.c (do_typedef): Don't special-case location types.
13520         (define_location_structures): Remove.
13521         (main): Don't call define_location_structures.
13522         * tree-pretty-print.c (dump_implicit_edges): Remove old location
13523         code.
13524
13525 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13526
13527         PR 26264
13528         * builtins.def (BUILT_IN_STDARG_START): Remove.
13529         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
13530         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
13531         * tree-inline.c (inline_forbidden_p_1): Likewise.
13532         
13533 2008-02-26  Richard Guenther  <rguenther@suse.de>
13534
13535         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13536         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13537         (lookup_decl_from_uid): Declare.
13538         (remove_decl_from_map): Likewise.
13539         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13540         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13541         (decl_for_uid_map): New global hashtable mapping DECL_UID
13542         to the decl tree.
13543         (init_ttree): Allocate it.
13544         (insert_decl_to_uid_decl_map): New helper function.
13545         (make_node_stat): Insert new decls into the map.
13546         (copy_node_stat): Likewise.
13547         (lookup_decl_from_uid): New function.
13548         (remove_decl_from_map): Likewise.
13549         (print_decl_for_uid_map_statistics): New helper.
13550         (dump_tree_statistics): Call it.
13551
13552         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13553         (referenced_var_iterator): Adjust.
13554         (FOR_EACH_REFERENCED_VAR): Adjust.
13555         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13556         (num_referenced_vars): Adjust.
13557         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13558         (first_referenced_var): Remove.
13559         (end_referenced_vars_p): Likewise.
13560         (next_referenced_var): Likewise.
13561         (referenced_var_iterator_set): New helper function.
13562         * tree-dfa.c (referenced_var_lookup): Adjust.
13563         (referenced_var_check_and_insert): Likewise.
13564         (remove_referenced_var): Likewise.
13565         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13566         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13567         (verify_call_clobbering): Likewise.
13568         (verify_memory_partitions): Likewise.
13569         (init_tree_ssa): Allocate bitmap instead of hashtable for
13570         referenced_vars.
13571         (delete_tree_ssa): Adjust.
13572         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13573         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13574         (compute_tag_properties): Likewise.
13575         (set_initial_properties): Likewise.
13576         (find_partition_for): Likewise.
13577         (update_reference_counts): Likewise.
13578         (dump_may_aliases_for): Likewise.
13579         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13580         (add_call_clobber_ops): Likewise.
13581         (add_call_read_ops): Likewise.
13582         (get_asm_expr_operands): Likewise.
13583         * tree-into-ssa.c (dump_decl_set): Likewise.
13584         (update_ssa): Likewise.
13585         * tree-sra.c (scan_function): Likewise.
13586         (decide_instantiations): Likewise.
13587         (scalarize_parms): Likewise.
13588         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13589         (dsa_named_for): Likewise.
13590         * tree-ssa-structalias.c (update_alias_info): Likewise.
13591         (merge_smts_into): Likewise.
13592
13593 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13594
13595         PR 34351
13596         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
13597         * c-opts.c (c_common_handle_option): Wall enables
13598         Wvolatile-register-var.
13599         * common.opt: Move Wvolatile-register-var to...
13600         * c.opt: ...here.
13601         
13602 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13603
13604         * common.opt (Wlarger-than=): New.
13605         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
13606         -Wlarger-than=.
13607         * opts.c (common_handle_option): Handle -Wlarger-than=.
13608         * optc-gen.awk: Likewise.
13609         * opth-gen.awk: Likewise.
13610         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
13611         * tree-optimize.c (tree_rest_of_compilation): Likewise.
13612         
13613 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13614
13615         * c-common.c (match_case_to_enum_1): Add appropriate
13616         OPT_W* parameter to warning.
13617         (c_do_switch_warnings): Likewise.
13618         * c-typeck.c (warning_init): Add one more parameter following
13619         'warning' function.
13620         (push_init_level): Update call to warning_init.
13621         (pop_init_level): Likewise.
13622         (add_pending_init): Likewise.
13623         (output_init_element: Likewise.
13624
13625 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13626
13627         PR 28322
13628         * toplev.c (toplev_main): If there are warnings or error, print
13629         errors for ignored options.
13630         * opts.c (ignored_options): New static variable.
13631         (postpone_unknown_option_error): New.
13632         (print_ignored_options): New.
13633         (handle_option): Postpone errors for unknown -Wno-* options.
13634         * opts.h (print_ignored_options): Declare.
13635         
13636 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
13637
13638         * config/mips/mips.md (loadgp_blockage, blockage): Change type
13639         to "ghost".
13640
13641 2008-02-25  Richard Guenther  <rguenther@suse.de>
13642
13643         Revert:
13644         2008-02-25  Richard Guenther  <rguenther@suse.de>
13645
13646         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13647         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13648         (lookup_decl_from_uid): Declare.
13649         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13650         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13651         (decl_for_uid_map): New global hashtable mapping DECL_UID
13652         to the decl tree.
13653         (init_ttree): Allocate it.
13654         (insert_decl_to_uid_decl_map): New helper function.
13655         (make_node_stat): Insert new decls into the map.
13656         (copy_node_stat): Likewise.
13657         (lookup_decl_from_uid): New function.
13658         (print_decl_for_uid_map_statistics): New helper.
13659         (dump_tree_statistics): Call it.
13660
13661         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13662         (referenced_var_iterator): Adjust.
13663         (FOR_EACH_REFERENCED_VAR): Adjust.
13664         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13665         (num_referenced_vars): Adjust.
13666         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13667         (first_referenced_var): Remove.
13668         (end_referenced_vars_p): Likewise.
13669         (next_referenced_var): Likewise.
13670         (referenced_var_iterator_set): New helper function.
13671         * tree-dfa.c (referenced_var_lookup): Adjust.
13672         (referenced_var_check_and_insert): Likewise.
13673         (remove_referenced_var): Likewise.
13674         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13675         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13676         (verify_call_clobbering): Likewise.
13677         (verify_memory_partitions): Likewise.
13678         (init_tree_ssa): Allocate bitmap instead of hashtable for
13679         referenced_vars.
13680         (delete_tree_ssa): Adjust.
13681         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13682         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13683         (compute_tag_properties): Likewise.
13684         (set_initial_properties): Likewise.
13685         (find_partition_for): Likewise.
13686         (update_reference_counts): Likewise.
13687         (dump_may_aliases_for): Likewise.
13688         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13689         (add_call_clobber_ops): Likewise.
13690         (add_call_read_ops): Likewise.
13691         (get_asm_expr_operands): Likewise.
13692         * tree-into-ssa.c (dump_decl_set): Likewise.
13693         (update_ssa): Likewise.
13694         * tree-sra.c (scan_function): Likewise.
13695         (decide_instantiations): Likewise.
13696         (scalarize_parms): Likewise.
13697         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13698         (dsa_named_for): Likewise.
13699         * tree-ssa-structalias.c (update_alias_info): Likewise.
13700         (merge_smts_into): Likewise.
13701
13702 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
13703
13704         PR fortran/29549
13705         * doc/invoke.texi (-fcx-limited-range): Document new option.
13706         * toplev.c (process_options): Handle -fcx-fortran-rules.
13707         * common.opt: Add documentation for -fcx-fortran-rules.
13708
13709 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
13710
13711         PR c/35162
13712         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
13713         actual behaviour and C99.
13714         
13715 2008-02-26  Ben Elliston  <bje@au.ibm.com>
13716
13717         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
13718         (ASM_CPU_POWER6_SPEC): Likewise.
13719         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
13720         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
13721         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
13722
13723 2008-02-25  Richard Guenther  <rguenther@suse.de>
13724
13725         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13726         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13727         (lookup_decl_from_uid): Declare.
13728         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13729         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13730         (decl_for_uid_map): New global hashtable mapping DECL_UID
13731         to the decl tree.
13732         (init_ttree): Allocate it.
13733         (insert_decl_to_uid_decl_map): New helper function.
13734         (make_node_stat): Insert new decls into the map.
13735         (copy_node_stat): Likewise.
13736         (lookup_decl_from_uid): New function.
13737         (print_decl_for_uid_map_statistics): New helper.
13738         (dump_tree_statistics): Call it.
13739
13740         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13741         (referenced_var_iterator): Adjust.
13742         (FOR_EACH_REFERENCED_VAR): Adjust.
13743         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13744         (num_referenced_vars): Adjust.
13745         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13746         (first_referenced_var): Remove.
13747         (end_referenced_vars_p): Likewise.
13748         (next_referenced_var): Likewise.
13749         (referenced_var_iterator_set): New helper function.
13750         * tree-dfa.c (referenced_var_lookup): Adjust.
13751         (referenced_var_check_and_insert): Likewise.
13752         (remove_referenced_var): Likewise.
13753         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13754         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13755         (verify_call_clobbering): Likewise.
13756         (verify_memory_partitions): Likewise.
13757         (init_tree_ssa): Allocate bitmap instead of hashtable for
13758         referenced_vars.
13759         (delete_tree_ssa): Adjust.
13760         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13761         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13762         (compute_tag_properties): Likewise.
13763         (set_initial_properties): Likewise.
13764         (find_partition_for): Likewise.
13765         (update_reference_counts): Likewise.
13766         (dump_may_aliases_for): Likewise.
13767         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13768         (add_call_clobber_ops): Likewise.
13769         (add_call_read_ops): Likewise.
13770         (get_asm_expr_operands): Likewise.
13771         * tree-into-ssa.c (dump_decl_set): Likewise.
13772         (update_ssa): Likewise.
13773         * tree-sra.c (scan_function): Likewise.
13774         (decide_instantiations): Likewise.
13775         (scalarize_parms): Likewise.
13776         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13777         (dsa_named_for): Likewise.
13778         * tree-ssa-structalias.c (update_alias_info): Likewise.
13779         (merge_smts_into): Likewise.
13780
13781 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
13782
13783         PR target/35258
13784         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
13785         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
13786         * alias.h (nonoverlapping_memrefs_p): Likewise.
13787
13788 2008-02-25  Jan Beulich  <jbeulich@novell.com>
13789
13790         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
13791         * config/i386/netware-libgcc.exp: Add __bswap?i2,
13792         __emultls_get_address, __emultls_register_common,
13793         __floatundi?f, and _Unwind_GetIPInfo.
13794         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
13795         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
13796         (gen_regparm_prefix): Likewise.
13797         (i386_nlm_encode_section_info): Sync with
13798         config/i386/winnt.c:i386_pe_encode_section_info().
13799         (i386_nlm_maybe_mangle_decl_assembler_name): New.
13800         i386_nlm_mangle_decl_assembler_name): New.
13801         (netware_override_options): New.
13802         * config/i386/netware.h (netware_override_options): Declare.
13803         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
13804         (i386_nlm_mangle_decl_assembler_name): Declare.
13805         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
13806
13807 2008-02-25  Ben Elliston  <bje@au.ibm.com>
13808
13809         PR other/32948
13810         * c-decl.c (grokdeclarator): Remove unused local variables
13811         `typedef_type' and `type_as_written'.
13812         * bb-reorder.c
13813         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
13814         unused local variable `has_hot_blocks'.
13815         (fix_crossing_conditional_branches): Remove unused local variable
13816         `prev_bb'.
13817         
13818 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
13819
13820         PR middle-end/19984
13821         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
13822         using DEF_C99_BUILTIN.
13823         (BUILT_IN_NANF): Ditto.
13824         (BUILT_IN_NANL): Ditto.
13825
13826 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
13827             Revital Eres  <eres@il.ibm.com>
13828
13829         * modulo-sched.c (calculate_must_precede_follow): Address TODO
13830         regarding the order of two dependent insns in the same row.
13831
13832 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
13833
13834         * stor-layout.c (layout_decl): Do not bump the alignment of a
13835         bit-field to more than byte alignment if it is packed.
13836
13837 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
13838
13839         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
13840         e300c2 and e300c3.
13841
13842 2008-02-24  Diego Novillo  <dnovillo@google.com>
13843
13844         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
13845
13846         PR 33738
13847         * tree-vrp.c (vrp_evaluate_conditional): With
13848         -Wtype-limits, emit a warning when comparing against a
13849         constant outside the natural range of OP0's type.
13850         * c.opt (Wtype-limits): Move ...
13851         * common.opt (Wtype-limits): ... here.
13852
13853 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
13854
13855         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
13856         * config/rs6000/e300c2c3.md: New file.
13857         * config/rs6000/rs6000.c (processor_costs): Add new costs for
13858         e300c2 and e300c3.
13859         (rs6000_override_options): Add e300c2 and e300c3 cases to
13860         processor_target_table. Do not allow usage of Altivec or Spe
13861         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
13862         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
13863         * config/rs6000/rs6000.h (processor_type): Add
13864         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
13865         (ASM_CPU_SPEC): Add e300c2 and e300c3.
13866         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
13867         and ppce300c3. Include e300c2c3.md.
13868
13869 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
13870
13871         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
13872         instead of TARGET_STRICT_ALIGN.
13873
13874 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
13875
13876         * explow.c (memory_address): Assert that the generated address is
13877         valid.
13878
13879 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
13880
13881         PR target/25477
13882         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
13883         * config/darwin-ppc-ldouble-patch.def: New file.
13884         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
13885         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
13886         SUBTARGET_INIT_BUILTINS if defined.
13887         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
13888         New functions.
13889
13890 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13891
13892         PR rtl-opt/33512
13893         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
13894         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
13895
13896 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13897
13898         PR pch/35027
13899         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
13900         file" warning condtional on -Winvalid-PCH.
13901
13902 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
13903
13904         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
13905
13906 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
13907
13908         PR target/22076
13909         PR target/34256 
13910         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
13911         prevent reload from using MMX registers.
13912         (*mov<mode>_internal): Ditto.
13913         (*movv2sf_internal_rex64): Ditto.
13914         (*movv2sf_internal): Ditto.
13915
13916 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13917
13918         PR documentation/31569
13919         * doc/install.texi2html: Use makeinfo --no-number-sections.
13920
13921 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13922
13923         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
13924         ensure that we can address an entire entity > 8 bytes.  Don't
13925         generate reg+reg addressing for such data.
13926
13927 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13928
13929         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
13930         strings when optimizing for size, unless the target cares about
13931         alignment.
13932
13933 2008-02-22  Tom Tromey  <tromey@redhat.com>
13934
13935         * regclass.c (current_pass): Remove declaration.
13936
13937 2008-02-22  Anatoly Sokolov <aesok@post.ru>
13938
13939         * config/avr/libgcc.S (__RAMPZ__): Define.
13940         (__do_copy_data): Add for devices with 128KB code memory.
13941
13942 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13943
13944         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
13945         Use spe_abi.
13946         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
13947
13948 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
13949
13950         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
13951         GENNONACR_REGS.
13952
13953 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13954
13955         PR c/19999
13956         * c-typeck.c (build_binary_op): Warn about floating point
13957         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
13958
13959 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
13960
13961         PR target/34526
13962         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
13963         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
13964         add vrsave.
13965         (rs6000_override_options): Set altivec_abi as default, not override,
13966         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
13967         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
13968         is used; use new member spe_abi.
13969         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
13970         spe_abi and altivec_abi.
13971
13972 2008-02-22  Tomas Bily  <tbily@suse.cz>
13973
13974         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
13975
13976 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13977
13978         PR bootstrap/35273
13979         * config.build (build_file_translate): Set to `CMD //c' only if
13980         it works.
13981         * Makefile.in (build_file_translate): Improve comment.
13982
13983 2008-02-21  Jan Hubicka  <jh@suse.cz>
13984
13985         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
13986         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
13987         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
13988
13989 2008-02-21  Michael Matz  <matz@suse.de>
13990
13991         PR target/35264
13992         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
13993
13994 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
13995
13996         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
13997         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
13998         as insn constraint.
13999         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
14000         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
14001         SSE_VEC_FLOAT_MODE_P as insn constraint.
14002         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
14003         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
14004         sse4a_movntdf using MODEF mode iterator.
14005         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
14006         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
14007         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
14008         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
14009         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
14010         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
14011         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
14012
14013 2008-02-21  Richard Guenther  <rguenther@suse.de>
14014
14015         * tree.def (PAREN_EXPR): New tree code.
14016         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
14017         and PAREN_EXPR.
14018         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
14019         * expr.c (expand_expr_real_1): Likewise.
14020         * tree-inline.c (estimate_num_insns_1): Likewise.
14021         * tree-complex.c (expand_complex_move): Likewise.
14022         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
14023         as plain x.
14024
14025 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14026
14027         PR target/35225
14028         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
14029
14030 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14031
14032         PR target/35190
14033         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
14034
14035         * config/sh/sh.c (find_barrier): Don't go past
14036         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
14037
14038 2008-02-20  DJ Delorie  <dj@redhat.com>
14039
14040         * config/h8300/h8300.md (insv): Force source operand to be a register.
14041
14042         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
14043         as a jump, not as a plain insn.
14044         
14045 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
14046
14047         * doc/invoke.texi (Warning Options): Add new option
14048         -Wframe-larger-than=.
14049         (-Wframe-larger-than): Document.
14050
14051         * flags.h (warn_frame_larger_than, frame_larger_than_size):
14052         Add declarations for new option variables.
14053
14054         * final.c (final_start_function): Check the frame size
14055         before emission and issue a Wframe-larger-than warning.
14056
14057         * opts.c (warn_frame_larger_than, frame_larger_than_size):
14058         Add definitions for new option variables.
14059         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
14060
14061         * common.opt (Wframe-larger-than=): New option.
14062
14063 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
14064
14065         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
14066         (<sse>_div<mode>3): Ditto.
14067         (<sse>_vmdiv<mode>3): Ditto.
14068         (<sse>_vmsqrt<mode>2): Ditto.
14069         (*smax<mode>3): Ditto.
14070         (sse5_frcz<mode>2): Ditto.
14071         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
14072         as insn constraint.
14073
14074 2008-02-20  Richard Guenther  <rguenther@suse.de>
14075
14076         PR middle-end/35265
14077         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
14078         be happy with INTEGRAL_TYPE_P.
14079
14080 2008-02-20  Richard Guenther  <rguenther@suse.de>
14081
14082         * fold-const.c (split_tree): Associate floatig-point expressions
14083         if flag_associative_math is set.
14084
14085 2008-02-20  Richard Guenther  <rguenther@suse.de>
14086
14087         * tree.h (fold_real_zero_addition_p): Declare.
14088         * fold-const.c (fold_real_zero_addition_p): Export.
14089         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
14090         floating-point operations with zero and one.
14091
14092 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
14093
14094         * doc/install.texi: Correct references to CFLAGS, replacing them
14095         with BOOT_CFLAGS.  Document flags used during bootstrap for
14096         target libraries.
14097                                 
14098 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
14099
14100         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
14101         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
14102         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
14103         insn constraint.
14104         (smin<mode>3): Ditto from similar patterns.
14105         (smax<mode>3): Ditto.
14106         (*ieee_smin<mode>3): Ditto.
14107         (*ieee_smax<mode>3): Ditto.
14108         * config/i386/sse.md (sse): New mode attribute.
14109         (mov<mode>): Macroize expander from movv4sf and movv2df using
14110         SSEMODEF2P mode iterator.
14111         (<sse>_movnt<mode>): Ditto from similar patterns. Use
14112         SSE_VEC_FLOAT_MODE_P as insn constraint.
14113         (storent<mode>): Ditto.
14114         (storent<mode>): Macroize expander from storentsf and storentdf using
14115         MODEF mode iterator.
14116         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
14117         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
14118         (abs<mode>2): Ditto from similar patterns.
14119         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
14120         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
14121         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
14122         (<sse>_vmsqrt<mode>2): Ditto.
14123         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
14124         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
14125         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
14126         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
14127         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
14128         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
14129         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
14130         insn constraint.
14131         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
14132         iterator and SSE_FLOAT_MODE_P as insn constraint.
14133         (<sse>_ucomi): Ditto from similar patterns.
14134         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
14135         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
14136         SSE_VEC_FLOAT_MODE_P as insn constraint.
14137         (vcond<mode>): Ditto from similar patterns.
14138         (and<mode>3, *and<mode>3): Ditto.
14139         (<sse>_nand<mode>3): Ditto.
14140         (ior<mode>3, *ior<mode>3): Ditto.
14141         (xor<mode>3, *xor<mode>3): Ditto.
14142         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
14143         iterator and SSE_FLOAT_MODE_P as insn constraint.
14144         (*nand<mode>3): Ditto from similar patterns.
14145         (*ior<mode>3): Ditto.
14146         (*xor<mode>3): Ditto.
14147
14148 2008-02-20  Ira Rosen  <irar@il.ibm.com>
14149
14150         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
14151         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
14152         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
14153
14154 2008-02-19  Jan Hubicka  <jh@suse.cz>
14155
14156         * predict.c (tree_bb_level_predictions): Remove variable next
14157         mistakely introduced by previous commit.
14158
14159 2008-02-19  Jan Hubicka  <jh@suse.cz>
14160
14161         * predict.c (predict_paths_leading_to): Rewrite.
14162         (predict_paths_for_bb): New.
14163         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
14164
14165 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14166
14167         PR bootstrap/35218
14168         * Makefile.in (build_file_translate): New.
14169         (gcc-vers.texi): Use it for translating $(abs_srcdir).
14170         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
14171         * configure.ac (build_file_translate): Substitute it.
14172         * configure: Regenerate.
14173
14174 2008-02-19  Jan Hubicka  <jh@suse.cz>
14175
14176         PR rtl-optimization/34408
14177         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
14178         invalid sharing.
14179
14180 2008-02-19  Jan Hubicka  <jh@suse.cz>
14181
14182         PR middle-end/28779
14183         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
14184         call_expr.
14185
14186 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
14187
14188         PR Ada/35186
14189         * config/i386/i386-modes.def: Revert the last DI alignment
14190         change until Ada people can look into it.
14191
14192 2008-02-19  Nick Clifton  <nickc@redhat.com>
14193
14194         * opts.c (print_specific_help): Fix typo in --help text.
14195
14196 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
14197
14198         PR target/35239
14199         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
14200         32-bit inline asm without asm alternatives for host GCC < 3.0.
14201
14202 2008-02-19  Richard Guenther  <rguenther@suse.de>
14203
14204         PR tree-optimization/34989
14205         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
14206         Allow propagation to INDIRECT_REF if we can simplify only.
14207
14208 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14209
14210         * c-common.c (warn_for_collisions_1): Use appropriate option when
14211         warning.
14212
14213 2008-02-19  Nick Clifton  <nickc@redhat.com>
14214
14215         PR other/31349
14216         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
14217         (handle_options): Fix indentation.
14218         (print_filtered_help): If no language-specific options were
14219         displayed tell the user how to list all the options supported by
14220         the language's front-end.
14221         (print_specific_help): Fix indentation and remove duplicate line.
14222         (common_handle_option): Handle the -v option.
14223         For --help enable the display of undocumented options if the -v
14224         switch has been included on the command line.
14225         For --help= check for overlaps in the arguments between the option
14226         classes and the language names and issue a warning when they
14227         cannot be disambiguated.
14228         * c.opt (v): Pass on to the common option handler.
14229
14230 2008-02-19  Revital Eres  <eres@il.ibm.com> 
14231
14232         * modulo-sched.c (sms_schedule): Change dump message when
14233         create_ddg function fails.
14234         (try_scheduling_node_in_cycle): Rename row to cycle.
14235         (print_partial_schedule): Rename CYCLE to ROW.
14236
14237 2008-02-19  Christian Bruel  <christian.bruel@st.com>
14238             Zdenek Dvorak  <ook@ucw.cz>
14239
14240         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
14241
14242 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14243
14244         PR target/33555
14245         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
14246         (*x86_movdicc_0_m1_se): Ditto.
14247
14248 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14249
14250         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
14251         (CMPtype): Define as __gcc_CMPtype.
14252         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
14253         (CMPtype): Define as __gcc_CMPtype.
14254
14255 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
14256
14257         Support valgrind 3.3 for --enable-checking=valgrind.
14258         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
14259         here.
14260         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
14261         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
14262         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
14263         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
14264         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
14265         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
14266         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
14267         respectively.
14268         * ggc-zone.c: Similar.
14269         * ggc-page.c: Similar.
14270
14271 2008-02-19  Paul Brook  <paul@codesourcery.com>
14272
14273         PR target/35071
14274         * config/arm/ieee754-df.S: Fix do_it typo.
14275         * config/arm/ieee754-sf.S: Fix do_it typo.
14276
14277 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14278
14279         PR target/35189
14280         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
14281         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
14282         (OPTION_MASK_ISA_SSE_SET): Likewise.
14283         (OPTION_MASK_ISA_SSE2_SET): Likewise.
14284         (OPTION_MASK_ISA_SSE3_SET): Likewise.
14285         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
14286         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
14287         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
14288         (OPTION_MASK_ISA_SSE4_SET): Likewise.
14289         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
14290         (OPTION_MASK_ISA_SSE5_SET): Likewise.
14291         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
14292         (OPTION_MASK_ISA_MMX_UNSET): Updated.
14293         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
14294         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
14295         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
14296         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
14297         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
14298         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
14299         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
14300         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
14301         (OPTION_MASK_ISA_SSE4): Removed.
14302         (ix86_handle_option): Turn on bits in ix86_isa_flags and
14303         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
14304         (override_options): Don't turn on implied SSE/MMX bits in
14305         ix86_isa_flags.
14306
14307 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14308
14309         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
14310         32bit host.
14311
14312 2008-02-18  Joey Ye  <joey.ye@intel.com>
14313
14314         PR middle-end/34921
14315         * tree-nested.c (insert_field_into_struct): Set type alignment
14316         to field alignment if the former is less than the latter.
14317
14318 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
14319
14320         * BASE-VER: Set to 4.4.0.
14321
14322 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14323
14324         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
14325         * doc/cfg.texi: Likewise.
14326         * doc/extend.texi: Likewise.
14327         * doc/gty.texi: Likewise.
14328         * doc/invoke.texi: Likewise.
14329         * doc/loop.texi: Likewise.
14330         * doc/md.texi: Likewise.
14331         * doc/passes.texi: Likewise.
14332         * doc/rtl.texi: Likewise.
14333         * doc/sourcebuild.texi: Likewise.
14334         * doc/tm.texi: Likewise.
14335         * doc/tree-ssa.texi: Likewise.
14336
14337 2008-02-17  Richard Guenther  <rguenther@suse.de>
14338
14339         PR middle-end/35227
14340         * tree-complex.c (init_parameter_lattice_values): Handle parameters
14341         without default definition.
14342
14343 2008-02-17  Richard Guenther  <rguenther@suse.de>
14344
14345         PR tree-optimization/35231
14346         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
14347         if A | B != 1.
14348
14349 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
14350
14351         Revert:
14352         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
14353         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14354         libgcc_cmp_return mode.
14355
14356 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14357
14358         PR c/28368
14359         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
14360
14361 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
14362
14363         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
14364         multilibs.
14365
14366 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14367
14368         * doc/c-tree.texi: Use `@.' where appropriate.
14369         * doc/extend.texi: Likewise.
14370         * doc/install.texi: Likewise.
14371         * doc/invoke.texi: Likewise.
14372         * doc/loop.texi: Likewise.
14373         * doc/makefile.texi: Likewise.
14374         * doc/md.texi: Likewise.
14375         * doc/passes.texi: Likewise.
14376         * doc/standards.texi: Likewise.
14377         * doc/tm.texi: Likewise.
14378
14379 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14380
14381         PR middle-end/35196
14382         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
14383         in entry_bb.
14384         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
14385         rather than in entry_bb.
14386
14387 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14388
14389         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14390         libgcc_cmp_return mode.
14391
14392 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14393
14394         PR middle-end/35130
14395         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
14396         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
14397
14398 2008-02-15  Richard Guenther  <rguenther@suse.de>
14399             Zdenek Dvorak  <ook@ucw.cz>
14400
14401         PR tree-optimization/35164
14402         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
14403         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
14404         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
14405         Only propagate addresses which do not have abnormal SSA_NAMEs
14406         in their operands.
14407
14408 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
14409
14410         PR target/35088
14411         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
14412
14413 2008-02-15  Jan Hubicka  <jh@suse.cz>
14414
14415         PR middle-end/35149
14416         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
14417
14418 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14419
14420         PR middle-end/34621
14421         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
14422         when calculating alignment_pad.
14423
14424 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14425
14426         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
14427         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
14428         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
14429         and STACK_BOUNDARY define.
14430
14431 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
14432
14433         PR preprocessor/35061
14434         * c-pragma.c (handle_pragma_pop_macro): Check that
14435         pushed_macro_table has been allocated.
14436
14437 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
14438
14439         PR middle-end/35136
14440         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
14441         (force_gimple_operand): Likewise.
14442         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
14443         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
14444         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
14445         (find_interesting_uses_address): Check addressability and alignment
14446         of the base expression only after substituting bases of IVs into it.
14447
14448 2008-02-14  Michael Matz  <matz@suse.de>
14449
14450         PR target/34930
14451         * function.c (instantiate_virtual_regs_in_insn): Reload address
14452         before falling back to reloading the whole operand.
14453
14454 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
14455
14456         * config/s390/s390.c (s390_mainpool_start): Emit the pool
14457         before the first section switch note.
14458
14459 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14460
14461         * doc/bugreport.texi: Update copyright years.
14462         * doc/c-tree.texi: Likewise.
14463         * doc/cfg.texi: Likewise.
14464         * doc/cpp.texi: Likewise.
14465         * doc/cppinternals.texi: Likewise.
14466         * doc/fragments.texi: Likewise.
14467         * doc/frontends.texi: Likewise.
14468         * doc/gcc.texi: Likewise.
14469         * doc/gty.texi: Likewise.
14470         * doc/hostconfig.texi: Likewise.
14471         * doc/implement-c.texi: Likewise.
14472         * doc/libgcc.texi: Likewise.
14473         * doc/loop.texi: Likewise.
14474         * doc/makefile.texi: Likewise.
14475         * doc/options.texi: Likewise.
14476         * doc/passes.texi: Likewise.
14477         * doc/rtl.texi: Likewise.
14478         * doc/sourcebuild.texi: Likewise.
14479         * doc/standards.texi: Likewise.
14480         * doc/tree-ssa.texi: Likewise.
14481         * doc/trouble.texi: Likewise.
14482
14483         * doc/extend.texi: Use @: or add comma where appropriate.
14484         * doc/invoke.texi: Likewise.
14485         * doc/tm.texi: Likewise.
14486
14487 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
14488
14489         PR target/34393
14490         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
14491         to a reg.
14492
14493 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
14494
14495         * doc/md.texi (clz, ctz): Add reference.
14496         * doc/rtl.texi (clz, ctz): Likewise.
14497
14498 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14499
14500         PR other/35148
14501         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
14502         srcdir.
14503
14504 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
14505
14506         * config/s390/s390.c (struct constant_pool): New field
14507         emit_pool_after added.
14508         (s390_mainpool_start): Set the emit_pool_after flag according
14509         to the section switch notes.
14510         (s390_mainpool_finish): Consider emit_pool_after when emitting
14511         the literal pool at the end of the function.
14512         (s390_chunkify_start): Force literal pool splits at section
14513         switch notes.
14514
14515 2008-02-13  Michael Matz  <matz@suse.de>
14516
14517         PR debug/35065
14518         * var-tracking.c (clobber_variable_part): Correctly traverse the
14519         list.
14520
14521 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14522
14523         PR 29673
14524         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
14525         Add -fdump-ipa-inline.
14526         * tree-dump.c (dump_files): Remove tree-inlined dump.
14527         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
14528         
14529 2008-02-12  Richard Guenther  <rguenther@suse.de>
14530
14531         PR tree-optimization/35171
14532         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
14533         default defs.
14534
14535 2008-02-12  Richard Guenther  <rguenther@suse.de>
14536
14537         PR middle-end/35163
14538         * fold-const.c (fold_widened_comparison): Use get_unwidened in
14539         value-preserving mode.  Disallow final truncation.
14540
14541 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
14542
14543         PR middle-end/35136
14544         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
14545         code from here to...
14546         (force_gimple_operand): ...here.
14547
14548 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
14549
14550         PR c++/35144
14551         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
14552         non-compatible pointers.
14553         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
14554         different FIELD_DECLs, try harder by comparing field offsets, sizes
14555         and types.
14556
14557         PR inline-asm/35160
14558         * function.c (match_asm_constraints_1): Don't replace the same input
14559         multiple times.
14560
14561 2008-02-12  Anatoly Sokolov <aesok@post.ru>
14562
14563         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
14564         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
14565         (expand_epilogue): Restore RAMPZ register.
14566         * config/avr/avr.md (RAMPZ_ADDR): New constant.
14567
14568 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
14569
14570         * config/i386/cygwin.asm: (__alloca): Correct calling
14571         convention and alignment.
14572         (__chkstk): Force 8 byte stack alignment.
14573
14574 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
14575             Richard Guenther  <rguenther@suse.de>
14576
14577         PR tree-optimization/33992
14578         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
14579         the zero we compare against.
14580
14581 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
14582
14583         PR libfortran/35063
14584         * gthr-win32.h (__gthread_mutex_destroy_function): New function
14585         to CloseHandle after unlocking to prevent accumulation of handle
14586         count.
14587
14588 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14589
14590         PR middle_end/34150
14591         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
14592         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
14593         and update LABEL_NUSES during and after reload.
14594
14595 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
14596
14597         PR middle-end/34627
14598         * combine.c (simplify_if_then_else): Make sure the comparison is
14599         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
14600
14601 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
14602
14603         PR bootstrap/35051
14604         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
14605         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
14606         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
14607         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
14608         * tree.h (get_type_static_bounds): Likewise.
14609
14610 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14611
14612         * doc/invoke.texi (Option Summary, C++ Dialect Options)
14613         (Objective-C and Objective-C++ Dialect Options, Warning Options):
14614         Make -Wfoo language annotations match what the compiler outputs.
14615
14616 2008-02-08  Sa Liu  <saliu@de.ibm.com>
14617
14618         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
14619         intrinsics spu_convts, spu_convtu, spu_convtf.
14620
14621 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
14622
14623         * doc/extend.texi (Function Attributes) <noinline>: Mention
14624         asm ("") as method to keep calls.
14625
14626 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14627
14628         PR other/32754
14629         * doc/options.texi (Options): Replace references to opts.sh with
14630         optc-gen.awk.
14631         * opts-common.c: Likewise.
14632         * optc-gen.awk: Likewise.
14633         
14634 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
14635
14636         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
14637
14638 2008-02-07  Richard Henderson  <rth@redhat.com>
14639
14640         PR rtl-opt/33410
14641         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
14642         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
14643         funny mode.
14644
14645 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
14646
14647         PR tree-optimization/35085
14648         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
14649         for operand entry oe2 in addition to operand entry oe3 in order to
14650         expose more opportunities for vectorizer sum reduction.
14651
14652 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14653
14654         PR other/35107
14655         * Makefile.in (LIBS): Remove $(GMPLIBS).
14656         (cc1-dummy, cc1): Add $(GMPLIBS).
14657
14658 2008-02-06  Jan Hubicka  <jh@suse.cz>
14659
14660         PR target/23322
14661         * i386.md (moddf_integer): Do not produce partial memory stalls for
14662         targets where it hurts.
14663
14664 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
14665
14666         PR target/35083
14667         * optabs.c (expand_float): Do not check for decimal modes when
14668         expanding unsigned integer through signed conversion.
14669
14670 2008-02-06  Nick Clifton  <nickc@redhat.com>
14671
14672         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
14673         inside the clobber with a match_operand and duplicated operand
14674         number in the constraint.
14675         (ineqbranchsi): Delete redundant comment.
14676
14677 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
14678
14679         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
14680         builtin_define ("__USE_INIT_FINI__").
14681         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
14682         -msx multilibs.
14683         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
14684
14685 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14686
14687         PR documentation/30330
14688         * doc/invoke.texi (C++ Dialect Options)
14689         (Objective-C and Objective-C++ Dialect Options, Warning Options):
14690         For each warning option -Wfoo that allows -Wno-foo, ensure both
14691         -Wfoo and -Wno-foo are listed in the option index.  Fix index
14692         entry of -Wswitch-default, index -Wnormalized= including the
14693         `=', and -Wlarger-than-@var{len} including @var{len}.
14694
14695 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
14696
14697         * config/i386/i386.md (floatunssisf2): Use
14698         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
14699         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
14700         Macroize expander using MODEF mode iterator.
14701
14702 2008-02-05  Diego Novillo  <dnovillo@google.com>
14703
14704         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
14705
14706         PR 33738
14707         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
14708
14709 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14710
14711         PR other/35070
14712         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
14713
14714 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
14715
14716         PR target/35084
14717         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
14718         to indicate if a message should be generated.
14719         (init_cumulative_args): Updated.
14720         (function_value_32): Likewise.
14721
14722 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
14723
14724         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
14725
14726 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
14727
14728         PR target/35083
14729         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
14730         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
14731
14732 2008-02-04  Diego Novillo  <dnovillo@google.com>
14733
14734         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
14735
14736         PR 33738
14737         * tree-vrp.c (vrp_evaluate_conditional): With
14738         -Wtype-limits, emit a warning when comparing against a
14739         constant outside the natural range of OP0's type.
14740
14741 2008-02-04  Richard Guenther  <rguenther@suse.de>
14742
14743         PR middle-end/33631
14744         * expr.c (count_type_elements): Give for unions instead of
14745         guessing.
14746
14747 2008-02-04  Richard Guenther  <rguenther@suse.de>
14748
14749         PR middle-end/35043
14750         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
14751         to TYPE_DOMAINs base type instead of using bitsizetype here.
14752
14753 2008-02-03  Jason Merrill  <jason@redhat.com>
14754
14755         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
14756
14757 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14758
14759         PR other/29972
14760         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
14761         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
14762         (RS/6000 and PowerPC Options): Fix typos and markup.
14763         * doc/passes.texi (Tree-SSA passes): Likewise.
14764
14765 2008-02-02  Michael Matz  <matz@suse.de>
14766
14767         PR target/35045
14768         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
14769         from record_last_reg_set_info.
14770         (record_last_reg_set_info): Take an RTX argument, iterate over all
14771         constituent hardregs.
14772         (record_last_set_info, record_opr_changes): Change calls to
14773         new signature or to record_last_reg_set_info_regno.
14774
14775 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
14776
14777         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
14778
14779 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
14780
14781         PR rtl-optimization/34773
14782         * reg-notes.def (EQUAL): Mention significance of combination of
14783         REG_EQUAL and REG_RETVAL.
14784         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
14785         insn that has a REG_RETVAL.
14786
14787 2008-02-01  Roger Sayle  <roger@eyesopen.com>
14788
14789         PR bootstrap/33781
14790         * configure.ac (--enable-fixed-point): Disable unless explicitly
14791         requested on IRIX.
14792         * configure: Regenerate.
14793
14794 2008-02-01  Richard Guenther  <rguenther@suse.de>
14795
14796         PR other/35042
14797         * invoke.texi (-finline-limit): Remove no longer true parts
14798         of the documentation.  Note that there is no default value.
14799
14800 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
14801             Mark Mitchell  <mark@codesourcery.com>
14802             Ben Elliston  <bje@au.ibm.com>
14803
14804         PR c/29326
14805         * doc/extend.texi (Other Builtins): Document.
14806
14807 2008-01-31  Tom Browder <tom.browder@gmail.com>
14808
14809         * doc/c-tree.texi (Types): Fix grammar.
14810         (Expression trees): Ditto.
14811         * doc/passes.texi (Tree-SSA passes): Ditto.
14812         
14813         * doc/configterms.texi (Configure Terms): Fix typo.
14814         * doc/cpp.texi (Common Predefined Macros): Ditto.
14815         * doc/md.texi (Machine Constraints): Ditto.
14816         
14817         * doc/makefile.texi (Makefile): Add comma.
14818
14819 2008-01-31  Tom Browder  <tom.browder@gmail.com>
14820             Gerald Pfeifer  <gerald@pfeifer.com>
14821         
14822         * doc/sourcebuild.texi (Front End): Remove references to CVS
14823         and CVSROOT/modules.
14824         (Texinfo Manuals): Replace reference to CVS by one to SVN.
14825         (Back End): Remove reference to CVS.
14826
14827 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
14828
14829         PR target/34900
14830         * config/mips/mips.c (gen_load_const_gp): New function, taking a
14831         comment from...
14832         (mips16_gp_pseudo_reg): ...here.
14833         * config/mips/mips.md (load_const_gp): Replace with...
14834         (load_const_gp_<mode>): ...this :P-based insn.
14835
14836 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14837
14838         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
14839         options. Minor fixes.
14840         (-std): Move reference to standards closer to where language
14841         standards are first mentioned.
14842         
14843 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
14844
14845         PR rtl-optimization/34995
14846         * reload.c (alternative_allows_const_pool_ref): Take an rtx
14847         parameter and return a bool.  If the rtx parameter is nonnull,
14848         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
14849         (find_reloads): Update call accordingly.  Pass the new operand
14850         if it needed no address reloads, otherwise pass null.
14851
14852 2008-01-30  Richard Henderson  <rth@redhat.com>
14853
14854         PR c/34993
14855         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
14856         for unbounded arrays.
14857
14858 2008-01-30  Silvius Rus  <rus@google.com>
14859
14860         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
14861
14862 2008-01-30  Jan Hubicka  <jh@suse.cz>
14863
14864         PR target/34982
14865         * i386.c (init_cumulative_args): Use real function declaration when
14866         calling locally.
14867
14868 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
14869
14870         PR rtl-optimization/34998
14871         * global.c (build_insn_chain): Treat non-subreg_lowpart
14872         SUBREGs of pseudos as clobbering all the words covered by the
14873         SUBREG, not just all the bytes.
14874         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
14875         original df_ref rather than an extract parameter.
14876         (global_conflicts): Update call accordingly.
14877
14878 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
14879
14880         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
14881         the overflow check to make it easier to read.
14882         (__fixtfdi): Change the type of the ll member in union
14883         long_double to UDItype_x.
14884
14885 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
14886
14887         PR middle-end/34969
14888         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
14889         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
14890         * tree-inline.c (fold_marked_statements): Call
14891         cgraph_update_edges_for_call_stmt if folding a call statement.
14892         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
14893         debug_generic_stmt calls, reset it back afterwards.
14894
14895         PR c/35017
14896         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
14897         static decls.
14898         * c-typeck.c (build_external_ref): Don't pedwarn about
14899         static vars in current function's scope.
14900
14901 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
14902
14903         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
14904
14905 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
14906
14907         PR c/35002
14908         * ipa-struct-reorg.c: Fix spelling.
14909         * params.def: Ditto.
14910
14911 2008-01-29  Richard Guenther  <rguenther@suse.de>
14912
14913         PR middle-end/35006
14914         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
14915         field.
14916         * tree-inline.c (remap_type): Increment remapping_type_depth
14917         around remapping types.
14918         (copy_body_r): Only add referenced variables if they are referenced
14919         from code, not types.
14920
14921 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
14922
14923         PR c++/34055
14924         PR c++/34103
14925         PR c++/34219
14926         PR c++/34606
14927         PR c++/34753
14928         PR c++/34754
14929         PR c++/34755
14930         PR c++/34919
14931         PR c++/34961
14932         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
14933         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
14934
14935 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
14936
14937         PR target/34412
14938         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
14939         pointer for tiny stack.
14940
14941 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
14942
14943         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
14944
14945 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
14946
14947         * config/vx-common.h: Fix typo in comment.
14948
14949 2008-01-28  Ian Lance Taylor  <iant@google.com>
14950
14951         PR c++/34862
14952         PR c++/33407
14953         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14954         coalesce pointers if they have different DECL_NO_TBAA_P values.
14955         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
14956         between variables with different DECL_NO_TBAA_P values.
14957
14958 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
14959
14960         PR 31535
14961         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
14962         are not legitimate small data references on SPE targets.
14963
14964 2008-01-28  David Daney  <ddaney@avtrex.com>
14965
14966         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
14967
14968 2008-01-28  David Daney  <ddaney@avtrex.com>
14969
14970         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
14971
14972 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
14973
14974         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
14975         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
14976         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
14977         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
14978         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14979         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
14980         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
14981         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
14982
14983 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14984
14985         * basic-block.h (condjump_equiv_p): Fix comment.
14986
14987 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14988
14989         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
14990         print_generic_stmt_indented): Fix comment.
14991
14992 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14993
14994         * configure.ac (__stack_chk_fail): Add detecion for availability
14995         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
14996         * configure: Regenerate.
14997
14998 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
14999
15000         PR middle-end/34688
15001         * final.c (output_addr_const): Handle TRUNCATE.
15002
15003 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
15004
15005         PR target/34711
15006         * tree-ssa-loop-ivopts.c (comp_cost): New type.
15007         (zero_cost, infinite_cost): New constants.
15008         (struct cost_pair): Change type of cost to comp_cost.
15009         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
15010         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
15011         New functions.
15012         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
15013         split_address_cost, ptr_difference_cost, difference_cost,
15014         get_computation_cost_at, get_computation_cost,
15015         determine_use_iv_cost_generic, determine_use_iv_cost_address,
15016         determine_use_iv_cost_condition, determine_use_iv_costs,
15017         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
15018         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
15019         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
15020         Change type of cost to comp_cost.
15021         (determine_iv_cost): Increase cost of non-original ivs, instead
15022         of decreasing the cost of original ones.
15023         (get_address_cost): Indicate the complexity of the addressing mode 
15024         in comp_cost.
15025         (try_add_cand_for): Prefer using ivs not specific to some object.
15026         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
15027
15028 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
15029             Janis Johnson  <janis187@us.ibm.com>
15030
15031         PR target/34814
15032         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
15033         (TARGET_INSTANTIATE_DECLS): Likewise.
15034         * target.h (expand_to_rtl_hook): New target hook.
15035         (instantiate_decls): Likewise.
15036         * function.c (instantiate_decl): Make non-static.  Rename to...
15037         (instantiate_decl_rtl): ... this.
15038         (instantiate_expr): Use instantiate_decl_rtl.
15039         (instantiate_decls_1): Likewise.
15040         (instantiate_decls): Likewise.
15041         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
15042         * function.h (instantiate_decl_rtl): Add prototype.
15043         * cfgexpand.c (target.h): New include.
15044         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
15045         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
15046         (TARGET_INSTANTIATE_DECLS): Likewise.
15047         (TARGET_INITIALIZER): New target hooks added.
15048         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
15049         New prototype.
15050         * config/rs6000/rs6000.c (tree-flow.h): New include.
15051         (machine_function): Add sdmode_stack_slot field.
15052         (rs6000_alloc_sdmode_stack_slot): New function.
15053         (rs6000_instantiate_decls): Likewise.
15054         (rs6000_secondary_memory_needed_rtx): Likewise.
15055         (rs6000_check_sdmode): Likewise.
15056         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
15057         (TARGET_INSTANTIATE_DECLS): Likewise.
15058         (rs6000_hard_regno_mode_ok): Allow SDmode.
15059         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
15060         (rs6000_emit_move): Handle SDmode.
15061         (function_arg_advance): Likewise.
15062         (function_arg): Likewise.
15063         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
15064         SDmode var args for 32-bit compiles.
15065         (rs6000_secondary_reload_class): Handle SDmode.
15066         (rs6000_output_function_epilogue): Likewise.
15067         (rs6000_function_value): Simplify if statement.
15068         (rs6000_libcall_value): Likewise.
15069         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
15070         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
15071         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
15072         (movsd_hardfloat): New define_insn.
15073         (movsd_softfloat): Likewise.
15074         (movsd_store): Likewise.
15075         (movsd_load): Likewise.
15076         (extendsddd2): Likewise.
15077         (extendsdtd2): Likewise.
15078         (truncddsd2): Likewise.
15079         (movdd_hardfloat64): Fixup comment.
15080         (UNSPEC_MOVSD_LOAD): New constant.
15081         (UNSPEC_MOVSD_STORE): Likewise.
15082
15083 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
15084
15085         PR c++/34965
15086         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
15087         TRUTH_XOR_EXPR.
15088         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
15089         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
15090         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
15091         and TRUTH_XOR_EXPR.
15092
15093 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
15094
15095         PR target/34794
15096         * config.gcc: Separate AIX 5.3 from AIX 6.1.
15097         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
15098         __LONGDOUBLE128 too.
15099         * config/rs6000/aix61.h: New file.
15100
15101 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
15102
15103         PR rtl-optimization/34959
15104         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
15105         popcount and parity rtxes the same mode as their operand.
15106         Truncate or extend the result to the return value's mode
15107         if necessary.
15108
15109 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
15110
15111         PR target/34981
15112         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
15113         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
15114         to GOT_VERSION_REGNUM.
15115         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
15116         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
15117         * config/mips/mips.c (mips_emit_call_insn): New function.
15118         (mips_call_tls_get_addr): Call mips_expand_call directly.
15119         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
15120         emit_call_insn.
15121         (mips16_build_call_stub): Likewise.  Return the call insn or null.
15122         (mips_expand_call): Update the call to mips16_build_call_stub
15123         accordingly and a remove redundant condition.  Assert that MIPS16
15124         stubs do not use lazy binding.  Use mips_emit_call_insn and return
15125         the call insn.
15126         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
15127         TARGET_USE_GOT.
15128         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
15129         (mips_avoid_hazard): Remove hazard_set handling.
15130         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
15131         (UNSPEC_RESTORE_GP): ...this.
15132         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
15133         (FAKE_CALL_REGNO): Rename to...
15134         (GOT_VERSION_REGNUM): ...this.
15135         (type): Add "ghost" value.  Add an associated insn reservation.
15136         (hazard_set): Remove.
15137         (exception_receiver): Rename to...
15138         (restore_gp): ...this and update the unspec identifier accordingly.
15139         (exception_receiver, nonlocal_got_receiver): New expanders.
15140         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
15141         FAKE_CALL_REGNO.  Remove hazard_set attribute.
15142         (set_got_version, update_got_version): New patterns.
15143
15144 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
15145
15146         PR target/34970
15147         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
15148
15149 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
15150
15151         PR other/31955
15152         * doc/install.texi2html: Generate gcc-vers.texi.
15153
15154 2008-01-25  DJ Delorie  <dj@redhat.com>
15155
15156         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
15157
15158 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
15159
15160         * config/c4x: Remove directory.
15161         * config.gcc (crx-*, mt-*): Mark obsolete.
15162         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
15163         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
15164         sh-*-rtemscoff*): Remove cases.
15165         * defaults.h (C4X_FLOAT_FORMAT): Remove.
15166         * real.c (encode_c4x_single, decode_c4x_single,
15167         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
15168         c4x_extended_format): Remove.
15169         * real.h (c4x_single_format, c4x_extended_format): Remove.
15170         * doc/extend.texi (interrupt, naked): Remove mention of attributes
15171         on C4x.
15172         (Pragmas): Remove comment about c4x pragmas.
15173         * doc/install.texi (c4x): Remove target-specific instructions.
15174         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
15175         * doc/md.texi (Machine Constraints): Remove C4x documentation.
15176         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
15177         refer to C4x source files as examples.
15178         (C4X_FLOAT_FORMAT): Remove documentation.
15179
15180 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
15181
15182         * config/bfin/bfin.c (override_options): Reorder tests so that
15183         flag_pic gets enabled for -msep-data.
15184
15185 2008-01-25  Richard Guenther  <rguenther@suse.de>
15186
15187         PR middle-end/32244
15188         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
15189         to its bitfield precision if required.
15190
15191 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15192
15193         PR middle-end/33880
15194         * tree-nested.c (walk_omp_for): New function.
15195         (convert_nonlocal_reference, convert_local_reference): Call
15196         walk_omp_for on OMP_FOR.
15197         (convert_call_expr): Call walk_body on OMP_FOR's
15198         OMP_FOR_PRE_INIT_BODY.
15199
15200 2008-01-25  Richard Guenther  <rguenther@suse.de>
15201
15202         PR tree-optimization/34966
15203         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
15204         default defs and PHI_NODEs we have to insert after the
15205         defining statement.
15206
15207 2008-01-24  Nick Clifton  <nickc@redhat.com>
15208
15209         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
15210         Provide a default definition.
15211         (LIBGCC2_UNITS_PER_WORD): Likewise.
15212
15213         * config/stormy16/stormy16.c: Include df.h for the prototype
15214         for df_regs_ever_live_p.
15215         (xstormy16_expand_builtin_va_start): Convert the stack offset
15216         into a component_ref and then use POINTER_PLUS_EXPR to add it
15217         to the incoming_virtual_args_rtx.
15218         (xstormy16_gimplify_va_arg_expr): Rename to
15219         xstormy16_gimplify_va_arg_expr.
15220         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
15221         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
15222         xstormy16_gimplify_va_arg_expr.
15223         Fix up some formatting issues.
15224
15225         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
15226         Move to predicates.md.
15227         (xs_hi_general_operand): Likewise.
15228         (xs_hi_nonmemory_operand): Likewise.
15229         * config/stormy16/predicates.md:
15230         (xstormy16_carry_plus_operand): New predicate.
15231         (xs_hi_general_operand): New predicate.
15232         (xs_hi_nonmemory_operand): New predicate.
15233         * config/stormy16/stormy16-protos.h:
15234         (xstormy16_carry_plus_operand): Delete prototype.
15235         (xs_hi_general_operand): Likewise.
15236         (xs_hi_nonmemory_operand): Likewise.
15237
15238         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
15239         modifiers as they are no longer needed and they can trigger
15240         reload spill failures.
15241
15242         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
15243         with a match_operand in order to help reload.
15244
15245         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
15246         constraint with 'e' for the 8th alternative as this version of
15247         the mov.w instruction only accepts the lower 8 registers.
15248
15249 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
15250
15251         PR target/34856
15252         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
15253         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
15254         vector elements.
15255
15256 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15257
15258         PR middle-end/33333
15259         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
15260
15261 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15262
15263         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
15264         New functions.
15265         (remove_structure): Update allocations list before removing structure.
15266         
15267 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15268
15269         * ipa-struct-reorg.c (is_safe_cond_expr, 
15270         create_new_stmts_for_cond_expr): Use integer_zerop function,
15271         that recognize not only zero-pointer, but zero-integer too.
15272
15273 2008-01-25  Ben Elliston  <bje@au.ibm.com>
15274
15275         PR other/22232
15276         * fixproto: Escape "." in sed expression that strips leading "./".
15277
15278 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15279
15280         PR driver/34904
15281         * gcc.c (SWITCH_OK): Removed.
15282         (SWITCH_LIVE): Changed to bit.
15283         (SWITCH_FALSE): Likewise.
15284         (SWITCH_IGNORE): Likewise.
15285         (switchstr): Change live_cond to unsigned int.
15286         (process_command): Replace SWITCH_OK with 0.
15287         (do_self_spec): Likewise.
15288         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
15289         (give_switch): Likewise.
15290         (used_arg): Likewise.
15291         (do_spec_1): Set the SWITCH_IGNORE bit.
15292         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
15293         bits.  Set the SWITCH_LIVE bit.
15294
15295 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15296
15297         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
15298
15299 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
15300
15301         PR tree-optimization/34472
15302         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
15303         parameter to a "bool *" and set *DATA to false if there is
15304         an unsafe access.  Do not delete the structure here.
15305         (check_cond_exprs): Delete it here instead.
15306         (check_cond_exprs, exclude_cold_structs): Do not increase
15307         I when removing a structure.
15308
15309 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
15310
15311         PR target/34856
15312         * config/i386/i386.c (ix86_expand_vector_init): Consider only
15313         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
15314
15315 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
15316
15317         PR middle-end/34934
15318         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
15319         a fixed vector for stack.
15320
15321 2008-01-24  Ben Elliston  <bje@au.ibm.com>
15322
15323         PR c++/25701
15324         * doc/gcc.texi (Software development): Add a direntry for g++.
15325         
15326 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
15327
15328         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
15329         stale and straggling -fforce-addr comments above.
15330
15331         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
15332         define.
15333         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
15334         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
15335
15336 2008-01-23  Michael Matz  <matz@suse.de>
15337
15338         PR debug/34895
15339         * dwarf2out.c (force_type_die): Use modified_type_die instead of
15340         gen_type_die.
15341
15342 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
15343
15344         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
15345         malloc result type.
15346
15347 2008-01-23 Anatoly Sokolov <aesok@post.ru>
15348
15349         * config/avr/avr.c (avr_current_arch): New variable.
15350         (avr_arch_types): Add 'avr31' and 'avr51' entries.
15351         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
15352         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
15353         (avr_override_options): Init 'avr_current_arch'. 
15354         (base_arch_s): Move from here...
15355         * config/avr/avr.h (base_arch_s): ... here. Add new members 
15356         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
15357         'mega' to 'have_jmp_call'.
15358         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
15359         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
15360         macros.
15361         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
15362         architectures.
15363         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
15364         MULTILIB_MATCHES): (Ditto.).
15365
15366 2008-01-23  Richard Guenther  <rguenther@suse.de>
15367
15368         PR middle-end/31529
15369         * cgraphunit.c (cgraph_reset_node): Always mark the node
15370         not reachable if it is not queued already.
15371
15372 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
15373
15374         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
15375         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
15376         (cputype_selected): New static variable.
15377         (bfin_handle_option): Set it if -mcpu is used.
15378         (override_option): Select default set of workarounds if no cpu type
15379         selected on the command line.
15380         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
15381
15382         From  Michael Frysinger  <michael.frysinger@analog.com>
15383         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
15384         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
15385
15386         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
15387         for bf547, bf523, bf524, and bf526.
15388         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
15389         bf526.
15390         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15391         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
15392         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
15393         __ADSPBF547__ and __ADSPBF54x__ for bf547.
15394         * doc/invoke.texi (Blackfin Options): Document that
15395         -mcpu now accept bf547, bf523, bf524, and bf526.
15396
15397 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15398
15399         PR rtl-optimization/34628
15400         * combine.c (try_combine): Stop and undo after the first combination
15401         if an autoincrement side-effect on the first insn has effectively
15402         been lost.
15403
15404 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
15405
15406         PR target/34529
15407         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
15408         Offset addresses are not valid for Altivec or paired float modes.
15409
15410 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
15411
15412         PR c++/34607
15413         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
15414         if DECL_INITIAL (decl) is error_mark_node.
15415
15416         PR c++/34914
15417         * c-common.c (handle_vector_size_attribute): Only allow
15418         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
15419         the same way as pointer, array etc. types.
15420         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
15421
15422         PR c++/34917
15423         * tree.c (build_type_attribute_qual_variant): Call
15424         build_qualified_type if attributes are equal, but quals are not.
15425
15426 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15427
15428         PR 32102
15429         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
15430         * flags.h (warn_strict_aliasing): Remove.
15431         (warn_strict_overflow): Remove.
15432         * opts.c (warn_strict_aliasing): Remove.
15433         (warn_strict_overflow): Remove.
15434         * c-opts.c (c_common_handle_option): -Wall only sets
15435         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
15436         (c_common_post_options): Give default values to -Wstrict-aliasing
15437         and -Wstrict-overflow if they are uninitialized.
15438         * common.opt (Wstrict-aliasing): Specify Var and Init.
15439         (Wstrict-overflow): Likewise.
15440
15441 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
15442
15443         PR rtl-optimization/26854
15444         PR rtl-optimization/34400
15445         PR rtl-optimization/34884
15446         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
15447         DF_RD->gen.
15448         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
15449         (df_rd_bb_info.expanded_lr_out): Deleted
15450         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
15451         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
15452         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15453         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15454         Removed code to allocate, initialize or free expanded_lr_out.
15455         (df_rd_bb_local_compute_process_def): Restructured to make more
15456         understandable.
15457         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
15458         sets if the sets are being trimmed.
15459
15460 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
15461
15462         PR bootstrap/32287
15463         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
15464         (as_vers): Likewise.
15465         * configure: Regenerated.
15466
15467 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15468
15469         PR middle-end/33092
15470         * tree-pass.h (pass_build_alias): New pass.
15471         * tree-ssa-alias.c (gate_build_alias): New.
15472         (pass_build_alias): New.
15473         * passes.c (init_optimization_passes): Add pass_build_alias after
15474         pass_create_structure_vars.
15475
15476 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
15477
15478         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
15479         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
15480         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
15481         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
15482         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
15483         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
15484         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
15485         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
15486         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
15487         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
15488         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
15489         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
15490         * config/s390/s390.md (FP_ALL): New mode iterator.
15491         (_d): New mode attribute.
15492         ("*signbit<mode>2>"): Changed mode of first operand.
15493         ("isinf<mode>2"): Changed mode of first operand.
15494         ("*TDC_insn"): Adaptation for DFP modes.
15495
15496 2008-01-22  Ben Elliston  <bje@au.ibm.com>
15497
15498         * tree.c (check_qualified_type): Improve function description.
15499
15500 2008-01-21  Jason Merrill  <jason@redhat.com>
15501
15502         PR c++/34196
15503         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
15504         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
15505         if it is set.
15506
15507 2008-01-21  DJ Delorie  <dj@redhat.com>
15508
15509         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
15510         return zero.
15511
15512 2008-01-21  Richard Guenther  <rguenther@suse.de>
15513
15514         PR middle-end/34856
15515         * tree-cfg.c (verify_expr): Allow all invariant expressions
15516         instead of just constant class ones as reference argument.
15517         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
15518         like any other constant.
15519         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15520
15521 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
15522
15523         * regmove.c (fixup_match_1): Update call crossed frequencies.
15524
15525 2008-01-21  Richard Guenther  <rguenther@suse.de>
15526
15527         PR c/34885
15528         * tree-inline.c (setup_one_parameter): Deal with mismatched
15529         types using a VIEW_CONVERT_EXPR.
15530
15531 2008-01-21  Alon Dayan  <alond@il.ibm.com>
15532             Olga Golovanevsky  <olga@il.ibm.com>
15533         
15534         PR tree-optimization/34701
15535         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
15536         when the structure size is not a power of 2.
15537
15538 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
15539
15540         * doc/install.texi: Add doc for --enable-checking=df.
15541         
15542 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15543
15544         PR rtl-optimization/34808
15545         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
15546
15547 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15548
15549         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
15550         input.
15551
15552 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
15553
15554         PR rtl-optimization/26854
15555         PR rtl-optimization/34400
15556         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
15557         DF_RD->gen.
15558         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
15559         (df_rd_bb_info.expanded_lr_out): New.
15560         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
15561         * loop_iv.c (iv_analysis_loop_init): Ditto.
15562         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15563         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15564         Added code to allocate, initialize or free expanded_lr_out.
15565         (df_rd_bb_local_compute_process_def): Restructured to make
15566         more understandable.
15567         (df_rd_confluence_n): Add code to do nothing with fake edges and
15568         code to no apply invalidate_by_call sets if the sets are being trimmed.
15569         (df_lr_local_finalize): Renamed to df_lr_finalize.
15570         (df_live_local_finalize): Renamed to df_live_finalize.
15571
15572 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15573
15574         PR target/34831
15575         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
15576         deciding whether to use reciprocal instructions.
15577
15578 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
15579
15580         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
15581         dwarf2out_note_section_used if cold_text_section is NULL.
15582
15583 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
15584
15585         PR gcov-profile/34610
15586         * tree-cfg.c (make_edges): Mark both outgoing edges from
15587         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
15588         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
15589         from OMP_FOR and OMP_CONTINUE outgoing edges.
15590
15591         * tree-profile.c (tree_profiling): Return early if
15592         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
15593         at the end.
15594         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
15595         from cfun to child_cfun.
15596         * function.h (struct function): Add after_tree_profile bit.
15597
15598 2008-01-19 Anatoly Sokolov <aesok@post.ru>
15599
15600         * config/avr/avr.S (_exit): Disable interrupt.
15601
15602 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
15603             Steven Bosscher  <stevenb.gcc@gmail.com>
15604
15605         PR rtl-optimization/26854
15606         PR rtl-optimization/34400
15607         * df-problems.c (df_live_scratch): New scratch bitmap.
15608         (df_live_alloc): Allocate df_live_scratch when doing df_live.
15609         (df_live_reset): Clear the proper bitmaps.
15610         (df_live_bb_local_compute): Only process the artificial defs once
15611         since the order is not important.
15612         (df_live_init): Init the df_live sets only with the variables
15613         found live by df_lr.
15614         (df_live_transfer_function): Use the df_lr sets to prune the
15615         df_live sets as they are being computed.  
15616         (df_live_free): Free df_live_scratch.
15617
15618 2008-01-18  Ian Lance Taylor  <iant@google.com>
15619
15620         * common.opt: Add fmerge-debug-strings.
15621         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
15622         flag_merge_debug_strings rather than flag_merge_constants.
15623         * doc/invoke.texi (Option Summary): Mention
15624         -fmerge-debug-strings.
15625         (Debugging Options): Document -fmerge-debug-strings.
15626
15627 2008-01-18  Ian Lance Taylor  <iant@google.com>
15628
15629         PR c++/33407
15630         * tree.h (DECL_IS_OPERATOR_NEW): Define.
15631         (struct tree_function_decl): Add new field operator_new_flag.
15632         * tree-inline.c (expand_call_inline): When inlining a call to
15633         operator new, force the return value to go into a variable, and
15634         set DECL_NO_TBAA_P on that variable.
15635         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
15636
15637 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
15638
15639         PR debug/34484
15640         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
15641         DWARF2_DEBUGGING_INFO.
15642         (dwarf2out_note_section_used): Ditto.  Add prototype.
15643         (have_multiple_function_sections, text_section_used,
15644         cold_text_section_used, *cold_text_sections): Move declarations
15645         before their uses.
15646
15647 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
15648
15649         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
15650         field and add signal_ra.
15651         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
15652         assignments to frame state pc.  Move end of stack check after
15653         MD_FALLBACK_FRAME_STATE_FOR.
15654         (uw_update_context_1): Use frame state signal_regs if set, instead
15655         of checking signal_frame flag.
15656         (uw_update_context): Use frame state signal_ra if set.
15657         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
15658         * config/xtensa/linux-unwind.h: New file.
15659
15660 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
15661
15662         * modulo-sched.c (get_sched_window): Fix comment typo.
15663
15664 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
15665
15666         PR tree-optimization/34648
15667         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
15668
15669 2008-01-17  Anatoly Sokolov <aesok@post.ru>
15670
15671         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
15672         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
15673
15674 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
15675
15676         PR rtl-optimization/34400
15677         * df-core.c (df_worklist_dataflow_overeager,
15678         df_worklist_dataflow_doublequeue): New functions.
15679         (df_worklist_dataflow): Two different worklist solvers.
15680         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
15681         New param.
15682
15683 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15684
15685         PR testsuite/34821
15686         * doc/invoke.texi: Document the dependence on pthread for fopenmp
15687         and ftree-parallelize-loops.
15688
15689 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
15690
15691         PR rtl-optimization/34826
15692         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
15693
15694 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
15695
15696         * global.c (find_reg): Mark the eh regs as used if necessary.
15697         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
15698         * ra.h (struct allocno): no_eh_reg field added.  Changed
15699         no_stack_reg type to bitfield.
15700
15701 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
15702
15703         * tree.c (substitute_in_expr): Add missing 'break'.
15704
15705 2008-01-17  Richard Guenther  <rguenther@suse.de>
15706
15707         PR tree-optimization/34825
15708         * tree-ssa-math-opts.c (is_division_by): Do not recognize
15709         x / x as division to handle.
15710
15711 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15712
15713         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
15714         "-pthread" is specified.
15715         * pa-hpux11.h (LIB_SPEC): Likewise.
15716
15717 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
15718             Peter Bergner  <bergner@vnet.ibm.com>
15719
15720         PR rtl-optimization/33796
15721         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
15722
15723 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15724
15725         PR libgfortran/34699
15726         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
15727         static links.
15728         * pa-hpux10.h (LINK_SPEC): Likewise.
15729         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
15730
15731 2008-01-16  Richard Guenther  <rguenther@suse.de>
15732
15733         PR middle-end/32628
15734         * fold-const.c (fold_convert_const_int_from_int): Do not
15735         set overflow if that occured only because of a sign extension
15736         change when converting from/to a sizetype with the same
15737         precision and signedness.
15738
15739 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
15740
15741         PR debug/34249
15742         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
15743         location address to the correct place.  Update copyright year.
15744
15745 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15746
15747         * lambda-code.c (lambda_transform_legal_p): Handle the case of
15748         no dependences in the dependence_relations vector.
15749
15750 2008-01-16  Jan Hubicka  <jh@suse.cz>
15751
15752         PR rtl-optimization/31396
15753         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
15754         * cfg.c (dump_reg_info): Print it.
15755         * regs.h (struct reg_info_t): add freq_calls_crossed.
15756         (REG_FREQ_CALLS_CROSSED): New macro.
15757         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
15758         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
15759         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
15760         regmove_optimize): Update call crossed frequencies.
15761         * local-alloc.c (struct qty): Add freq_calls_crossed.
15762         (alloc_qty): Copute freq_calls_crossed.
15763         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
15764         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
15765         * ra.h (struct allocno): Add freq_calls_crossed.
15766
15767 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15768
15769         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
15770         libgomp when compiling with ftree-parallelize-loops.
15771         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
15772
15773 2008-01-16  Richard Guenther  <rguenther@suse.de>
15774
15775         PR tree-optimization/34769
15776         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
15777         * tree.c (int_cst_value): Instead make this function more
15778         permissive in what it accepts as valid input.  Document this
15779         function always sign-extends the value.
15780
15781 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
15782             Richard Guenther  <rguenther@suse.de>
15783
15784         PR c/34668
15785         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
15786         (gimple_fold_indirect_ref_rhs): ... this.
15787         (gimple_fold_indirect_ref): New function with foldings
15788         that preserve lvalueness.
15789         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
15790         * tree-flow.h (gimple_fold_indirect_ref): Declare.
15791         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
15792         to fold an INDIRECT_REF, fall back to the old use of
15793         fold_indirect_ref_1.
15794
15795 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15796
15797         * tree-data-ref.c (subscript_dependence_tester_1): Call 
15798         free_conflict_function.
15799         (compute_self_dependence): Same.
15800
15801 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
15802
15803         PR debug/34249
15804         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
15805         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
15806         function global.
15807         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
15808         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
15809         for DWARF2_UNWIND_INFO targets.
15810
15811 2008-01-16  Richard Guenther  <rguenther@suse.de>
15812
15813         PR c/34768
15814         * c-typeck.c (common_pointer_type): Do not merge inconsistent
15815         type qualifiers for function types.
15816
15817 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
15818
15819         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
15820         loop_iterator li from previous commit.
15821
15822 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
15823
15824         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
15825
15826 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
15827
15828         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
15829         (parallelize_loops): Don't parallelize irreducible components.
15830
15831 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15832
15833         PR c++/24924
15834         * c-opts (c_common_post_options): Do not enable CPP
15835         flag_pedantic_errors by default.
15836         
15837 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
15838
15839         PR rtl-optimization/31944
15840         * cse.c (remove_pseudo_from_table): New function.
15841         (merge_equiv_classes): Use above function to remove pseudo-registers.
15842         (invalidate): Likewise.
15843
15844 2008-01-13  Richard Guenther  <rguenther@suse.de>
15845
15846         PR middle-end/34601
15847         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
15848         instead of TYPE_MODE to deal with calls from expand_one_error_var.
15849
15850 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
15851
15852         * gcse.c (cprop_jump): Call validate_unshare_change instead of
15853         validate_change to unshare the source of the PC set.
15854
15855 2008-01-12  Jan Hubicka  <jh@suse.cz>
15856
15857         PR middle-end/32135
15858         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
15859         references above array bounds.  This might trigger bounds checks for
15860         pointers to arrays.
15861
15862 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
15863
15864         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
15865         new_replaceable_dependencies.
15866
15867 2008-01-12  Doug Kwan  <dougkwan@google.com>
15868
15869         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
15870         instead of OPT_Wreturn_type in warning due to ignored return type
15871         qualifiers.
15872         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
15873         options included in -Wextra.
15874         * c.opt: New option -Wignored_qualifiers.
15875         * doc/invoke.texi (Warning Options, -Wextra): Add new option
15876         -Wignore_qualifiers.
15877         (-Wignored-qualifiers): Document.
15878         (-Wreturn-type): Remove description of functionality now handled
15879         by -Wignored-qualifiers.
15880
15881 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
15882
15883         PR ada/33788
15884         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
15885         NOP_EXPR if it is between integral types with the same precision.
15886
15887 2008-01-12  Jan Hubicka  <jh@suse.cz>
15888
15889         PR other/28023
15890         * invoke.texi (max-inline-recursive-depth): Fix default value.
15891
15892 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
15893
15894         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
15895         correct type.
15896
15897 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
15898         
15899         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
15900         
15901 2008-01-11  James E. Wilson  <wilson@specifix.com>
15902
15903         PR target/26015
15904         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
15905
15906 2008-01-11  Anatoly Sokolov <aesok@post.ru>
15907
15908         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
15909         save/restore frame pointer register and don't use 'call-prologues' 
15910         optimization in function with "OS_task" attribute.
15911
15912 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
15913
15914         PR middle-end/31309
15915         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
15916         when copying to memory.
15917
15918 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
15919
15920         PR rtl-optimization/30905
15921         * cfgcleanup.c: Include dce.h
15922         (crossjumps_occured): New global variable.
15923         (try_crossjump_bb): Exit loop after finding a fallthru edge.
15924         If something changed, set crossjumps_occured to true.
15925         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
15926         Don't add/remove fake edges to exit here...
15927         (cleanup_cfg): ...but do it here, when crossjumping.
15928         Run a fast DCE when successful crossjumps occured in the latest
15929         iteration of try_optimize_cfg.
15930
15931 2008-01-11  Richard Guenther  <rguenther@suse.de>
15932
15933         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
15934         (struct vn_unary_op_s): Likewise.
15935         (vn_reference_insert): Free old reference on hash collision.
15936
15937 2008-01-10  Raksit Ashok  <raksit@google.com>
15938
15939         PR rtl-optimization/27971
15940         * combine.c (find_split_point): Split PLUS expressions which are
15941         inside a MEM rtx, and whose first operand is complex.
15942
15943 2008-01-10  DJ Delorie  <dj@redhat.com>
15944
15945         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
15946         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
15947         (m32c_hard_regno_ok): Call the underlying function.
15948
15949 2008-01-10  Richard Guenther  <rguenther@suse.de>
15950
15951         PR middle-end/34683
15952         * tree-cfg.c (tree_merge_blocks): Do not go through the
15953         full-blown folding and stmt updating path if we just deal
15954         with virtual operands.
15955         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
15956         test for abnormal SSA_NAMEs.
15957
15958 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
15959
15960         PR middle-end/34641
15961         * reload.c (push_reload): Add assertions.  All constants from
15962         reg_equiv_constant should have been used for replacing the respective
15963         pseudo earlier.
15964         (find_reloads_address): Invoke find_reloads_address_part for
15965         constant taken from the reg_equiv_constant array.
15966
15967 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
15968
15969         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
15970         field (valnum) the first in the struct.  Replace bools with
15971         unit bit fields.
15972
15973 2008-01-10  Richard Guenther  <rguenther@suse.de>
15974
15975         PR tree-optimization/34651
15976         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
15977         types and ordering for masking and converting.
15978
15979 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
15980
15981         PR tree-optimization/34017
15982         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
15983         also for PHI_NODE expressions.
15984
15985 2008-01-09  Jan Hubicka  <jh@suse.cz>
15986
15987         PR tree-optimization/34708
15988         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
15989         based on number of case labels.
15990         (init_inline_once): Remove switch_cost.
15991         * tree-inline.h (eni_weights_d): Remove switch_cost.
15992
15993 2008-01-09  Richard Guenther  <rguenther@suse.de>
15994         Andrew Pinski  <andrew_pinski@playstation.sony.com>
15995
15996         PR middle-end/30132
15997         * gimplify.c (gimplify_cond_expr): Do not create an addressable
15998         temporary if an rvalue is ok or an lvalue is not required.
15999
16000 2008-01-09  Richard Guenther  <rguenther@suse.de>
16001
16002         PR middle-end/34458
16003         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
16004         adjust return type.
16005
16006 2008-01-09  Richard Guenther  <rguenther@suse.de>
16007
16008         PR middle-end/34679
16009         * tree.c (host_integerp): Check for sizetype only if the
16010         type is an integer type.
16011
16012 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
16013
16014         PR debug/26364
16015         * opts.c (decode_options): Disable inlining of functions called
16016         once if not in unit-at-a-time mode.
16017
16018 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
16019
16020         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
16021
16022 2008-01-08  Richard Guenther  <rguenther@suse.de>
16023
16024         PR middle-end/31863
16025         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
16026         out early if the result will be unused.
16027
16028 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
16029
16030         PR target/34709
16031         Revert:
16032
16033         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16034         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
16035         for TARGET_RECIP.       
16036         
16037 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
16038         
16039         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
16040         for vectorization tuned.
16041         
16042 2008-01-08  Richard Guenther  <rguenther@suse.de>
16043
16044         PR tree-optimization/34683
16045         * tree-ssa-operands.c (operand_build_cmp): Export.
16046         * tree-ssa-operands.h (operand_build_cmp): Declare.
16047         * tree-vn.c (vuses_compare): Remove.
16048         (sort_vuses): Use operand_build_cmp.
16049         (sort_vuses_heap): Likewise.
16050         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
16051         to re-use old VEC if available.  Do not sort already sorted VUSEs.
16052         (vdefs_to_vec): Do not sort already sorted VDEFs.
16053
16054 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
16055
16056         PR middle-end/34694
16057         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
16058
16059 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
16060
16061         PR target/34702
16062         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
16063         limitations of reciprocal sequences on x86 targets.
16064
16065 2008-01-08  Richard Guenther  <rguenther@suse.de>
16066
16067         PR tree-optimization/34683
16068         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
16069
16070 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
16071
16072         PR target/34622
16073         * config/darwin.c (darwin_mergeable_string_section): Don't use
16074         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
16075
16076 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
16077
16078         PR target/34682
16079         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
16080         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
16081         predicates of op0 and op1 to register_operand.
16082         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
16083         expander using X87MODEF mode iterator.  Change predicates of
16084         op0 and op1 to register_operand.
16085         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
16086         corresponding patterns and macroize using MODEF macro.  Change
16087         predicates of op0 and op1 to register_operand and remove
16088         "m" constraint. Disparage "r" alternative with "!".
16089         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
16090         macroize using X87MODEF macro.  Change predicates of op0 and op1
16091         to register_operand and remove "m" constraint.  Disparage "r"
16092         alternative with "!".
16093         (absneg splitter with memory operands): Remove.
16094         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
16095         patterns and macroize using X87MODEF mode iterator.
16096         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
16097         Change predicate of op1 to register_operand.
16098         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
16099         for memory operands.
16100
16101 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
16102
16103         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
16104
16105 2008-01-07  Richard Guenther  <rguenther@suse.de>
16106
16107         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
16108         fields.
16109
16110 2008-01-07  Richard Guenther  <rguenther@suse.de>
16111
16112         PR tree-optimization/34683
16113         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
16114         VOPs of the needed size to save memory.  Use VEC_quick_push
16115         to save compile-time.
16116         (vdefs_to_vec): Likewise.
16117
16118 2008-01-07  Sa Liu  <saliu@de.ibm.com>
16119
16120         * config/spu/spu.md (divdf3): Genetate inline code for double
16121         division.  The implementation doesn't handle INF or NAN, therefore it
16122         only applies when -ffinite-math-only is given.
16123
16124 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
16125
16126         PR libstdc++/34680
16127         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
16128         * doc/cpp.texi ([Common Predefined Macros]): Document.
16129
16130 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
16131
16132         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
16133         order to use commutative addition instead of subtraction.
16134
16135 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16136             Mircea Namolaru  <namolaru@il.ibm.com>
16137             Vladimir Yanovsky  <yanov@il.ibm.com>
16138             Revital Eres  <eres@il.ibm.com>
16139
16140         PR tree-optimization/34263
16141         * tree-outof-ssa.c (process_single_block_loop_latch,
16142         contains_tree_r): New functions.
16143         (analyze_edges_for_bb): Call process_single_block_loop_latch
16144         function to empty single-basic-block latch block if possible.
16145
16146 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16147
16148         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
16149         for TARGET_RECIP.
16150         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
16151
16152 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
16153
16154         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
16155
16156 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
16157
16158         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
16159
16160 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
16161
16162         PR tree-optimization/34618
16163         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
16164         flag from T.
16165
16166 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16167
16168         PR target/34673
16169         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
16170         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
16171         Update copyright year.
16172
16173         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
16174         Update copyright year.
16175         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
16176         using NR fixup.
16177
16178 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
16179
16180         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
16181         edge does not point to current bb before changing need_assert.
16182
16183 2008-01-04  Richard Guenther  <rguenther@suse.de>
16184
16185         PR middle-end/34029
16186         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
16187         for verifying purposes if they are is_gimple_min_invariant.
16188
16189 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
16190
16191         PR tree-optimization/34448
16192         PR tree-optimization/34465
16193         * gimplify.c (gimplify_init_constructor): Add new parameter
16194         notify_temp_creation.  Use it.
16195         (gimplify_modify_expr_rhs): Take volatiles into account when
16196         optimizing constructors.
16197         Do not optimize constructors if gimplify_init_constructor will dump to
16198         memory.
16199         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
16200         * gcc.c-torture/compile/pr34448.c: New.
16201
16202 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
16203
16204         PR gcov-profile/34609
16205         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
16206         return_slot if result is TREE_ADDRESSABLE.
16207
16208 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
16209
16210         * config/mips/mips.md (sqrt_condition): Tweak comment.
16211         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
16212
16213 2008-01-03  Tom Tromey  <tromey@redhat.com>
16214
16215         PR c/34457
16216         * c-common.c (c_type_hash): Handle VLAs.
16217
16218 2008-01-03  Jan Hubicka  <jh@suse.cz>
16219
16220         PR tree-optimization/31081
16221         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
16222         0 when inlining and not inlining to first basic block.
16223         (remap_decl): When var is initialized to 0, don't set default_def.
16224         (expand_call_inline): Set entry_bb.
16225         * tree-inline.h (copy_body_data): Add entry_bb.
16226
16227 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16228
16229         PR c++/34619
16230         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
16231         before returning.
16232
16233         PR tree-optimization/29484
16234         * tree-inline.c (inline_forbidden_p_2): New function.
16235         (inline_forbidden_p): Disallow inlining if some static var
16236         has an address of a local LABEL_DECL in its initializer.
16237         * doc/extend.texi (Labels as Values): Document &&foo behaviour
16238         vs. inlining.
16239
16240 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16241
16242         PR tree-optimization/34635
16243         * tree-data-ref.c (add_other_self_distances): Make sure that the
16244         evolution step is constant.
16245
16246 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16247
16248         PR middle-end/34608
16249         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
16250
16251 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
16252
16253         * tree-sra.c (scalarize_init): Insert the generate_element_init
16254         statements after the generate_element_zero statements.
16255
16256 2008-01-02  Richard Guenther  <rguenther@suse.de>
16257
16258         PR middle-end/34093
16259         PR middle-end/31976
16260         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
16261         for very large number of operands instead of ICEing.
16262
16263 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
16264
16265         PR target/34013
16266         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
16267         while stack probing.
16268
16269 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
16270
16271         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
16272         in C++0x mode.
16273
16274 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
16275
16276         PR libmudflap/26442
16277         * tree-mudflap.c (mx_register_decls): Guard warning by
16278         !DECL_ARTIFICIAL check.
16279
16280 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
16281
16282         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
16283         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
16284         sse5_perm<mode>): Fix constraints.